Bonjour (et oui encore moi )
Le problème est plutôt simple, quand tu ne précises pas la feuille dans laquelle se trouve un objet Range ou Cells, VBA considère que la feuille dans laquelle se trouve la plage de cellules, ou la cellule, est la feuille active, et donc ta feuille Choix, il faut ici être explicite sur la feuille dans laquelle se trouve ton objet pour utiliser des cellules d'une autre feuille, ton programme deviendra:
Private Sub CommandButton1_Click()
Dim n As Integer
If MsgBox(" Confirmez-vous l’insertion de ce nouvel article ? ", vbYesNo, " Demande de confirmation d’ajout ") = vbYes Then
n = Sheets("listes").Range("c" & Rows.Count).End(xlUp).Row + 1
Sheets("listes").Range("E" & n).Value = TextBox1
Sheets("listes").Range("F" & n).Value = TextBox2
End If
Unload Me
End Sub
Et pour éviter de répéter Sheets("listes") partout, on va utiliser With:
Private Sub CommandButton1_Click()
Dim n As Integer
With Sheets("listes")
If MsgBox(" Confirmez-vous l’insertion de ce nouvel article ? ", vbYesNo, " Demande de confirmation d’ajout ") = vbYes Then
n = .Range("c" & Rows.Count).End(xlUp).Row + 1
.Range("E" & n).Value = TextBox1
.Range("F" & n).Value = TextBox2
End If
End With
Unload Me
End Sub
J'ai testé le code et il "marche", dans le sens où ça exporte bien sur la bonne feuille, mais tu recalcules la ligne sur laquelle tu dois exporter tes données après avoir rajouté une ligne à ton tableau, ça décalle les infos des deux premières colonnes en les écrivant sur la ligne suivante visiblement, je te laisse débuguer ça