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 :

Ajout de données par userform dans une feuille excel [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    Par défaut Ajout de données par userform dans une feuille excel
    Bonjour,

    Je fais actuellement une base de données avec une interface (userform) en vba.
    Jusque là tous va bien! Quand je rentre les données concernant des personnes dans l'userfom je veux envoyer les données sur une feuille excel.
    Donc j'aimerais savoir comment faire pour envoyer les données sur une ligne vierge?

    voici ce que j'ai fait mais ceci permet de cibler une ligne:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Private Sub CommandButton2_Click()
     
        Sheets("BDD").Range("B2823").Value = TextBox1.Value 'nom
        Sheets("BDD").Range("B2823").Value = TextBox2.Value 'prenom
        Sheets("BDD").Range("B2823").Value = CheckBox1.Value 'genre homme
        Sheets("BDD").Range("B2823").Value = CheckBox2.Value 'genre femme
        Sheets("BDD").Range("B2823").Value = TextBox3.Value 'fonction
        Sheets("BDD").Range("B2823").Value = TextBox4.Value 'adresse
        Sheets("BDD").Range("B2823").Value = TextBox5.Value 'code postal
        Sheets("BDD").Range("B2823").Value = TextBox6.Value 'ville
        Sheets("BDD").Range("B2823").Value = TextBox7.Value 'telephone perso
        Sheets("BDD").Range("B2823").Value = TextBox8.Value 'email perso
        Sheets("BDD").Range("B2823").Value = TextBox9.Value 'nom structure
        Sheets("BDD").Range("B2823").Value = TextBox10.Value 'type structure
        Sheets("BDD").Range("B2823").Value = TextBox11.Value 'adresse pro
        Sheets("BDD").Range("B2823").Value = TextBox12.Value 'code postal pro
        Sheets("BDD").Range("B2823").Value = TextBox13.Value 'ville pro
        Sheets("BDD").Range("B2823").Value = TextBox14.Value 'tel pro
        Sheets("BDD").Range("B2823").Value = TextBox15.Value 'email pro
        Sheets("BDD").Range("B2823").Value = CheckBox3.Value 'envois formation oui
        Sheets("BDD").Range("B2823").Value = CheckBox4.Value 'envois formations non
        Sheets("BDD").Range("B2823").Value = CheckBox5.Value 'dsi oui
        Sheets("BDD").Range("B2823").Value = CheckBox6.Value 'dsi non
        Sheets("BDD").Range("B2823").Value = TextBox16.Value 'dispositif
        Sheets("BDD").Range("B2823").Value = TextBox17.Value 'statut
        Sheets("BDD").Range("B2823").Value = CheckBox7.Value 'participations formations oui
        Sheets("BDD").Range("B2823").Value = CheckBox8.Value 'participations formations non
        Sheets("BDD").Range("B2823").Value = CheckBox9.Value 'usagers cdr oui
        Sheets("BDD").Range("B2823").Value = CheckBox10.Value 'usagers cdr non
     
    End Sub


    Si quelqu'un vois comment faire, je suis preneur....Merci et bonne journée

  2. #2
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Par défaut
    Peter,

    Je te propose ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Nom = UserForm3.ComboBox2.Value
    Type1 = UserForm3.ComboBox1.Value
    Type2 = UserForm3.ComboBox3.Value
     
    Worksheets(14).Select
     
    'Inscrit les données dans la feuille Base de Données
    v_adresse = Range("A3").End(xlDown).Offset(1, 0).Address 'trouve la dernière ligne
    Range(v_adresse) = Nom
    Range(v_adresse).Offset(0, 1).Value = Type1
    Range(v_adresse).Offset(0, 2).Value = Type2
    Range(v_adresse).Offset(0, 3).Value = DateDebut


    Cdt

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    Par défaut vba formulaire excel
    Merci et j'ai essayé le code je n'arrive pas à le faire fonctionner!
    Je rajoute des images de ma base de données et de mon formulaire pour faciliter la compréhension de mon probléme!!
    Images attachées Images attachées   

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut affectation variable
    Bonjour à vous deux,

    Si je peux me permettre.

    Pour ce genre d'action, il vaut mieux
    - détecter la dernière cellule en partant de la dernière ligne de la feuille
    - affecter une variable à cette cellule et informer les cellules correspondantes

    Soit (à adapter)

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Public Sub essai()
     
    'Déclaration variable
    Dim v As Range
     
    With UserForm3
            Nom = .ComboBox2.Value
            Type1 = .ComboBox1.Value
            Type2 = .ComboBox3.Value
    End With
     
    With Worksheets(14)
            'Affectation d'une variable à la 1ère cellule vide
            Set v = .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 1) 
    End With
     
    With v
        .Value = Nom
        .Offset(0, 1).Value = Type1
        .Offset(0, 2).Value = Type2
        .Offset(0, 3).Value = DateDebut
    End With
     
    'Réinitialisation de la variable
    Set v = Nothing
     
    End Sub

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    Par défaut excel vba userform
    Merci mais je comprends pas le code!
    A quoi correspond With Worksheets(14) parce qu'il e trouve pas l'indice apparemment.....

  6. #6
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Par défaut
    Bonjour tous les deux,

    With Worksheets(14)
    signifie que tu travailles avec ce qui se trouve dans ta feuille n°14.

    Dans ton cas, cela donne :

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut code
    Bonjour Peter11, Bonjour le Forum,

    Comme indiqué, le code indiqué reste à adapter.
    C'est en le comprenant mot par mot et en l'adaptant que les notions évoquées deviendront familières.
    Ici, signifie la feuille de calcul indicée 14 dans ton éditeur VBE.
    Une autre manière de procéder consiste à nommer la feuille
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("nomdelafeuille")

  8. #8
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    Par défaut vba exel userform
    C'est bon j'ai trouvé worksheet c'est le numéro de la feuille!
    Par contre quand je rentre un nom dans mon formulaire et que je valide, il me l'enregistre sur la premiere ligne de mon tableau alors que j'aimerais qu'il trouve la derniere et qu'il l'enregistre dedans....

  9. #9
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut dernière ligne
    Salut Peter

    Ajoute à ce code cette nouvelle ligne (Debug.Print...) à cet endroit et retourne le résultat affiché dans ta fenêtre Exécution (visible par le menu VBE ou par combinaison des touches CTRL + G)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Worksheets(14)
            'Affectation d'une variable à la 1ère cellule vide
            Set v = .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 1) 
    End With
     
    Debug.Print v.Address

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

Discussions similaires

  1. [XL-2003] Enregistrer les données des textbox dans une feuille excel
    Par monichou86 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 06/01/2010, 15h24
  2. Copier la liste Box d'un userForm dans une feuille Excel
    Par AVNAIM dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/05/2008, 15h12
  3. Réponses: 2
    Dernier message: 10/09/2007, 16h40
  4. Réponses: 2
    Dernier message: 06/04/2007, 21h37
  5. [VBA]Userform mobile dans une feuille excel
    Par fikren dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/10/2005, 15h45

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