Enregistrer les données d'un formulaire dans une autre feuille [Résolu/Fermé]

Signaler
-
Messages postés
20
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
31 mai 2017
-
Bonjour,

Mon problème est un peu complexe, donc j'espère que je serais claire. J'ai un formulaire de saisie de données que j'ai crée sous excel. J'ai fait en sorte qu'il s'affiche automatiquement à l'ouverture de mon classeur ou qu'il s'affiche si on clique sur un bouton de commande dans une feuille excel appelée "formulaire de saisie".
Dans mon formulaire j'ai un bouton de commande qui permet d'enregistrer les données saisies en remplissant une nouvelle ligne de mon tableau à chaque clic sur le bouton. Le formulaire se vide ensuite et au clic suivant, c'est la ligne d'en dessous qui est remplie et ainsi de suite.

Mon problème est que j'aimerais que mes données soient remplies dans une autre feuille que celle où le formulaire s'affiche, appelée "donnees". Or je me suis aperçue qu'avec mon code il faut que le formulaire soit affiché dans la feuille où sera saisie la ligne de données, ce qui me pose un problème uniquement d'esthétisme mais que j'aimerais résoudre si possible.

Voici le code VBA en question :

Private Sub CommandButton1_Click()
' [...] j'ai ici entre les deux des codes pour des messages à afficher mais qui n'ont rien avoir avec le problème
Dim L As Integer
If MsgBox("Enregistrer l'observation ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
L = Sheets("Donnees_tetras").Range("B65536").End(xlUp).Row + 1
Range("B" & L).Value = ComboBox1
Range("D" & L).Value = TextBox1
Range("E" & L).Value = ComboBox2
Range("F" & L).Value = ComboBox3
Range("H" & L).Value = TextBox2
Range("G" & L).Value = TextBox3
Range("L" & L).Value = ComboBox4
Range("N" & L).Value = ComboBox5
Range("O" & L).Value = ComboBox6
Range("P" & L).Value = ComboBox7
Range("Q" & L).Value = TextBox6
Range("R" & L).Value = ComboBox8
Range("S" & L).Value = TextBox7
Range("T" & L).Value = TextBox8
Range("W" & L).Value = TextBox9
Range("X" & L).Value = TextBox10

End If
Unload Me
UserForm1.Show

End Sub
Je pensais que la formule L = Sheets("Donnees_tetras").Range("B65536").End(xlUp).Row + 1 permettait justement de spécifier que je veux que mes données soient saisies dans la feuille "Donnees_tetras", mais ça n'a pas l'air le cas.

Est-ce que quelqu'un aurait une solution?

Merci

2 réponses

Messages postés
15391
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
1 385
Bonjour,

Private Sub CommandButton1_Click()
    ' [...] j'ai ici entre les deux des codes pour des messages à afficher mais qui n'ont rien avoir avec le problème
    Dim L As Integer
    If MsgBox("Enregistrer l'observation ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
        'Bloc With/end with: tous les objets avec un . devant sont lies a l'objet defini par le With
        With Sheets("Donnees_tetras")
            'premiere cellule vide colonne B
            L = .Range("B65536").End(xlUp).Row + 1
            .Range("B" & L).Value = ComboBox1
            .Range("D" & L).Value = TextBox1
            .Range("E" & L).Value = ComboBox2
            .Range("F" & L).Value = ComboBox3
            .Range("H" & L).Value = TextBox2
            .Range("G" & L).Value = TextBox3
            .Range("L" & L).Value = ComboBox4
            .Range("N" & L).Value = ComboBox5
            .Range("O" & L).Value = ComboBox6
            .Range("P" & L).Value = ComboBox7
            .Range("Q" & L).Value = TextBox6
            .Range("R" & L).Value = ComboBox8
            .Range("S" & L).Value = TextBox7
            .Range("T" & L).Value = TextBox8
            .Range("W" & L).Value = TextBox9
            .Range("X" & L).Value = TextBox10
        End With
    End If
    Unload Me
    UserForm1.Show
End Sub
Merci merci merci !

Ca marche :)
Messages postés
20
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
31 mai 2017

Bonjour,
ça ne marche pas pour moi. j'ai le même problème, j'ai bien modifier mon code en se basant sur le votre mais les données sont toujours enregistrées dans la feuille ou le formulaire s'affiche.
Pourriez vous m'aider svp?

Merci par avance.

voici mon code :

Private Sub CommandButton1_Click()
Dim L As Integer
If MsgBox("Confirmez ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then
With Sheets("Feuil1")
L = .Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
Range("D" & L).Value = TextBox1
Range("F" & L).Value = TextBox2
Range("G" & L).Value = TextBox3
Range("I" & L).Value = TextBox4
Range("E" & L).Value = TextBox5
Range("A" & L).Value = ComboBox1
Range("B" & L).Value = ComboBox2
Range("C" & L).Value = ComboBox3
Range("j" & L).Value = DTPicker1
End With
End If
Unload Me
UserForm1.Show
End Sub
Messages postés
15391
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
1 385
Bonjour,

j'ai bien modifier mon code en se basant sur le votre mais
Ben vous n'avez pas modifie correctement, il manque le point devant les Range apres la ligne L=
Messages postés
20
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
31 mai 2017
>
Messages postés
15391
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020

ça marche nickel ! merciii