Difficulté dans un code VBA (ListView, Comb, Textbox)

geraldvc

XLDnaute Junior
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
 

Paritec

XLDnaute Barbatruc
Re : Difficulté dans un code VBA (ListView, Comb, Textbox)

bonjour Geraldvc le forum
sans fichier ??? Bref une certitude tu as dans ta macro plusieurs répétition qui font rigoureusement la même chose !!!
de plus il faudrait apprendre à te servir des balises de codes, tu sélectionnes ton code et dans la barre d'outils tu cliques sur #
a+
Papou:)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16