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 les données contenu dans un formulaire (textbox) vers une feuille excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Enregistrer les données contenu dans un formulaire (textbox) vers une feuille excel
    Bonjour tout le monde!! voila mon soucis:

    j'ai du mal à enregistrer les données contenues dans mon formulaire sur une feuille excel afin de pouvoir les sauvegardées.
    Voila le code qui me cré des problèmes. Je vous remercie d'avance

    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
    Private Sub CommandButton1_Click()
     
      Worksheets("Reception").Cells(i, 2).Value = Val(txtbc)
      Worksheets("Reception").Cells(i, 3).Value = Val(txtxdatRecept)
      Worksheets("Reception").Cells(i, 4).Value = Val(txtnom)
      Worksheets("Reception").Cells(i, 5).Value = Val(txtcateg)
      Worksheets("Reception").Cells(i, 6).Value = Val(txtdescrip)
      Worksheets("Reception").Cells(i, 7).Value = Val(txtpu)
      Worksheets("Reception").Cells(i, 8).Value = Val(txtqte)
    End Sub
     
    Private Sub Afficher(i As Integer)
     
        With Worksheets("Reception")
            frReception.txtbc.Text = .Cells(i, 2)
            frReception.txtxdatRecept.Text = .Cells(i, 3)
            frReception.txtnom.Text = .Cells(i, 4)
            frReception.txtcateg.Text = .Cells(i, 5)
            frReception.txtdescrip.Text = .Cells(i, 6)
            frReception.txtpu.Value = .Cells(i, 7)
            frReception.txtqte.Value = .Cells(i, 8)
            frReception.lbtPT = .Cells(i, 9)
        End With
    End Sub

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu as un message d'erreur ? Sur quel ligne ? Quel message ?
    A+ (peut-être... vu l'heure )

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    salut,
    en fait il met la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             Worksheets("Reception").Cells(i, 2).Value = Val(txtbc)
    en jaune ou alors c'est tout une histoire de debogage.

    j'ai ossi essayé ce code la mais lui il me duplique les informations et ne semble pas tenir compte du texte mais seulement des nombres. Je voudrais pourtant que les enregistrements s'inscrive o fur et à mesure sur les ligne de ma feuille excel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton1_Click()
    For i = 2 To 50
     
                Worksheets("Reception").Cells(i, 2).Value = Val(txtbc)
                Worksheets("Reception").Cells(i, 3).Value = Val(txtxdatRecept)
                Worksheets("Reception").Cells(i, 4).Value = Val(txtnom)
                Worksheets("Reception").Cells(i, 5).Value = Val(txtcateg)
                Worksheets("Reception").Cells(i, 6).Value = Val(txtdescrip)
                Worksheets("Reception").Cells(i, 7).Value = Val(txtpu)
                Worksheets("Reception").Cells(i, 8).Value = Val(txtqte)
     
    Next i
     
    End Sub
    je vous remercie

    Edit
    c'est For i = 2 to 50

    merci!!

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Si tu as plusieurs userforms, alors nomme le dans ta ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                Worksheets("Reception").Cells(i, 2).Value = Val(Userform1.txtbc)
    Dans tous les cas, distingue le texte des valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Si valeur
                 Worksheets("Reception").Cells(i, 2).Value = Val(Userform.txtbc)
    'Si texte
                Worksheets("Reception").Cells(i, 2).Value = Userform.txtbc
    Val sert à convertir un texte numérique en valeur. Donc, pour une chaîne de texte, tu ne dois pas l'utiliser.
    Tu dis
    A+

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    bonjour,

    j'ai bien compri tes recommandations. Maintenant, comment je peux faire pour eviter que l'enregistrement n soi pa dupiker sur la feuille excel et que je puisse voir apparaitre les enregistrement les uns à la suite des autres (sans les supprimer), car cela pourrait me servir d'archivage.

    Je te remercie.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je ne comprends pas ta question. Ton code remplit les colonnes 2 à 8 des lignes 2 à 50.
    Je pense que tu veux, à chaque clic sur le bouton, valider la saisie et l'ajouter sur la ligne suivante...
    Si c'est ça, il te faut connaître le N° de cette ligne.
    Tu supprimes for i = 2 to 50 .... Next et tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CommandButton1_Click()
    Dim i as integer
           i = Worksheets("Reception").Range("B65536").end(xlup).row + 1
           Worksheets("Reception").Cells(i, 2).Value = Val(txtbc)
           Worksheets("Reception").Cells(i, 3).Value = cdate(txtxdatRecept)
           Worksheets("Reception").Cells(i, 4).Value = txtnom
           Worksheets("Reception").Cells(i, 5).Value = Val(txtcateg)
           Worksheets("Reception").Cells(i, 6).Value = txtdescrip
           Worksheets("Reception").Cells(i, 7).Value = Val(txtpu)
           Worksheets("Reception").Cells(i, 8).Value = Val(txtqte)
    End sub
    Ça, c'est pour le principe. Pour alléger ton code, tu peux instancier ta feuille et utiliser cette instance dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
    Dim i as integer, FL1 as worksheet
           set FL1 = Worksheets("Reception")
           i = FL1.Range("B65536").end(xlup).row + 1 'B car tu ne remplis pas la colonne A (!)
           FL1.Cells(i, 2).Value = Val(txtbc) 'colonne B 
           FL1.Cells(i, 3).Value = CDate(txtxdatRecept)
           FL1.Cells(i, 4).Value = txtnom
           FL1.Cells(i, 5).Value = Val(txtcateg)
           FL1.Cells(i, 6).Value = txtdescrip
           FL1.Cells(i, 7).Value = Val(txtpu)
           FL1.Cells(i, 8).Value = Val(txtqte)
    End sub
    Bon après-midi

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    magnifikkkkkkkkkk ca marchhhhhhhhhhhe!!! merci bocou!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/12/2011, 10h23
  2. Réponses: 5
    Dernier message: 17/03/2011, 15h12
  3. Réponses: 4
    Dernier message: 11/08/2010, 16h11
  4. Recuperer les données saisie dans un formulaire
    Par hunzi dans le forum XMLRAD
    Réponses: 3
    Dernier message: 29/08/2006, 15h22
  5. Filtrer sur les données vides dans un formulaire
    Par jevany dans le forum Access
    Réponses: 7
    Dernier message: 29/05/2006, 08h50

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