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

Résolu
Namkaa -  
alberkrimo Messages postés 20 Statut Membre -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. Namkaa
       
      Merci merci merci !

      Ca marche :)
      0
  2. alberkrimo Messages postés 20 Statut Membre
     
    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
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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
      1. alberkrimo Messages postés 20 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        ça marche nickel ! merciii
        0