ListView otez ligne vide format date

Dennnisss

XLDnaute Occasionnel
Bonsoir a tous

Ce matin j'ai fait de la recherche sur le forum sur les listview , j'ai eu beaucoup d'exemple mais je n'ai pas trouver l'exemple d'une list view qui illimine une ligne qui n'a pas de donnees , ou j'ai trouver des reponses qui le faisait tres bien lorsque les donnees sont en format texte ou ca se corse lorsque la donnees est en format de date , la je ne parvient pas a faire disparaitre les lignes vides

dans le test que je vous ai envoyer il a trois feuilles calcul donc une qui s'appelle Atteinte dans cette feuille de calcul il a donc une formule qui affiche la date selon l'annee voici cette formule
=SOMMEPROD((ANNEE(Entree!X$2:X$5000)=$A5)*Entree!X$2:X$5000) ,donc cette formule semble mettre une valeur de zero par defaut alors la listview prend par defaut la valeur 0 qui egale l'annee 30 dec 1889

j'ai tenter de formule un test de if sur ces cellules dans la feuilles Atteinte mais en vain

lorsque vous allez cliquer sur icone listview vous remarquerez que dans l'annee 1997,1998,2004,2009 il devrait rien inscrire mais il ecrit par defaut le 30 dec 1889
je cherche dons a faire disparaitre le lignes qui on rien d'inscrit dans la feuille Atteinte

je me refere a vous pour m'aider sur ce dilem
alors merci a vous et attend avec beaucoup de patience des suggestion

dennnisss:confused::confused:
 

Pièces jointes

  • Listviewtest.zip
    14.7 KB · Affichages: 29

YANN-56

XLDnaute Barbatruc
Re : ListView otez ligne vide format date

Bonjour dennnisss, ou Bonsoir suivant l'heure locale, et à ceux qui passeront par ici,

Pour moi, il est 0h45, et l'heure de faire dormir l'ancien!

Promis; j'y reviens demain et regarde de près pour tenter de t'apporter une solution.

Tu pourras entre temps fouiller dans mes Posts relatifs aux ListView.

Amicalement, et à plus tard,

Yann
 

Staple1600

XLDnaute Barbatruc
Re : ListView otez ligne vide format date

Bonsoir Dennis, Re Yann-56, le fil, le forum


Essaies cette modif pour cette ligne
Code:
.ListItems(.ListItems.Count).ListSubItems.Add , , Format(Sheets("Atteinte").Cells(i, 2), IIf(Sheets("Atteinte").Cells(i, 2) > 0, "dd mmm yyyy", "0"))


Cela t'affichera 0 à la place de 30 dec 1889
 

Staple1600

XLDnaute Barbatruc
Re : ListView otez ligne vide format date

Re

Je me suis permis d'alléger un peu ton code et ici au lieu d'afficher un 0, cela n'affiche rien.
VB:
Private Sub UserForm_Initialize()
Dim DerLgn&, L%, X% 'sauf erreur tu n'utilises pas ces variables dans cette procédure
Dim a As Worksheet, y&
Set a = Sheets("Atteinte")
With Me.ListView1
 .ListItems.Clear
    With .ColumnHeaders
       .Clear
       .Add , , "1000", 100, 0
       .Add , , "2000", 100, 0
       .Add , , "3000", 100, 0
       .Add , , "4000", 100, 0
       .Add , , "5000", 100, 0
       .Add , , "6000", 100, 0
       .Add , , "7000", 100, 0
    End With
 .View = 3
 .FullRowSelect = True
 .Gridlines = True
        For i = 3 To a.Range("A65536").End(xlUp).Row
           .ListItems.Add , , Format(CDec(a.Cells(i, 1)), "0000")
           y = .ListItems.Count
           .ListItems(y).ListSubItems.Add , , Format(a.Cells(i, 2), IIf(a.Cells(i, 2) > 0, "dd mmm yyyy", ";;;"))
           .ListItems(y).ListSubItems.Add , , Format(a.Cells(i, 4), "dd mmm yyyy")
           .ListItems(y).ListSubItems.Add , , Format(a.Cells(i, 6), "dd mmm yyyy")
           .ListItems(y).ListSubItems.Add , , Format(a.Cells(i, 8), "dd mmm yyyy")
           .ListItems(y).ListSubItems.Add , , Format(a.Cells(i, 10), "dd mmm yyyy")
           .ListItems(y).ListSubItems.Add , , Format(a.Cells(i, 12), "dd mmm yyyy")
           .ListItems(y).ListSubItems.Add , , Format(a.Cells(i, 14), "dd mmm yyyy")
         Next
End With
End Sub
 

Dennnisss

XLDnaute Occasionnel
Re : ListView otez ligne vide format date

Bonjour staple1600

bien recu ton message et j'ai essayer tes deux codes il fonctionne tres bien et j'ai choisi celui qui enleve les zero a l'ouverture du listview
Wow c'est extra je te remercie beaucoup pour ton aide et aussi yann et les autres intervenants de ce site , quel beau site

merci a toi encore et passe une belle journee
dennnisss
 

YANN-56

XLDnaute Barbatruc
Re : ListView otez ligne vide format date

Bonjour dennnisss, Bonsoir ou de même à ceux qui passeront par là,

J'avais pensé simplifier le code en écrivant ceci:

Code:
Private Sub UserForm_Initialize()
Worksheets("Atteinte").Activate

With Me.ListView1: .View = 3: .Gridlines = True: .FullRowSelect = True

   For i = 1 To ActiveSheet.UsedRange.Columns.Count
           If ActiveSheet.Cells(1, i).Value <> "" Then
             .ColumnHeaders.Add , , ActiveSheet.Cells(1, i).Value, 100, lvwColumnLeft
             .ColumnHeaders(.ColumnHeaders.Count).Tag = i 'Le "i" enregistre le N° de la Colonne prise en compte.
           End If
    Next i
    
   For i = 3 To ActiveSheet.Cells(65536, 1).End(xlUp).Row
     .ListItems.Add , , ActiveSheet.Cells(i, 1).Value

         For j = 2 To .ColumnHeaders.Count
         If ActiveSheet.Cells(i, .ColumnHeaders(j).Tag).Value <> "0" Then
          ' If IsDate(ActiveSheet.Cells(i, .ColumnHeaders(j).Tag).Value) Then  ' Problème!!!!
              .ListItems(.ListItems.Count).ListSubItems.Add , , Format(ActiveSheet.Cells(i, .ColumnHeaders(j).Tag).Value, "DDDD DD MMMM YYYY")
          ' End If
                    Else
           .ListItems(.ListItems.Count).ListSubItems.Add , , "?"

          End If
          
         Next j
   Next i
   
End With

Mais je me suis heurté au format "Date" valide des cellules.
Mon truc prend en charge même les Textes!!!...... Beurk!
Et n'a rien à fiche de mes "?"...... J'ai abandonné...

Qu'importe, le but de dennnisss est atteint, comme la tarte de la même phonétique,
avec la belle aide de Staple :):):) .... Il n'y a d'ailleurs jamais, avec les siennes, à en ajouter.

Qu'elle vous accompagne dans les agapes du réveillon,
comme mes souhaits d'une belle et heureuse nouvelle année.

Amicalement,

Yann
 

Pièces jointes

  • FORM_ITEMS.xls
    60 KB · Affichages: 55

Discussions similaires