Bonjour à vous tous, je dois tout d’abord vous remercier pour tout ce que vous déposez sur ce site, c’est une source intarissable. MERCI.
Voici mon souci : j’ai des Combo qui recherchent une ligne de données qui s’inscrit dans la ListView. Je clique une fois dans la List, pour envoyer les données dans des Textbox où là je fais des changements si nécessaire. Mais quand je confirme avec le code ci-dessous, il m’envoie les données sur la première ligne de ma feuille (facture attente) et non à l’endroit où la Combo a choisi ! Et si je ne passe pas par les Combo, que je clique directement dans ma ListView, tout fonctionne correctement ! Pourquoi ?
Private Sub CommandButton23_Click() ' valider les changements
Dim ItemSelect As Long, X As Byte, Numlign As Long
Dim Derlign As Long, k As Byte, Col As Byte 'La première ligne de la macro du bouton concerne la déclaration des variables :
Derlign = Sheets("Facture attente").Range("A65536").End(xlUp).Row + 1 'détermines la 1ère ligne vide et tu affectes la valeur 1 (n° de la colonne a) à la variable "Col" comme ceci :
Col = 25
With ListView1
ItemSelect = .SelectedItem.Index 'N° de l'index sélectionné dans la lisview
Numlign = Right(.ListItems(.SelectedItem.Index).Key, Len(.ListItems(.SelectedItem.Index).Key) - 1) 'N° ligne de la feuille
If MsgBox("Confirmation de la modification.", vbYesNo, "Confirmation") = vbYes Then
'mise à jour des colonnes de la listview
.ListItems(ItemSelect).Text = UCase(TextBox1)
For k = 1 To 25
If k <> 3 Then .ListItems(ItemSelect).ListSubItems(k).Text = Controls("TextBox" & k + 1)
Next
'.ListItems(ItemSelect).ListSubItems(2).Text = CDate(TextBox3)
'mise à jour de la feuille
Sheets("Facture attente").Cells(Numlign, 1) = UCase(.ListItems(ItemSelect).Text)
Sheets("Facture attente").Cells(Numlign, 2) = UCase(.ListItems(ItemSelect).ListSubItems(1).Text)
Sheets("Facture attente").Cells(Numlign, 3) = UCase(.ListItems(ItemSelect).ListSubItems(2).Text)
Sheets("Facture attente").Cells(Numlign, 4) = UCase(.ListItems(ItemSelect).ListSubItems(3).Text)
Sheets("Facture attente").Cells(Numlign, 5) = UCase(.ListItems(ItemSelect).ListSubItems(4).Text)
Sheets("Facture attente").Cells(Numlign, 6) = UCase(.ListItems(ItemSelect).ListSubItems(5).Text)
Sheets("Facture attente").Cells(Numlign, 7) = UCase(.ListItems(ItemSelect).ListSubItems(6).Text)
Sheets("Facture attente").Cells(Numlign, 8) = UCase(.ListItems(ItemSelect).ListSubItems(7).Text)
Sheets("Facture attente").Cells(Numlign, 9) = UCase(.ListItems(ItemSelect).ListSubItems(8).Text)
Sheets("Facture attente").Cells(Numlign, 10) = UCase(.ListItems(ItemSelect).ListSubItems(9).Text)
Sheets("Facture attente").Cells(Numlign, 11) = UCase(.ListItems(ItemSelect).ListSubItems(10).Text)
Sheets("Facture attente").Cells(Numlign, 12) = UCase(.ListItems(ItemSelect).ListSubItems(11).Text)
Sheets("Facture attente").Cells(Numlign, 13) = UCase(.ListItems(ItemSelect).ListSubItems(12).Text)
Sheets("Facture attente").Cells(Numlign, 14) = UCase(.ListItems(ItemSelect).ListSubItems(13).Text)
Sheets("Facture attente").Cells(Numlign, 15) = UCase(.ListItems(ItemSelect).ListSubItems(14).Text)
Sheets("Facture attente").Cells(Numlign, 16) = UCase(.ListItems(ItemSelect).ListSubItems(15).Text)
Sheets("Facture attente").Cells(Numlign, 17) = UCase(.ListItems(ItemSelect).ListSubItems(16).Text)
Sheets("Facture attente").Cells(Numlign, 18) = UCase(.ListItems(ItemSelect).ListSubItems(17).Text)
Sheets("Facture attente").Cells(Numlign, 19) = UCase(.ListItems(ItemSelect).ListSubItems(18).Text)
Sheets("Facture attente").Cells(Numlign, 20) = UCase(.ListItems(ItemSelect).ListSubItems(19).Text)
Sheets("Facture attente").Cells(Numlign, 21) = UCase(.ListItems(ItemSelect).ListSubItems(20).Text)
Sheets("Facture attente").Cells(Numlign, 22) = UCase(.ListItems(ItemSelect).ListSubItems(21).Text)
Sheets("Facture attente").Cells(Numlign, 23) = UCase(.ListItems(ItemSelect).ListSubItems(22).Text)
Sheets("Facture attente").Cells(Numlign, 24) = UCase(.ListItems(ItemSelect).ListSubItems(23).Text)
Sheets("Facture attente").Cells(Numlign, 25) = UCase(.ListItems(ItemSelect).ListSubItems(24).Text)
Sheets("Facture attente").Cells(Numlign, 26) = UCase(.ListItems(ItemSelect).ListSubItems(25).Text)
For k = 1 To 25
Sheets("Facture attente").Cells(Numlign, k + 1) = UCase(.ListItems(ItemSelect).ListSubItems(k).Text)
Next
MiseEnForme
.ListItems(ItemSelect).Selected = False
For X = 1 To 25
Controls("TextBox" & X) = ""
Next
'Alim_Combo
'Vide_Combo
Exit Sub
Else
.ListItems(ItemSelect).Selected = False
For X = 1 To 25
Controls("TextBox" & X) = ""
Next
Exit Sub
End If
End With
End Sub
Voici mon souci : j’ai des Combo qui recherchent une ligne de données qui s’inscrit dans la ListView. Je clique une fois dans la List, pour envoyer les données dans des Textbox où là je fais des changements si nécessaire. Mais quand je confirme avec le code ci-dessous, il m’envoie les données sur la première ligne de ma feuille (facture attente) et non à l’endroit où la Combo a choisi ! Et si je ne passe pas par les Combo, que je clique directement dans ma ListView, tout fonctionne correctement ! Pourquoi ?
Private Sub CommandButton23_Click() ' valider les changements
Dim ItemSelect As Long, X As Byte, Numlign As Long
Dim Derlign As Long, k As Byte, Col As Byte 'La première ligne de la macro du bouton concerne la déclaration des variables :
Derlign = Sheets("Facture attente").Range("A65536").End(xlUp).Row + 1 'détermines la 1ère ligne vide et tu affectes la valeur 1 (n° de la colonne a) à la variable "Col" comme ceci :
Col = 25
With ListView1
ItemSelect = .SelectedItem.Index 'N° de l'index sélectionné dans la lisview
Numlign = Right(.ListItems(.SelectedItem.Index).Key, Len(.ListItems(.SelectedItem.Index).Key) - 1) 'N° ligne de la feuille
If MsgBox("Confirmation de la modification.", vbYesNo, "Confirmation") = vbYes Then
'mise à jour des colonnes de la listview
.ListItems(ItemSelect).Text = UCase(TextBox1)
For k = 1 To 25
If k <> 3 Then .ListItems(ItemSelect).ListSubItems(k).Text = Controls("TextBox" & k + 1)
Next
'.ListItems(ItemSelect).ListSubItems(2).Text = CDate(TextBox3)
'mise à jour de la feuille
Sheets("Facture attente").Cells(Numlign, 1) = UCase(.ListItems(ItemSelect).Text)
Sheets("Facture attente").Cells(Numlign, 2) = UCase(.ListItems(ItemSelect).ListSubItems(1).Text)
Sheets("Facture attente").Cells(Numlign, 3) = UCase(.ListItems(ItemSelect).ListSubItems(2).Text)
Sheets("Facture attente").Cells(Numlign, 4) = UCase(.ListItems(ItemSelect).ListSubItems(3).Text)
Sheets("Facture attente").Cells(Numlign, 5) = UCase(.ListItems(ItemSelect).ListSubItems(4).Text)
Sheets("Facture attente").Cells(Numlign, 6) = UCase(.ListItems(ItemSelect).ListSubItems(5).Text)
Sheets("Facture attente").Cells(Numlign, 7) = UCase(.ListItems(ItemSelect).ListSubItems(6).Text)
Sheets("Facture attente").Cells(Numlign, 8) = UCase(.ListItems(ItemSelect).ListSubItems(7).Text)
Sheets("Facture attente").Cells(Numlign, 9) = UCase(.ListItems(ItemSelect).ListSubItems(8).Text)
Sheets("Facture attente").Cells(Numlign, 10) = UCase(.ListItems(ItemSelect).ListSubItems(9).Text)
Sheets("Facture attente").Cells(Numlign, 11) = UCase(.ListItems(ItemSelect).ListSubItems(10).Text)
Sheets("Facture attente").Cells(Numlign, 12) = UCase(.ListItems(ItemSelect).ListSubItems(11).Text)
Sheets("Facture attente").Cells(Numlign, 13) = UCase(.ListItems(ItemSelect).ListSubItems(12).Text)
Sheets("Facture attente").Cells(Numlign, 14) = UCase(.ListItems(ItemSelect).ListSubItems(13).Text)
Sheets("Facture attente").Cells(Numlign, 15) = UCase(.ListItems(ItemSelect).ListSubItems(14).Text)
Sheets("Facture attente").Cells(Numlign, 16) = UCase(.ListItems(ItemSelect).ListSubItems(15).Text)
Sheets("Facture attente").Cells(Numlign, 17) = UCase(.ListItems(ItemSelect).ListSubItems(16).Text)
Sheets("Facture attente").Cells(Numlign, 18) = UCase(.ListItems(ItemSelect).ListSubItems(17).Text)
Sheets("Facture attente").Cells(Numlign, 19) = UCase(.ListItems(ItemSelect).ListSubItems(18).Text)
Sheets("Facture attente").Cells(Numlign, 20) = UCase(.ListItems(ItemSelect).ListSubItems(19).Text)
Sheets("Facture attente").Cells(Numlign, 21) = UCase(.ListItems(ItemSelect).ListSubItems(20).Text)
Sheets("Facture attente").Cells(Numlign, 22) = UCase(.ListItems(ItemSelect).ListSubItems(21).Text)
Sheets("Facture attente").Cells(Numlign, 23) = UCase(.ListItems(ItemSelect).ListSubItems(22).Text)
Sheets("Facture attente").Cells(Numlign, 24) = UCase(.ListItems(ItemSelect).ListSubItems(23).Text)
Sheets("Facture attente").Cells(Numlign, 25) = UCase(.ListItems(ItemSelect).ListSubItems(24).Text)
Sheets("Facture attente").Cells(Numlign, 26) = UCase(.ListItems(ItemSelect).ListSubItems(25).Text)
For k = 1 To 25
Sheets("Facture attente").Cells(Numlign, k + 1) = UCase(.ListItems(ItemSelect).ListSubItems(k).Text)
Next
MiseEnForme
.ListItems(ItemSelect).Selected = False
For X = 1 To 25
Controls("TextBox" & X) = ""
Next
'Alim_Combo
'Vide_Combo
Exit Sub
Else
.ListItems(ItemSelect).Selected = False
For X = 1 To 25
Controls("TextBox" & X) = ""
Next
Exit Sub
End If
End With
End Sub