Les chaînes de profil privé sont souvent utilisées pour stocker des informations spécifiques à l’utilisateur en dehors de l’application / du document pour une utilisation ultérieure.

Vous pouvez par exemple stocker des informations sur le dernier contenu dans une boîte de dialogue / UserForm, combien de fois un classeur a été ouvert ou le dernier numéro de facture utilisé pour un modèle de facture.

Les chaînes de profil privé pour chaque utilisateur peuvent être stockées dans le registre. Vous pouvez également utiliser un fichier INI, sur le disque dur local ou sur un dossier réseau partagé.

Voici les exemples de macros pour écrire et lire à partir de chaînes de profil privé dans le registre.

' the examples below assumes that the range B3:B5 in the active sheet contains

' information about Lastname, Firstname and Birthdate

Sub WriteUserInfoToRegistry()

' saves information in the Registry to

' HKEY_CURRENT_USER\Software\VB and VBA Program Settings\TESTAPPLICATION

On Error Resume Next

SaveSetting "TESTAPPLICATION", "Personal", "Lastname", Range("B3").Value

SaveSetting "TESTAPPLICATION", "Personal", "Firstname", Range("B4").Value

SaveSetting "TESTAPPLICATION", "Personal", "Birthdate", Range("B5").Value

On Error GoTo 0

End Sub

Sub ReadUserInfoFromRegistry()

' reads information in the Registry from

' HKEY_CURRENT_USER\Software\VB and VBA Program Settings\TESTAPPLICATION

Range("B3").Formula = GetSetting("TESTAPPLICATION", "Personal", "Lastname", "")

Range("B4").Formula = GetSetting("TESTAPPLICATION", "Personal", "Firstname", "")

Range("B5").Formula = GetSetting("TESTAPPLICATION", "Personal", "Birthdate", "")

End Sub

' the example below assumes that the range D4 in the active sheet contains

' information about the unique number

Sub GetNewUniqueNumberFromRegistry()

Dim UniqueNumber As Long

UniqueNumber = 0

On Error Resume Next

UniqueNumber = CLng(GetSetting("TESTAPPLICATION", "Personal", "UniqueNumber", ""))

On Error GoTo 0

Range("D4").Formula = UniqueNumber + 1

SaveSetting "TESTAPPLICATION", "Personal", "UniqueNumber", Range("D4").Value

End Sub

Sub DeleteUserInfoFromRegistry()

' deletes information in the Registry from

' HKEY_CURRENT_USER\Software\VB and VBA Program Settings\TESTAPPLICATION

On Error Resume Next

DeleteSetting "TESTAPPLICATION" ' delete all information

'DeleteSetting "TESTAPPLICATION", "Personal" ' delete one section

'DeleteSetting "TESTAPPLICATION", "Personal", "Birthdate" ' delete one key

On Error GoTo 0

End Sub