Placer les informations du formulaire dans le tableau

Bonjour,

Je suis nouvelle dans le forum et dans l'utilisation des codes vba sur excel.

J'ai un doute de comment placer les informations du formulaire dans le tableau.

J'ai un tableau excel avec plusieurs onglets, l'onglet en deuxième place s'appelle "2022", et c'est cela que j'envisage d'alimenter avec les informations saisies dans le formulaire, j'ai réussi à créer le formulaire, le bouton pour ce formulaire et il manque seulement que les informations soient placées dans le bon endroit: à partir de la cellule A5, mais cela ne marche pas .

Est-ce-que quelqu’un peut m'aider?

Voici le code vba pour ce bouton:

Private Sub CommandButton1_Click()

If ComboBox1 = “” Or TextBox4 = “” Or ComboBox2 = “” Then
MsgBox "Veuillez remplir les infos avec la mention * ", , "SERAM AEROMAT"
Else

If Sheets("2022").Range("B5") = "" Then 'Si la cellule A5 est vide alors compléter
Sheets("2022").Range("B5") = ComboBox1
Else
Sheets("2022").ListObjects(1).ListRows.Add 'Sinon ajouter une ligne à la suite du tableau --> le problème se pose ici


End If
dlt = Sheets("2022").Range("d1048576").End(xlUp).Row

' Remplissage des colonnes en fonctions des zones de saisies
Sheets("2022").Range("a" & dlt) = Now ' Date
Sheets("2022").Range("b" & dlt) = ComboBox1 ' Technicien
Sheets("2022").Range("c" & dlt) = TextBox2 + Label12 + TextBox9 'Immat
Sheets("2022").Range("d" & dlt) = TextBox3 ' N° dossier
Sheets("2022").Range("e" & dlt) = TextBox6 ' Quantité
Sheets("2022").Range("f" & dlt) = ComboBox2 ' Unités
Sheets("2022").Range("g" & dlt) = TextBox5 ' P/N
Sheets("2022").Range("h" & dlt) = TextBox4 ' Désignation
Sheets("2022").Range("i" & dlt) = TextBox10 ' Alternate
Sheets("2022").Range("j" & dlt) = TextBox7 ' Fournisseurs
Sheets("2022").Range("k" & dlt) = TextBox8 ' Notes

Unload UserForm1 ' Remplir les infos et fermer le forumulaire

End If

End Sub

Private Sub TextBox2_Enter() 'Montrer le format de la zone de saisie
If TextBox2 = "X" Then
TextBox2 = ""
End If
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Cacher le format de la zone de saisie quand on clique dedans
If TextBox2 = "" Then
TextBox2 = "X"
End If
End Sub

Private Sub Textbox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Nombre obligatoire
If Not ((KeyAscii > 47 And KeyAscii < 59)) Then
KeyAscii = 0
End If
End Sub

Private Sub TextBox9_Enter() 'Montrer le format de la zone de saisie
If TextBox9 = "XXXX" Then
TextBox9 = ""
End If
End Sub

Private Sub TextBox9_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Cacher le format de la zone de saisie quand on clique dedans
If TextBox9 = "" Then
TextBox9 = "XXXX"
End If
End Sub

Private Sub TextBox3_Enter()
TextBox3 = TextBox9
End Sub

Private Sub UserForm_Initialize()

TextBox2.Text = "X"
TextBox9.Text = "XXXX"

With ComboBox1 'Listes des techniciens
.AddItem "ALEXANDRE"
.AddItem "ANDRE"
.AddItem "ANNE"
.AddItem "CAMILLA"
.AddItem "LAËTITIA"
.AddItem "LAURINE"
.AddItem "LUDWIG"
.AddItem "PIERRE"
.AddItem "PIERROT"
.AddItem "STAGIAIRES"
.AddItem "THIERRY"
.AddItem "AUTRES"
End With

With ComboBox2 ' Liste des unités
.AddItem "Unité(s)"
.AddItem "Paquet(s) / Lot(s)"
.AddItem "Mètre(s)"
.AddItem "Centimètres"
.AddItem "Inch"
.AddItem "Litre(s)"
.AddItem "Gallons US"
.AddItem "Kg"
.AddItem "Grammes"

End With

End Sub

Merci beaucoup pour votre aide.

Bonne journée.

Bonjour,

Il faut vous servir d'un objet ListRow correspondant à une ligne de votre tableau structuré. Par ailleurs, coder en dur le nom de votre onglet dans le userform n'est pas une bonne idée.

Private Sub CommandButton1_Click()

Dim LigneTableau As ListRow

    If ComboBox1 = “” Or TextBox4 = “” Or ComboBox2 = “” Then
       MsgBox "Veuillez remplir les infos avec la mention * ", , "SERAM AEROMAT"
    Else

    If Sheets("2022").Range("B5") = "" Then 'Si la cellule A5 est vide alors compléter
       Sheets("2022").Range("B5") = ComboBox1
    Else
       Set LigneTableau = Sheets("2022").ListObjects(1).ListRows.Add 'Sinon ajouter une ligne à la suite du tableau --> le problème se pose ici

       With LigneTableau
            ' Remplissage des colonnes en fonctions des zones de saisies
            .Range(1, 1) = Now ' Date
            .Range(1, 2) = ComboBox1 ' Technicien
            .Range(1, 3) = TextBox2 + Label12 + TextBox9 'Immat
            .Range(1, 4) = TextBox3 ' N° dossier
            .Range(1, 5) = TextBox6 ' Quantité
            .Range(1, 6) = ComboBox2 ' Unités
            .Range(1, 7) = TextBox5 ' P/N
            .Range(1, 8) = TextBox4 ' Désignation
            .Range(1, 9) = TextBox10 ' Alternate
            .Range(1, 10) = TextBox7 ' Fournisseurs
            .Range(1, 11) = TextBox8 ' Notes
       End With
       Set LigneTableau = Nothing

    End If
    Unload UserForm1 ' Remplir les infos et fermer le forumulaire

End If

End Sub
Rechercher des sujets similaires à "placer informations formulaire tableau"