Autres Exporter listview après un filtrage? bugge (2007)

geraldvc

XLDnaute Junior
Bonjour à tout le monde!
Voici un code que j'ai déjà utilisé par le passé mais dans ce cas, il ne fonctionne pas. Il bugge à la dernière ligne!
Je n'ai qu'une ligne de ma listview qui va sur ma feuille!
A votre avis que se passe t'il?
Pour mieux comprendre je joints le fichier.
Si je fais un filtre sur Numéro du devis, ça fonctionne! et quant je veux réimprimer un devis bugge?????(CommandButton5)


Dim Ligne As Integer, i As Integer, C As Integer
With Sheets("listedevis2")
Ligne = Sheets("listedevis2").Range("a65536").End(xlUp).Row
With ListView1
For i = 1 To .ListItems.Count
Sheets("listedevis2").Cells(Ligne + i, 1) = (.ListItems(i).Text)
For C = 1 To .ColumnHeaders.Count - 1
Sheets("listedevis2").Cells(Ligne + i, C + 1) = (.ListItems(i).ListSubItems(C).Text)

Next C
Next i
End With
End With


Merci,Merci,Merci,Merci,
 

Pièces jointes

  • prog devis.xls
    530.5 KB · Affichages: 11

ChTi160

XLDnaute Barbatruc
Bonsoir
Bonsoir JM
ton problème vient de ta boucle sur les Colonnes
j'ai mis ColumnHeaders.Count - 2 et ça semble fonctionner
VB:
For C = 1 To .ColumnHeaders.Count - 2 'Ici
 Sheets("listedevis2").Cells(Ligne + i, C + 1) = (.ListItems(i).ListSubItems(C).Text) ' le 1 envois au nombre de colonne dans la feuille
Next C
Y'a beaucoup de choses qui pourraient être modifiées !
Bonne fin de Soirée
Jean marie
 

geraldvc

XLDnaute Junior
Bonsoir
Bonsoir JM
ton problème vient de ta boucle sur les Colonnes
j'ai mis ColumnHeaders.Count - 2 et ça semble fonctionner
VB:
For C = 1 To .ColumnHeaders.Count - 2 'Ici
 Sheets("listedevis2").Cells(Ligne + i, C + 1) = (.ListItems(i).ListSubItems(C).Text) ' le 1 envois au nombre de colonne dans la feuille
Next C
Y'a beaucoup de choses qui pourraient être modifiées !
Bonne fin de Soirée
Jean marie
Un tout grand merci, je ne sais comment vous remercier. Génial
 

ChTi160

XLDnaute Barbatruc
Bonjour Gerald
N'hésite pas si besoin
y'a beaucoup de Chose à Changer ,à simplifier etc etc
exemple dans la Procédure Initialize du Userform
VB:
For i = 2 To Sheets("Devis2").Range("B65536").End(xlUp).Row
          Set LstVI = .ListItems.Add(, "K" & i, Sheets("Devis2").Cells(i, 1))  '1ère Colonne
           With LstVI
                  .ForeColor = IIf(.Text = "P", &HFF0000, &H80000008)
              For Col = 2 To 19
                   Set LstVSi = .ListSubItems.Add(, , Sheets("Devis2").Cells(i, Col)) ' 2ème Colonne
                LstVSi.ForeColor = IIf(LstVI.Text = "P", &HFF0000, &H80000008)
              Next Col
                  .ListSubItems.Add , , i 'On récupére la Ligne source
            End With
Avec en déclaration
Dim LstVi As ListItem
Dim LstVSi As ListSubitem
ce qui pourrait encore être simplifié , si l'on passait par un Tableau (structuré ou pas ) Lol
Bonne journée
Jean marie
 
Dernière édition:

geraldvc

XLDnaute Junior
Bonjour Gerald
N'hésite pas si besoin
y'a beaucoup de Chose à Changer ,à simplifier etc etc
exemple dans la Procédure Initialize du Userform
VB:
For i = 2 To Sheets("Devis2").Range("B65536").End(xlUp).Row
          Set LstVI = .ListItems.Add(, "K" & i, Sheets("Devis2").Cells(i, 1))  '1ère Colonne
           With LstVI
                  .ForeColor = IIf(.Text = "P", &HFF0000, &H80000008)
              For Col = 2 To 19
                   Set LstVSi = .ListSubItems.Add(, , Sheets("Devis2").Cells(i, Col)) ' 2ème Colonne
                LstVSi.ForeColor = IIf(LstVI.Text = "P", &HFF0000, &H80000008)
              Next Col
                  .ListSubItems.Add , , i 'On récupére la Ligne source
            End With
Avec en déclaration
Dim LstVi As ListItem
Dim LstVSi As ListSubitem
ce qui pourrait encore être simplifié , si l'on passait par un Tableau (structuré ou pas ) Lol
Bonne journée
Jean marie
merci beaucoup ,cela fonctionne bien maintenant. la simplification des code ,,,je suis pas encore au point merci merci merci
 

Discussions similaires

Statistiques des forums

Discussions
315 134
Messages
2 116 616
Membres
112 814
dernier inscrit
Pierre43