Stocker une variable et pouvoir la modifier plus tard

Bonjour à tous!

J'ai un petit soucis que j'aimerais résoudre mai mes recherches et essais ont été infructueux. Pourtant le problème ne me semble pas si compliqué que çà … peut être les fortes chaleurs de ces derniers jours

Voici mon problème :

J'ai tout un programme qui fait des recherches dans des dossiers présents sur le réseau de mon entreprise, donc tout fonctionne etc... Mais l'adresse de ces dossiers peut changer (environ une ou deux fois par an). J'aimerais alors pouvoir stocker cette adresse dans mon code et pas dans mon classeur, il faudrait qu'elle reste à la fermeture du fichier et surtout je voudrais pouvoir la modifier (via userform ) et sauvegarder cette modification.

Donc voilà, j'ai réussi à sauvegarder mon adresse de la manière suivante :

Public Const FolderPath = "Adresse_Des_Dossiers"

Mais de cette manière, impossible de modifier FolderPath....

En espérant avoir été le plus clair possible et si vous avez des pistes pour m'éclairer je suis preneur!

Merci à vous et bonne journée !

Bonjour,

Le plus simple est de stocker l'adresse de vos dossiers dans l'attribut "Tag" de votre UserForm. Vous pouvez le changer à la compilation (donc à son chargement) via ce code :

    Dim attribut As Object

    With ThisWorkbook.VBProject.VBComponents("Userform1")
        For Each attribut In .Properties
            If attribut.Name = "Tag" Then attribut.Value = "adresse": Exit For
        Next attribut
    End With

Merci pour cette réponse rapide

Quand j'essaie ta méthode, j'ai le message suivant :

"Erreur d'exécution '1004':

La méthode 'VBProject' de l'objet '_Workbook' a échoué"

J'ai placé le code dans l'initialisation de mon userform... je l'ai mal placé ?

Vous auriez un petit exemple qui fonctionnerait que je puisse l'adapter à mes besoins ?

J'ai placé le code dans l'initialisation de mon userform... je l'ai mal placé ?
Oui car vous ne pouvez pas modifier les attributs stockés dans le classeur, de votre Userform1 au chargement de celui-ci. Ce code est à placer dans un deuxième Userform, Userform2 pour changer l'adresse de vos dossiers, avant évidemment le chargement du UserForm1.

D'accord, je viens d'essayer et j'ai exactement le même message d'erreur...

D'accord, je viens d'essayer et j'ai exactement le même message d'erreur...
Effectivement, il manque une instruction permettant d'activer les propriétés du UserForm :
    Dim attribut As Object

    With ThisWorkbook.VBProject.VBComponents("Userform1")
        .Activate
        For Each attribut In .Properties
            If attribut.Name = "Tag" Then attribut.Value = "adresse": Exit For
        Next attribut
    End With

Merci beaucoup thev !

En plus de ça je me suis rendu compte que je n'avais pas activer l'accès approuvé pour les modèles d'objet du projet VBA

Ca a l'air de fonctionner, en tout cas je vois bien que la donnée que j'essaie de conserver reste malgré la fermeture du projet mais mon userform ne s'affiche plus... je regarde ça de mon côté

encore merci pour ton aide !

Rechercher des sujets similaires à "stocker variable pouvoir modifier tard"