Variable qui garde sa valeur même après quitter Excel

Bonjour à tous,

Je voudrais connaître (si possible) comment déclarer une variable d'une façon qu'elle garde sa valeur à vie c-à-d: elle conserve sa valeur jusqu'au prochain changement et même si je quitte Excel et je le ré-ouvre la valeur de la variable devra être conservée.

Merci d'avance

Bonjour,

ça n'existe pas.

Utilise un nom dans le classeur, ou sauve la dans une cellule..

eric

Bonsoir Mohsin,

Pour ma part, j'utilise du code VBA pour sauvegarder la valeur dans le registre Windows avec "SaveSetting" et le restaurer avec "GetSetting"

    SaveSetting "MonApp", "MaSection", "MaCle", ValeurASauvegarder
    ValeurSauvegardée = GetSetting("MonApp", "MaSection", "MaCle")

Le registre est une possibilité aussi oui.

Mais seulement si le fichier n'est pas amené à circuler car la valeur est sur le PC, externe au fichier.

Y penser avant de faire le choix.

eric

Bonjour,

Comme Eric , le nom est à mon sens la meilleur solution !

Un petit exemple :

Sub RecupValeur()

    Dim Nom As Name
    Dim Valeur

    'gestion de l'absence du nom
    On Error Resume Next
    Set Nom = ThisWorkbook.Names("LeNom")

    If Err.Number = 0 Then

        Valeur = Right(Nom, Len(Nom) - 1)
        MsgBox Valeur

    End If

End Sub

Sub CreerNom()

    Dim Valeur

    Valeur = 25

    'avc la propriété "Visible" à False, le nom sera invisible dans le gestionnaire
    ThisWorkbook.Names.Add "LeNom", Valeur, False

End Sub

@Eric et Thèse,

Pourquoi commencer par répondre « ça n’existe pas » alors qu’il existe des solutions ?

Effectivement, il faut en savoir plus pour proposer la solution adaptée.

Celle que vous proposez ne fonctionne pas dans le cas d’un classeur modele .xltm par exemple créant un nouveau classeur à chaque instance d’exécution.

Bonjour,

Pourquoi commencer par répondre « ça n’existe pas » alors qu’il existe des solutions ?

Parce qu'une variable VBA (celle qui te posait problème) perd sa valeur. Si être précis te gêne, laisse de coté...

Celle que vous proposez ne fonctionne pas dans le cas d’un classeur modele .xltm par exemple créant un nouveau classeur à chaque instance d’exécution.

Ah bon ? Pas vu que c'était précisé dans ta question.

Tu peux créer un nom dans un autre classeur par VBA. Adapte le code proposé par Theze en fonction de ton besoin.

eric

Bonjour GVIALLES,

Celle que vous proposez ne fonctionne pas dans le cas d’un classeur modele .xltm par exemple créant un nouveau classeur à chaque instance d’exécution.

oui, mais Mohsin.stat dit :

Je voudrais connaître (si possible) comment déclarer une variable d'une façon qu'elle garde sa valeur à vie c-à-d: elle conserve sa valeur jusqu'au prochain changement et même si je quitte Excel et je le ré-ouvre la valeur de la variable devra être conservée.

Il ne parle pas de classeur modèle donc, l'utilisation d'un nom me semble assez bien adapté mais comme dit Eric, il peut aussi utiliser une cellule et si personne ne doit voir cette valeur, il peut utiliser une feuille cachée avec la propriété "Visible" définie à "xlSheetVeryHidden" de façon à ce qu'elle ne se voit pas dans Format ---> Masquer & afficher.

Il y a plusieurs possibilités, dont celle que tu donnes, qui ont leurs avantages et inconvénients, comme des fichiers .ini, .txt, fichier texte avec une extension personnalisée de façon à ce qu'un utilisateur lambda ne sache pas comment l'ouvrir !

Merci à tous pour vos précieuses réponses !

Rechercher des sujets similaires à "variable qui garde valeur meme quitter"