Des programmes de toutes sortes

Page mise à jour le : 3/05/2002

Récupérer le contenu d'une variable d'environnement (SET).
Récupérer le nom de login (réseau).
Récupérer une valeur stockée dans la base de registre.
 


Récupérer le contenu d'une variable d'environnement (SET).Retour au début

        Ce programme permet de récupérer une variable d'environnement (voir DOS
        pour détail sur commande SET).
        Dans cet exemple, la variable AU_LOCAL_DIR me retourne un chemin
        (différent suivant les utilisateurs) où je trouve un fichier à traiter avec Excel.
        Ce chemin est du type : AU_LOCAL_DIR="f:\renaud\audros\tmp"

        Le code

        Code de la procédure RechercheVariableEnvironnement

 

Sub RechercheVariableEnvironnement()

     ' Déclaration des variables.

     Dim EnvString, Indx, Msg, PathLen

     Indx = 1     ' Initialise l'index à 1

     Do

          ' Extrait la variable d'environnement (AU_LOCAL_DIR)

          EnvString = Environ (Indx)

          ' Vérifie l'entrée AU_LOCAL_DIR

          If Left (EnvString, 13 ) = "AU_LOCAL_DIR=" Then

               ' Extrait la longueur et met l'entrée dans une variable.

               PathLen = Len ( Environ ( "AU_LOCAL_DIR" ))

               Msg = Mid (EnvString, 14 , PathLen)

               Exit Do

          Else

               ' Pas d'entrée AU_LOCAL_DIR, donc on incrémente.

               Indx = Indx + 1

          End If

     Loop Until EnvString = ""

     If PathLen > 0 Then

          MsgBox Msg    ' Affiche le message "f:\renaud\audros\tmp"

     Else

          MsgBox " Il n'existe pas de variable " & "d'environnement AU_LOCAL_DIR."

     End If

End Sub


Récupérer le nom de login (réseau).Retour au début

        Cette fonction permet de récupérer le nom de login (et non pas le nom
        d'utilisateur déclaré dans Excel).

        Le code

        Code de la fonction GetUserName

 

Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" ( ByVal lpName As String , _

        ByVal lpUserName As String ,   lpnLength As Long ) As Long

Const NoError = 0

Function GetUserName ()

     Const lpnLength As Integer = 255

     Dim status As Integer

     Dim lpName, lpUserName As String

     lpUserName = Space$ (lpnLength + 1 )

     status = WNetGetUser(lpName, lpUserName, lpnLength)

     If status = NoError Then

          lpUserName = Left$ (lpUserName, InStr (lpUserName, Chr ( 0 )) - 1 )

     Else

          MsgBox "Impossible d'obtenir le login."

          End

     End If

     GetUserName = lpUserName

End Function

        Code de la procédure AfficheLogin

 

Sub AfficheLogin()

     MsgBox GetUserName

End Sub

Récupérer une valeur stockée dans la base de registre.Retour au début

        Cette procédure permet de récupérer une valeur stockée dans la base de registre.
        Cette valeur est stockée dans la clé :
                HKEY_CURRENT_USER\Software\VB and VBA Program Settings\

        J'utilise personnellement cette procédure pour incrémenter un numéro de facture.

        Lecture/Ecriture dans la base de registre

 

Private Sub LectureRegistry()

     ' Lecture des infos dans la base de registre

     Call InfoRegistry

     ' Récupération du N° de facture

     NumFac = GetSetting (appname:= "Facture Grand Crès" , section:= "NumFacture" , key:= "Numéro" )

     ' Incrémentation du N° de facture

     NumFac = NumFac + 1

     ' Ecriture de la nouvelle valeur NumFac dans la base de registre

     SaveSetting appname:= "Facture Grand Crès" , section:= "NumFacture" , key:= "Numéro" , setting:=NumFac

End Sub


 

Private Sub InfoRegistry()

     ' Lecture de la valeur dans la base de registre

     NumFac = GetSetting (appname:= "Facture Grand Crès" , section:= "NumFacture" , key:= "Numéro" )

     ' Si aucune valeur n'est présente dans la base de registre ...

     If NumFac = "" Then

          Numdepart = InputBox( "Indiquer le N° de votre dernière facture manuelle." , "Initialisation du numéro de facture" )

          ' Si on clique sur le bouton Annuler, fin de procédure

          If Numdepart = "" Then End

          'Sinon, on inscrit le numéro saisi dans la boîte de dialogue

          SaveSetting appname:= "Facture Grand Crès" , section:= "NumFacture" , key:= "Numéro" , setting:=Numdepart

     End If

End Sub


        Effacement de la clé dans la base de registre

 

Sub EffaceRegistry()

     ' Effacement de la clé dans la base de registre

     On Error Resume Next

     DeleteSetting "Facture Grand Crès"

End Sub


Retour au début de document

Retour au début du document