IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Conserver les données entrées dans mon userform


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Février 2013
    Messages : 32
    Points : 19
    Points
    19
    Par défaut Conserver les données entrées dans mon userform
    bonjour à tous/toutes
    En poursuivant mon travail de création, j'ai maintenant un doc de plusieurs pages sous word 2010.
    J'ai crée un userform avec une trentaine de valeurs qui vont remplir mon document, extraire certaines pages
    ainsi remplies et qui les sauvegarde sous un nom précis. C'est super.
    Ma question : je voudrais aux fins de modification pouvoir ré-ouvrir mon useform pour modifier certaines
    valeurs sans être obligé à chaque fois de tout re-saisir l'ensemble des données.
    Quelqu'un a t-il une idée ? Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Tu peux toujours sauvegarder les données du UserForm dans une propriété du document, dans une variable de document.
    Si tu utilises un caractère particulier, tu peux faire une restauration avec une méthode Split pour les réinjecter dans le UserForm.

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Tu peux aussi utiliser SaveSetting, GetSetting, Getallsettings pour les conserver et récupérer dans le registre.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Février 2013
    Messages : 32
    Points : 19
    Points
    19
    Par défaut C'est où ?
    bonjour,
    mais ça se trouve où ces bébêtes ?
    merci

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    La sauvegarde dans la base de registre est une option, mais il ne faut pas changer de machine et si on fait ce choix pour tous les paramètres que l'on souhaite sauvegarder, on va finir par la surcharger.

    Pour les propriétés et variables, une piste là : http://heureuxoli.developpez.com/office/word/variables/

  6. #6
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Février 2013
    Messages : 32
    Points : 19
    Points
    19
    Par défaut
    désolé mais j'y comprends rien. Tu pourrais être plus clair ?
    Merci

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par bidochon34800 Voir le message
    bonjour,
    mais ça se trouve où ces bébêtes ?
    merci
    Tu lis ma réponse là:

    http://www.developpez.net/forums/d14...e/#post7848904


    Et tu fais la même chose en écrivant et en cliquant sur SaveSetting, au lieu de prendre la première ligne de la macro PowerPoint.l

  8. #8
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Février 2013
    Messages : 32
    Points : 19
    Points
    19
    Par défaut
    encore une fois désolé,
    mais tu pourrais pas être un peu plus clair, clair j'ai pas trouvé ce que tu me demandais.
    merci

  9. #9
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par bidochon34800 Voir le message
    encore une fois désolé,
    mais tu pourrais pas être un peu plus clair, clair j'ai pas trouvé ce que tu me demandais.
    merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub AjouteAuRegistre()
        SaveSetting "Odeurs", "Plantes", "Aliments", "Ail"
        Dim texte As String
        texte = "Regardez dans le Registre à HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Odeurs\Plantes"
        MsgBox (texte)
    End Sub
    Directement de l'aide de VBA-Word:

    SaveSetting, instruction
    Voir aussi Exemple Particularités

    Enregistre ou crée une entrée d'application dans la base de registres de Windows.

    Syntaxe

    SaveSetting appname, section, key, value

    La syntaxe de l'instruction SaveSetting comprend les arguments nommés suivants :

    Élément Description
    Appname Expression de chaîne contenant le nom de application ou du projet concerné.
    Section Expression de chaîne contenant le nom de la section dans laquelle la valeur de clé doit être enregistrée.
    Key Expression de chaîne contenant le nom de la valeur de clé à enregistrer.
    Value Expression contenant la valeur attribuée à key.



    Remarques

    Une erreur se produit si la valeur de clé ne peut pas être enregistrée.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Février 2013
    Messages : 32
    Points : 19
    Points
    19
    Par défaut
    merci de vos réponses, mais je pense que je n'ai pas du être assez explicite dans ma demande.
    Je ne veux pas sauvegarder mes données, je voudrais juste récupérer les données entrées dans l'UF pour
    y revenir dessus, lorsque je le ré-ouvre et pourvoir ainsi les modifier à la demande sans être obligé de tout retaper.
    merci

  11. #11
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par bidochon34800 Voir le message
    merci de vos réponses, mais je pense que je n'ai pas du être assez explicite dans ma demande.
    Je ne veux pas sauvegarder mes données, je voudrais juste récupérer les données entrées dans l'UF pour
    y revenir dessus, lorsque je le ré-ouvre et pourvoir ainsi les modifier à la demande sans être obligé de tout retaper.
    merci
    Quand on ferme on UserForm, on perd ce qu'il y a dedans. Reste juste à avoir autant de variables que de données et de rappeler les données dans le UserForm_initialize.

    Ceci dit, les données non enregistrées sont perdues dès que la macro est terminée. Si tu n'enregistres pas tes données, tout est à recommencer au lancement du programme.

    Si tu ne veux pas enregistrer tes données dans les propriétés, ni dans le registre, tu peux utiliser l'API Windows pour te faire un fichier .ini, ou te faire un banal fichier texte, ou même un fichier Excel que tu manipules avec ADO.

    Si tu es brave et qu'il reste de la place dans la mémoire d'environnement de ton PC, tu peux les mettre comme variables d'environnement. Rendu là, il ne faut pratiquement plus que le PC soit arrêté ou relancé, parce que là, on est rendu en mémoire vive.

    Quand tu sauras comment enregistrer sans enregistrer, tu viendras nous le dire.

    Maintenant, je pense que tout a été dit

  12. #12
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut bidochon34800,

    En fait, il existe une méthode plus simple pour sauvegarder. Il suffit de lire les informations de ton formulaire dans les valeurs par défaut. Je pensais que cette méthode n'était pas la meilleure mais au vu des réponses précédentes, ce n'est pas pire mais ça t'évite des trucs super compliqués comme les modifications des registres qui peuvent d'ailleurs t'être interdites si tu n'es pas administrateur de ta machine ou si tu travailles avec des logiciels de protection et de sécurité des machines , type anti-virus comme Sophos, Kaspersky ou mcAfee. Alors qu'avec ce que je propose, il suffit d'avoir le droit d'écriture pour le formulaire (ce qui est le minimum).

    Voici le code générique et qui fonctionne pour tous les champs de formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub SauvegarderValeursD1Formulaire
        For aI = 1 To ActiveDocument.FormFields.Count
            Select Case ActiveDocument.FormFields(aI).Type
                Case wdFieldFormTextInput
                    ActiveDocument.FormFields(aI).TextInput.Default = ActiveDocument.FormFields(aI).Result
     
                Case wdFieldFormDropDown
                    ActiveDocument.FormFields(aI).DropDown.Default = ActiveDocument.FormFields(aI).DropDown.Value
     
                Case wdFieldFormCheckBox
                    ActiveDocument.FormFields(aI).CheckBox.Default = ActiveDocument.FormFields(aI).CheckBox.Value
     
                Case Else
     
            End Select
        Next
    End Sub
    @+

  13. #13
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Février 2013
    Messages : 32
    Points : 19
    Points
    19
    Par défaut
    je préfère aisément la proposition de Sépia qui me parait correspondre davantage à mes besoins et attentes, il suffisait peut-être de comprendre tout simplement ce que je voulais, sans faire un étalage de connaissances qui sert uniquement à se faire gonfler les chevilles.
    Je vais donc travailler là dessus et m'adresse donc à Sépia. Peux-tu me dire à correspond le "aI" dans la solution que tu me proposes ?
    merci

  14. #14
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Ce que sepia te donne correspond à un formulaire.
    Dans ta demande initiale, tu mentionnes un UserForm.
    Ce sont deux choses totalement différentes.
    Le formulaire est un document Word avec des champs de formulaires.
    Le UserForm est une interface utilisée en programmation pour dialoguer avec l'utilisateur.

    si c'est la gestion du formulaire qui te semble être la solution, tu aurais du être plus précis lors de ta demande initiale.

  15. #15
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par bidochon34800 Voir le message
    il suffisait peut-être de comprendre tout simplement ce que je voulais, sans faire un étalage de connaissances qui sert uniquement à se faire gonfler les chevilles.merci
    Il suffisait simplement de prendre les bons termes, de bien expliquer ce dont tu avais besoin et d'arrêter de penser que nous sommes des devins. Quand la question porte sur un UserForm, la réponse porte sur un UserForm.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Février 2013
    Messages : 32
    Points : 19
    Points
    19
    Par défaut
    Le problème est que je ne fais pas la différence entre un UF et un formulaire, d'où ma confusion (=> mille excuses pour ça).
    Ma question porte bien sur un userform, qui me permet de remplir des signets.
    Je comprends qu'il n'est pas possible de récupérer mes données comme demandé, puisque si j'ai bien compris, à partir du moment où
    l'on ferme la macro, on perd tout.
    Donc c'est tant pis pour moi.
    N'y aurait-il pas la possibilité d'enregistrer mes données en fin de document et de les récupérer par un userform_initialize () comme proposé ?
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Garder en mémoire les données introduites dans mon userform
    Par thomanneca dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2014, 21h46
  2. [Toutes versions] Conserver les données rentrées dans un Userform
    Par mikeactuaire dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/08/2011, 22h38
  3. [XL-2003] enregistrement tableau excel suivant les données entrées dans combobox
    Par mdambreville dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/06/2009, 10h28
  4. conserver les valeurs entrées dans un formulaire
    Par mitmit dans le forum Langage
    Réponses: 5
    Dernier message: 03/05/2007, 10h09
  5. Réponses: 8
    Dernier message: 19/05/2005, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo