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 :

Enregistrer des données textbox en excel via un bouton dans un userform


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Enregistrer des données textbox en excel via un bouton dans un userform
    Bonsoir à tous,

    Je suis des cours du soir depuis Sept 2014...et j'essaie de dvlopper un userform (fomulaire,voir en attachement).
    En clickant sur le boutton "save" (CommandButton1), cela aurait comme action d'enregistrer
    les données contenues dans les Textbox dans une feuille de calcul (worksheet données) par ex de A1 à P1

    En attachement, le code d'erreur...
    Ci-dessous le code le code...
    Si qq'un sait m'aider...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub CommandButton1_Click()
     
    Dim i As Integer
     
     
        For i = 1 To 13
     
            Sheets("fomulaire").Control("TextBox" & i).Value = Sheets("données").Range("B" & i + 1).Value
     
        Next
     
    End sub
    Images attachées Images attachées    

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonsoir,

    pose toi ces 2 questions :

    Que fait cette ligne de code : For i = 1 To 13

    et celle-ci "TextBox" & i

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut

    Je réfléchis mais je ne trouve pas la solution...

    D'avance merci

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    bonjour,

    tu n'as pas l'air d'avoir beaucoup cherché ....


    Ben le "for" c'est une boucle qui fait évoluer i de 1 à 13

    et l'operation "TextBox" & i effectue une concaténation de la chaine "TextBox" et i ... TextBox1, TextBox2 ....TextBox13 : est-tu sur que tous ces textbox existent ?

  5. #5
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Tu dis :
    En clickant sur le boutton "save" (CommandButton1), cela aurait comme action d'enregistrer
    les données contenues dans les Textbox dans une feuille de calcul (worksheet données) par ex de A1 à P1
    et ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("fomulaire").Control("TextBox" & i).Value = Sheets("données").Range("B" & i + 1).Value
    fait référence à deux feuilles de calcul Excel dont une (fomulaire) contiendrait des TextBox (contrôles ActiveX) qui devraient recevoir les valeurs de la feuille "données" et en plus, si on fait référence à une collection d'objets, le nom de la collection prend un s à la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Control("TextBox" & i).Value
    doit s'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Controls("TextBox" & i).Value
    Sur ton image, on ne voit que 7 TextBox alors que tu boucle jusqu'à 13 !
    regarde cette piste :
    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
     
    Private Sub CommandButton1_Click()
     
        Dim I As Integer
        Dim J As Integer
     
        J = 1
     
        For I = 0 To Me.Controls.Count - 1
     
            If InStr(Me.Controls(I).Name, "TextBox") <> 0 Then
     
                J = J + 1
                'en colonne B
                Sheets("données").Cells(J, 2).Value = Me.Controls("TextBox" & I).Value
     
                'ou/et en ligne 1
                Sheets("données").Cells(1, J).Value = Me.Controls("TextBox" & I).Value
     
            End If
        Next
     
    End Sub
    Hervé.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/02/2011, 15h45
  2. enregistrement des données sur excel
    Par pbatty1 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/04/2010, 15h19
  3. Enregistrer des données issues de Textbox
    Par Jodu42 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/11/2008, 11h43
  4. Réponses: 0
    Dernier message: 10/08/2008, 19h05
  5. Réponses: 7
    Dernier message: 20/03/2005, 14h53

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