Enregistrer les données d'un formulaire dans une autre feuille

Résolu/Fermé
Namkaa - 24 juil. 2015 à 15:52
alberkrimo Messages postés 20 Date d'inscription samedi 3 janvier 2015 Statut Membre Dernière intervention 31 mai 2017 - 19 déc. 2016 à 15:45
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
A voir également:

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
24 juil. 2015 à 15:59
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
0
Merci merci merci !

Ca marche :)
0
alberkrimo Messages postés 20 Date d'inscription samedi 3 janvier 2015 Statut Membre Dernière intervention 31 mai 2017
19 déc. 2016 à 11:53
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
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
19 déc. 2016 à 15:03
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=
0
alberkrimo Messages postés 20 Date d'inscription samedi 3 janvier 2015 Statut Membre Dernière intervention 31 mai 2017 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
19 déc. 2016 à 15:45
ça marche nickel ! merciii
0