Enregistrer les données d'un formulaire dans une autre feuille
Résolu
Namkaa
-
alberkrimo Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
alberkrimo Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Enregistrer les données d'un formulaire dans une autre feuille
- Whatsapp formulaire opposition - Guide
- Fuite données maif - Guide
- Audacity enregistrer son pc - Guide
- Formulaire de réclamation facebook - Guide
- Supprimer les données de navigation - Guide
2 réponses
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
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
ç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
Ca marche :)