Fonctions générales

Option Base 1
Option Explicit
 » *****************************************************************************
 » Module de traitement non spécialisé
 » *****************************************************************************

‘ Liste des Programmes et Fonctions de ce MODULE :

‘ Sub auto_open() : Programme d’initialisation qui s’execute a l’ouverture de ce classeur
‘ Public Sub InitParam() : Positionne des Flags de traitement au niveau module
‘ Public Sub ClearData() : Suppression des valeurs des cellules de la feuille active
‘ Public Function maj_barre_etat(texte_barre As String) As Integer : Ecriture de la barre d’état Excel
‘ Public Function FAfficheInfo(ByVal FMonMessage As String, _
‘ ByVal FTypeMessage As String, _
‘ ByVal FFormatMessage As String _
‘ ) As Integer


 » ******************************************************************************
 » LES PROGRAMMES
 » ******************************************************************************

Public Sub ClearData()
 » ******************************************************************************
 » Propos : Suppression des valeurs des cellules de la feuille active
 » Ecrit : 17-Fev-2003 par Marco – MgInformatique
 »

Cells.ClearContents
End Sub

Public Sub AppelCalculatrice()
 » ***************************************************************************
 » Propos : Procédure
 » Appel : Néant
 » Ecrit : 17-Fev-2003 par Marco – MgInformatique

Dim retval
‘ Exécute la calculatrice.
retval = Shell(« C:\WINDOWS\CALC.EXE », 1)

End Sub

Public Sub AppelBlocNote()
 » ***************************************************************************
 » Propos : Procédure
 » Appel : Néant
 » Ecrit : 17-Fev-2003 par Marco – MgInformatique

Dim retval
Dim MonDrive, MonRépertoire, MonBlockNote As String
MonDrive = « C »
MonRépertoire = « Winnt »
MonBlockNote = « Notepad.exe »

‘ Exécute le notepade
retval = Shell(MonDrive & « :\ » & MonRépertoire & « \ » & MonBlockNote, 1)
End Sub
Public Sub MGMessage(ByVal FMessage As String)
 » ***************************************************************************
 » Propos : Procédure
 » Appel : Néant
 » Ecrit : 17-Fev-2003 par Marco – MgInformatique
If OPTIONVERBOSE = True Then MsgBox (FMessage)
End Sub

Sub AttendreQuelquesSecondes(ByVal FNbrSeconde As Long)
 » ***************************************************************************
 » Propos : Procédure
 » Appel : Néant
 » Ecrit : 17-Fev-2003 par Marco – MgInformatique
Dim nvlleHeure, nvlleMinute, nvlleSeconde, waitTime
nvlleHeure = Hour(Now())
nvlleMinute = Minute(Now())
nvlleSeconde = Second(Now()) + FNbrSeconde
waitTime = TimeSerial(nvlleHeure, nvlleMinute, nvlleSeconde)
Application.Wait waitTime
End Sub

Sub AttendreJusquaLHeure(ByVal MonAttente As Integer)
 » ***************************************************************************
 » Propos : Procédure
 » Appel : Néant
 » Ecrit : 17-Fev-2003 par Marco – MgInformatique
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + MonAttente)
End Sub

Sub MaCompilation()
MsgBox « Compilation ok »
End Sub


 » ******************************************************************************
 » LES FONCTIONS
 » ******************************************************************************

Public Function maj_barre_etat(texte_barre As String) As Integer
 » ******************************************************************************
 » Propos : mise à jour de la barre état en fonction d’un variable texte
 » Appel : Néant
 » Ecrit : 17-Fev-2003 par Marco – MgInformatique
If texte_barre = «  » Then
Application.StatusBar = False
maj_barre_etat = 1
Else
Application.StatusBar = texte_barre
Application.ScreenUpdating = True ‘ on valide la visualisation de la manip
Application.ScreenUpdating = False ‘ on invalide la visualisation de la manip
maj_barre_etat = 0
End If
End Function

Function NomDuProjet(ByRef FNomProjet As String, _
Optional ByVal FB_Ecriture As Boolean = False) As Boolean
 » ***************************************************************************
 » Propos : Modifi le nom du projet
 » Appel : Néant
 » Ecrit : 17-Avr-2005 par Marco – MgInformatique
 » Etat : Test ok
NomDuProjet = True

If FB_Ecriture Then
ThisWorkbook.VBProject.Name = FNomProjet
Else
FNomProjet = ThisWorkbook.VBProject.Name
End If
End Function

Private Function ClasseurEstOuvert(nomclasseur) As Boolean
‘ Retourne TRUE si le classeur est ouvert
Dim x As Workbook
On Error Resume Next
Set x = Workbooks(nomclasseur)
If Err = 0 Then ClasseurEstOuvert = True _
Else ClasseurEstOuvert = False
End Function

Public Function lance_bat(ByVal FBat As String, ByVal FModeFenetre As Integer)
 » ***************************************************************************
 » Propos : Procédure
 » Appel : Néant
 » Ecrit : 17-Fev-2003 par Marco – MgInformatique
