VBA récupérer les données d'une ligne dans un userform

isa38600 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je cherche à récupérer les données contenues dans la ligne de la cellule active dans un userform afin de pouvoir les modifier par la suite...

Le code que j'ai trouvé fonctionne mais avec un bug non négligeable: il sélectionne bien la ligne que je veux, mais lorsque l'userform se lance, ce sont les données de la ligne du dessus qui ont été récupérées...

Je n'ai rien trouvé qui répondait à mon soucis dans les différents posts sur le sujet, je ne comprends pas pourquoi ça me fait ça et ça commence à me rendre chèvre!

Je vous copie mon code ci-dessous. Merci d'avance aux bonnes âmes qui voudront bien m'expliquer ce qui cloche!

Sub CommandButton2_Cliquer()

'selectionner la ligne correspondant à la cellule active
ActiveCell.EntireRow.Select

'séparer les éléments "jour", "mois", "année" et les replacer dans les combobox correspondantes
Dim TabSep() As String
TabSep() = Split(Selection(ligne, 1).Value, " ")
UserForm2_modifier.ComboBox4.Value = TabSep(0)
UserForm2_modifier.ComboBox5.Value = TabSep(1)
UserForm2_modifier.ComboBox6.Value = TabSep(2)

'remplir le formulaire avec les données de la ligne sélectionnée
UserForm2_modifier.ComboBox1.Value = Selection(ligne, 2)
UserForm2_modifier.ComboBox2.Value = Selection(ligne, 3)
UserForm2_modifier.ComboBox3.Value = Selection(ligne, 4)
UserForm2_modifier.TextBox1.Value = Selection(ligne, 5)
UserForm2_modifier.ComboBox7.Value = Selection(ligne, 6)
UserForm2_modifier.TextBox2.Value = Selection(ligne, 7)
UserForm2_modifier.ComboBox8.Value = Selection(ligne, 8)
UserForm2_modifier.ComboBox9.Value = Selection(ligne, 9)
'End With
'End If

'afficher le formulaire
UserForm2_modifier.Show

End Sub




Configuration: Windows / Edge 100.0.1185.44

1 réponse

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

la variable ligne n'est pas déclaré!

Dim ligne As Long
ligne = ActiveCell.Row

0