none
Comment conserver durablement la valeur d'une variable. RRS feed

  • Question

  • Bonjour,

    Je voudrais élaborer un modèle word ( 2007 ) utilisable sur plusieurs ordinateurs. j’ ai placé dans le ruban de mon modèle un bouton qui permet d'ouvrir une autre application. Cette autre application, suivant l'ordinateur, ne sera pas nécéssairement installé dans le même répertoire.J'ai alors placé un deuxième bouton qui ouvre une Userform avec textbox et qui demande à l'utilisateur d'indiquer le chemin de cette autre application.
    je récupère, à la fermeture de la Userform, le chemin dans un variable public( chemincabri).
    Voici le code
    Private Sub CommandButton1_Click()
    chemincabri = Userform.TextBox1
    Unload Userform
    End Sub

    Le bouton qui permet d'ouvrir catte autre application est associé à la macro suivante:
    ' Callback for bouton_51 onAction
    Sub Cabri(control As IRibbonControl)
    Dim retval
       retval = Shell(Format(chemincabri), 1)
    End Sub

    Cela fonctionne mais mon problème est le suivant:
    Lors de l'ouverture du modèle, les variables sont sans doute réinitialisées et de ce fait, la valeur de la variable chemincabri est nulle.
    Comment procéder pour conserver durablement la valeur de la variable chemincabri et ainsi que l'utilisateur du modèle ne soit pas obligé d'indiquer à chaque ouverture du modèle le chemin de cette autre application.

    Merci pour votre aide.

    jeudi 17 juin 2010 20:47

Réponses

  • Bonjour,

    Merci pour ta réponse Isabelle,

    Au lieu d' utiliser un classeur Excel, j' ai préféré sauvegarder la valeur de la variable chemincabri en créant une entrée dans le registre avec l'instruction SaveSetting.


    Private Sub CommandButton1_Click()
    chemincabri = Userform.TextBox1
    SaveSetting "Paramètreschemin", "TextBox1", "Valeur TextBox1", Userform.TextBox1.Value
    Unload Userform
    End Sub

    A l'ouverture du modèle, je peux récupérer le chemin de l'application lors du chargement de mon ruban personnalisé en lisant dans le registre la valeur de l'entrée correspondante( instruction getSetting).


    Sub ChargerRuban(ribbon As IRibbonUI)
    ' Creates a ribbon instance for use in this project
    Set monruban = ribbon
    chemincabri = GetSetting("Paramètreschemin", "TextBox1", "Valeur TextBox1")
    End Sub

    J'ai trouvé cette solution qui me semble assez simple en consultant la page suivante :
    http://silkyroad.developpez.com/VBA/UserForm/#LV-F 

    MJ

    dimanche 20 juin 2010 22:05

Toutes les réponses

  • bonjour,
     
    tu pourrais enregistrer la valeur du chemin soit dans
     
    '- un Nom du classeur
    'attribu la valeur du chemin au Nom "MaValeur"
    ActiveWorkbook.Names.Add Name:="MaValeur", RefersTo:="=""c:\repertoire\fichier.xxx"""
    'récupere la valeur du Nom
    chemin = [MaValeur]
     
    '- un nom caché
    'attribu la valeur du chemin au nom caché "MaValeur"
    Application.ExecuteExcel4Macro "SET.NAME(""MaValeur"",""" & le chemin & """)"
    'récupere la valeur du nom caché
    chemin = Application.ExecuteExcel4Macro("MaValeur")
     
    '- dans la cellule d'une feuille non visible
     
    isabelle
     
    Le 2010-06-17 16:47, tétard a écrit :
    > Bonjour,
    >
    > Je voudrais élaborer un modèle word ( 2007 ) utilisable sur plusieurs
    > ordinateurs. j’ ai placé dans le ruban de mon modèle un bouton qui
    > permet d'ouvrir une autre application. Cette autre application, suivant
    > l'ordinateur, ne sera pas nécéssairement installé dans le même
    > répertoire.J'ai alors placé un deuxième bouton qui ouvre une Userform
    > avec textbox et qui demande à l'utilisateur d'indiquer le chemin de
    > cette autre application.
    > je récupère, à la fermeture de la Userform, le chemin dans un variable
    > public( chemincabri).
    > Voici le code
    > Private Sub CommandButton1_Click()
    > chemincabri = Userform.TextBox1
    > Unload Userform
    > End Sub
    >
    > Le bouton qui permet d'ouvrir catte autre application est associé à la
    > macro suivante:
    > ' Callback for bouton_51 onAction
    > Sub Cabri(control As IRibbonControl)
    > Dim retval
    > retval = Shell(Format(chemincabri), 1)
    > End Sub
    >
    > Cela fonctionne mais mon problème est le suivant:
    > Lors de l'ouverture du modèle, les variables sont sans doute
    > réinitialisées et de ce fait, la valeur de la variable chemincabri est
    > nulle.
    > Comment procéder pour conserver durablement la valeur de la variable
    > chemincabri et ainsi que l'utilisateur du modèle ne soit pas obligé
    > d'indiquer à chaque ouverture du modèle le chemin de cette autre
    > application.
    >
     
    jeudi 17 juin 2010 21:14
  • Bonjour,

    Merci pour ta réponse Isabelle,

    Au lieu d' utiliser un classeur Excel, j' ai préféré sauvegarder la valeur de la variable chemincabri en créant une entrée dans le registre avec l'instruction SaveSetting.


    Private Sub CommandButton1_Click()
    chemincabri = Userform.TextBox1
    SaveSetting "Paramètreschemin", "TextBox1", "Valeur TextBox1", Userform.TextBox1.Value
    Unload Userform
    End Sub

    A l'ouverture du modèle, je peux récupérer le chemin de l'application lors du chargement de mon ruban personnalisé en lisant dans le registre la valeur de l'entrée correspondante( instruction getSetting).


    Sub ChargerRuban(ribbon As IRibbonUI)
    ' Creates a ribbon instance for use in this project
    Set monruban = ribbon
    chemincabri = GetSetting("Paramètreschemin", "TextBox1", "Valeur TextBox1")
    End Sub

    J'ai trouvé cette solution qui me semble assez simple en consultant la page suivante :
    http://silkyroad.developpez.com/VBA/UserForm/#LV-F 

    MJ

    dimanche 20 juin 2010 22:05
  • Bonjour,

     

    IsabelleV, je vous remercie pour la réponse et je remercie aussi à Tetard pour avoir partagé sa solution.

     

    Cordialement,

    Alex

    __________________________________________________________________________________________

    Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007

     

    Astuces pour Visual Studio 2010

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Workflow Foundation

     

     

    Café des usages

     

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     

     

     

    lundi 21 juin 2010 14:31