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

Macros et VBA Excel Discussion :

Sauvegarder données dans UserForm [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 113
    Par défaut Sauvegarder données dans UserForm
    Bonjour à tous, je viens de créer un userform et je souhaiterais sauvegarder les données entrées dans l'userform et le transférer par mail.
    Il y a plusieurs étapes :
    1- user rempli le userform
    2- il l'enregistre
    3- il l'envoie par mail
    4- la 2éme personne le valide et ça part la 3ème ou ne le valide pas et ça repart à la 1ère.

    Je n'arrive pas à sauvegarder les données dans le UserForm,

    merci

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Un UserForm est volatile (ses données).
    Il te faut donc :
    - soit utiliser un fichier texte additionnel, à écrire avec les données au départ et à relire à destination pour recharger le userform
    - soit utiliser des cellules (de la même feuille ou d'une feuille additionnelle) pour faire la même chose qu'au dessus.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 113
    Par défaut
    Peux tu détailler je débute et c'est vraiment urgent.
    Une copie de mon fichier serait-elle utile? Merci

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    En espérant que cela sera plus clair :

    ce que tu écris dans ton userform ne peux pas être "sauvegardé" quand tu fermes le userform tout disparaît. Tu dois copier ces données (à l'aide d'une macro) soit dans les cellules de ta feuille excel soit dans un fichier texte (ou autre).
    Et si tu veux les récupérer, les charger (à l'aide d'une macro) à partir de là ou elles étaient sauvegardées.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 113
    Par défaut
    Merci j'ai bien compris c'est la marche a suivre, je débute et la je suis pris par le temps voici mon fichier.
    Oui il faudrait pouvoir enregistrer le classeur et que lorsque on le réceptione il rouvre les données car la 2eme personne dois les voir et valider si ok ou refuser.
    J ai presque tout finis, plus que 2 problème et pas des moindre les données et le format de sortie car trop gran en affichage pour un ecran de tablet pc en 9"

    Je ne sais pas comment faire pour "lier" les donner du UserForm aux cellules, help
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Je ne vais pas pouvoir ouvrir ton fichier (je suis sous 2003 et visiblement toi pas) du coup je vais te répondre en aveugle
    On ne lie pas le userform et les cellules (ou alors j'aimerais sérieusement savoir comment)
    Par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil1.cells(1,1)=userform1.textbox1.value
    ecrit dans la cellule A1 la valeur de la textbox1
    Tu peux faire pareil avec les listbox et autres (voir ici)

    Tu fait l'inverse à l'ouverture dans la subroutine
    Private Sub UserForm_Activate()


    Par contre ca n'aurais pas été plus simple de faire un fichier excel protégé et certaine nom pour pouvoir écrire dedans
    Pour l'affichage sur 9" j'avais vu un moyen d'adapter la taille mais je ne retrouve plus regarde les faq et les contribution VBA execl et VBA access (je croit que ct dans ce dernier)

  7. #7
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,
    Voici ce que j'ai fait.
    Lors de la validation de l'UserForm la feuille BC1 est activée.
    Dans la cellule B24 de la feuille active va se trouver la donnée qui a été saisie dans la Combo (CmbListeBat) et ainsi de suite.
    Tu adapte en changeant les noms et je crois que cela devrait fonctionner.
    Bon courage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
               Sheets("BC1").Activate
                    [B24].Value = (FrmEngt.CmbListeBat.Value)
                    [B25].Value = (FrmEngt.CmbNom.Value)
                    [D24].Value = (FrmEngt.CmbNom.Value)
                    [G6].Value = CDate(FrmEngt.TxtDate)
                    [H14].Value = (FrmEngt.CmbListeCred.Value)
                    [N11].Value = (FrmEngt.CmbListeTiers.Value)
                    [N15].Value = (FrmEngt.TxtNum.Value)
                    [N17].Value = (FrmEngt.CmbMarche.Value)
                    [N19].Value = (FrmEngt.TxtNome.Value)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 113
    Par défaut
    Le voila en 97-2003. Et merci je teste vos solutions.
    Fichiers attachés Fichiers attachés

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 113
    Par défaut
    Mais ou dois je mettre ça dans l'userform?
    Citation Envoyé par Krovax Voir le message
    Je ne vais pas pouvoir ouvrir ton fichier (je suis sous 2003 et visiblement toi pas) du coup je vais te répondre en aveugle
    On ne lie pas le userform et les cellules (ou alors j'aimerais sérieusement savoir comment)
    Par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil1.cells(1,1)=userform1.textbox1.value
    ecrit dans la cellule A1 la valeur de la textbox1
    Tu peux faire pareil avec les listbox et autres (voir ici)

    Tu fait l'inverse à l'ouverture dans la subroutine
    Private Sub UserForm_Activate()


    Par contre ca n'aurais pas été plus simple de faire un fichier excel protégé et certaine nom pour pouvoir écrire dedans
    Pour l'affichage sur 9" j'avais vu un moyen d'adapter la taille mais je ne retrouve plus regarde les faq et les contribution VBA execl et VBA access (je croit que ct dans ce dernier)

  10. #10
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    a toi de voir, je dirais un bouton sauvegardé et dans le code tu fait ca pour chaque info.
    L'exemple de NEC montre comment récupéré plusieurs infos

    ps j'arrive toujours pas a ouvrir ton fichier (mais évite le zip c'est la croix et la bannière pour l'ouvrir chez moi )

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 113
    Par défaut
    Tu n'as pas un mail ou je pourrai te l envoyer? Merci

  12. #12
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Pas accéssible du boulot et vau mieu le mettre sur le forum il y passe des personne bien plus compétente que moi.

    Mais essaye la méthode que l'on t'a donnée et dit nous si tu coince

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 113
    Par défaut
    Je ne sais pas ou mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("REG").Activate
                    [B2].Value = (FrmEngt.CommListeBat.Value)
    ma feuille s'appele REG
    Fichiers attachés Fichiers attachés

  14. #14
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Tu as un bouton sauvegarde alors on va l'utiliser
    Rajoute un onglet que tu apelle par exemple sauv
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton9_Click()
    Sheets("sauv").Activate
    [B2].Value = (userform1.TextBox31.Value) 'ecrit les donnée de ton textbox33 dans la celule B2
    'etc
    Application.Dialogs(xlDialogSaveAs).Show
    End Sub

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 113
    Par défaut
    Merci Krovax, cela fonctionne mais comment faire pour que ces données soit réintégrer dans le userform que recevra la personne 2, et aussi créer une logique de userform c est a dire que les 1er resultats en b2, puis en b3 et ainsi de suite.

  16. #16
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    pour charger les donnée tu fait l'inverse par exemple
    Tu le met soit dans un bouton soit dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub UserForm_Activate()
    qui se lance a l'ouverture de ton userform

    Après pour organiser les resulat je te laisse voir si tu naspas trop de champs tu peux le faire manuellement sinon regarde pour une boucle mais je ne sait pas boucler sur les contrôles. L'important c'est de faire la même chose au chargement des données

    Pour ton problème d'écran 9" regarde ce lien ver la faq
    Par contre tu ne dimensionnera pas la taille des champs. Pour ca ca sera une autre histoire

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 113
    Par défaut
    Merci mais dois je refaire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("sauv").Activate
    et changer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [A2].Value = (UserForm1.ComboBox7.Value)

    en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [UserForm1.ComboBox7] =(A2.Value)
    Cela ne fonctionne pas, ni cette méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton10_Click()
    ComboBox7.Value = A2
    End Sub

  18. #18
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Heu ce n'est pas [] a gauche () a droite
    prend tout ce qui est a gauche et met le a droite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [A2].Value = (UserForm1.ComboBox7.Value)
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (UserForm1.ComboBox7.Value) = [A2].Value
    D'ailleur les () sont inutiles

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 113
    Par défaut
    J'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton10_Click()
    TextBox11.Value = Sheets("sauv").Range("J2").Value
    End Sub
    Merci Beaucoup pour ton aide

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

Discussions similaires

  1. enregistrer modifs de données dans userform
    Par Arobase72 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/12/2009, 19h18
  2. saisie de données dans userform / creation d'application
    Par stifler78 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 29/05/2008, 13h06
  3. Format de données dans userform
    Par _Nimy_ dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/03/2008, 11h16
  4. [VBA-E] affichage de données dans userform
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/02/2007, 22h52

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