Dim retval As Long
retval = Shell(FBat, FModeFenetre)
If retval = 0 Then
MsgBox « Erreur d’execution du programme :  » & FBat
End If
lance_bat = retval
End Function
‘___________________________________________________________________________

Public Function affiche_info(mon_message As String, type_message As String) As Integer
 » ***************************************************************************
 » Propos : fonction d’affichage de message en fonction :
 » d’une variable texte, d’un type de message
 » Appel : Néant
 » Ecrit : 17-Fev-2003 par Marco – MgInformatique
 » type message :
 » D = Débug
 » I = Info
 » C = Critique
 » O = Confirmation
Dim MON_DEBUG As Boolean
Dim Débugage
If MON_DEBUG Then
If type_message = « D » Then
affiche_info = MsgBox(mon_message, vbExclamation, Débugage)
ElseIf type_message = « I » Then
affiche_info = MsgBox(mon_message, vbInformation, Débugage)
End If
End If
If type_message = « C » Then
affiche_info = MsgBox(mon_message, vbCritical, Débugage)
ElseIf type_message = « O » Then
affiche_info = MsgBox(mon_message, vbQuestion, Débugage)
End If
End Function

Function MessageEtCompteRendu(ByVal FMessage As String, _
ByVal FTitre As String, _
Optional ByVal FStyle As String = « E », _
Optional ByVal FB_Message As Boolean = False, _
Optional ByVal FB_BarreEtat As Boolean = True, _
Optional ByVal FB_CompteRendu As Boolean = False _
) As Integer
 » ***************************************************************************
 » Propos : Traite les message et les lignes du fichier compte rendu
 » Ecrit : 01-Juin-2005 par Marco – MgInformatique
 »

‘ Par default c’est une erreur a afficher dans mgbbox, barre etat et compte rendu

Dim WStyle, WTypeMessage As String
Dim lInt_FreeFileCptRendu As Integer
‘WNomFonc = « MessageEtCompteRendu » pas dans ce cas
MessageEtCompteRendu = 0
 » – – – – – – – – – – – – – – – – – – – – – – – – – – – –
‘ Traitement du WStyle
Select Case UCase(FStyle) ‘ Définit le bouton et l’icone : vbExclamation, vbInformation , vbCritical
Case « W » ‘ c’est un warning
WStyle = vbOKOnly + vbExclamation
WTypeMessage = « Warning : »
Case « I » ‘ c’est une info
WStyle = vbOKOnly + vbInformation
WTypeMessage = « Info : »
Case « E » ‘ c’est une erreur
WStyle = vbOKOnly + vbCritical
WTypeMessage = « Erreur : »
Case Else

MsgBox « Erreur style <> W, I, E dans la fonction MessageEtCompteRendu =  » & FStyle
Exit Function
End Select

 » – – – – – – – – – – – – – – – – – – – – – – – – – – – –
‘ Affichage du message
 » – – – – – – – – – – – – – – – – – – – – – – – – – – – –
If FB_Message Then MessageEtCompteRendu = MsgBox(FMessage, WStyle, FTitre)

 » – – – – – – – – – – – – – – – – – – – – – – – – – – – –
‘ Mise a jour de la barre d’état
 » – – – – – – – – – – – – – – – – – – – – – – – – – – – –
If FB_BarreEtat Then Call maj_barre_etat(WTypeMessage & FMessage)
 » – – – – – – – – – – – – – – – – – – – – – – – – – – – –
‘ Ecriture du fichier CompteRendu dans le répertoire de travail
 » – – – – – – – – – – – – – – – – – – – – – – – – – – – –
If Not FB_CompteRendu Then Exit Function

On Error GoTo ErrorHandlerFichier
lInt_FreeFileCptRendu = FreeFile
‘ ouverture du fichier en mode Append
Open NOMDUDRIVE & « : » & NOMDUREPERTOIREDETRAVAIL & NOMAPPLI & NomFlux & « \ » & NOM_FIC_COMPTE_RENDU For Append As #lInt_FreeFileCptRendu

‘ Ecriture du fichier
Print #lInt_FreeFileCptRendu, WTypeMessage & FMessage
Close #lInt_FreeFileCptRendu ‘ Ferme le fichier.

Exit Function ‘ sortie de la fonction

 » – – – – – – – – – – – – – – – – – – – – – – – – – – – –
 » Routine de traitement des erreurs
Exit Function

ErrorHandlerFichier:
MsgBox « ErrorHandlerFichier » &  »  » & Error(Err.Number) &  »  » & NOMDUDRIVE & « : » & NOMDUREPERTOIREDETRAVAIL & NOMAPPLI & NomFlux & « \ » & NOM_FIC_COMPTE_RENDU
MessageEtCompteRendu = -1
PAS_DERREUR = False
Close #lInt_FreeFileCptRendu
Exit Function

End Function
Sub quitter_excel()
Réponse = MsgBox(« Voulez-vous quitter Excel ? », vbYesNo, « A la prochaine ! »)
If Réponse = vbYes Then
ActiveWorkbook.Save
Application.WindowState = xlNormal
Application.DisplayFullScreen = False
Application.Quit
End If
End Sub