Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

remplissage listbox via plage selon critères

BENAM69

XLDnaute Occasionnel
Bonsoir à vous le forum,

J'essaye de remplir 2 listbox en fonction de certains critères et je me saigne depuis ce matin, et je cherche donc du soutien ici en espérant qu'un internaute puis réaliser ce que je cherche à faire.

Dans mon fichier (Feuil1), j'ai un base de données. Avec cette base de données, j'aimerai intégrer des informations sur mes 2 listbox (Listbox1 et Listbox2).

Voila, sur ma Listbox1, j'aimerai intégrer toutes les données de mon tableau (Type, poste, sous poste, action, zone, date, délai, statut et remarques) mais seulement pour certaines lignes répondant à des critères. Si dans la colonne 2, il identifie "Sécurité", si la date en colonne F est égale à la date d'aujourd'hui - 1 jour, et si dans la colonne H c'est vide.
Puis une fois que c'est sur la liste, les lignes ayant en colonne A, le "R" n’apparaîtront plus si la date en colonne F est égale à Aujourdhui - 3 jours.

Dans listbox2, il intègre les mêmes critères que ceux pour la listbox1 sauf au niveau des dates de la colonne F, si la date à la colonne F est égale à au moins Aujourdhui - 2 jours et plus, il intègre dans la listbox2. Et sur cette même listbox2, si la date de la colonne G est inférieure à aujourdhui - 1 jour (S'il y a existence d'une date) alors la ligne est surlignée en rouge. et idem pour les lignes ayant un "R", si la date en colonne F est égale à Aujourdhui - 3 jours alors elles n'apparaitront plus sur la listbox2.

Et le combobox1 ne sert qu'à trier les sous poste, c'est à dire si dans le combobox1, je choisis le sous poste Voiture, alors je ne verrai que les données Listbox1 et Listbox2 avec le critère Voiture.

J'espère que mes explications ont été claire et que je me suis exprimé de la meilleure façon pour que vous puissiez comprendre mon problème.

J'espère ne pas trop ennuyer les personnes qui voudront bien m'aider.

Je vous ai mis en PJ mon fichier afin que vous puissiez voir à quoi correspond visuel mon besoin.

Merci par avance à vous

Benam
 

Pièces jointes

  • Ajout information listbox.xlsm
    17.9 KB · Affichages: 12

BENAM69

XLDnaute Occasionnel
Bonsoir,

J'ai réussi à intégrer les données dans les Listbox mais je n'arrive pas à faire les conditions hélas.

Je peux vous mettre le fichier avec un peu de complètement.

Merci à vous pour votre aide en avance,

Benam
 

Pièces jointes

  • Ajout information listbox.xlsm
    24 KB · Affichages: 7

fanfan38

XLDnaute Barbatruc
Bonjour
Je ne comprends pas pourquoi tu utilises un userform pour faire ce que tu souhaites
On ne peux masquer une ligne dans un listbox ni le surligner (ou je ne sais pas faire)
Au vu de tes souhaits il faudrait mettre sur une autre feuille les données correspondant à tes critères...
Ci joint fichier avec toutes les conditions pour la listbox1...
A+ François
 

Pièces jointes

  • Ajout information listbox.xlsm
    25.6 KB · Affichages: 29

BENAM69

XLDnaute Occasionnel
Bonjour Fanfan,

Je vois, il n'est pas possible alors. Dans ce cas, je vais essayer de chercher un autre moyen. Je vais tenter ta logique avec une autre feuille de données.

J'utilise un Userform parce que cela est le seul moyen que j'ai trouvé pour faire apparaître en direct les données en direct, sans passer d'un onglet à un autre, de cette façon, j'ai tout sur un onglet. Je ferai apparaitre l'onglet via un clique sur tel ou tel cellule.

En tout cas, je te remercie pour le temps que tu as consacré pour me faire avancer sur le sujet.
Il me restera aussi à chercher comment faire avec le combobox1 pour voir que les données choisies sur les listbox1 et listbox2 selon le choix de la combobox1.

Merci encore ^^ Fanfan

A+

Benam
 

BENAM69

XLDnaute Occasionnel
Salut Fanfan,

C'est bizarre, sur le fichier avec les données factices cela fonctionne mais quand je colle ton code dans le fichier en question, cela ne fonctionne plus.

Aucune donnée apparaît sur la listbox1.

Pourtant j'ai juste adapté quelques lignes sans avoir faire de changement significatif.


Code:
Private Sub UserForm_Initialize()
  Dim i As Long
  With Sheets("Suivi des Actions")
  For i = 2 To .Range("b" & Rows.Count).End(xlUp).Row
  'si la date en colonne F est égale à la date d'aujourd'hui - 1 jour,
  'et si dans la colonne H c'est vide.
   If _
    .Range("B" & i).Value = "Sécurité" _
    And .Range("G" & i).Value = Date - 1 _
    And Len(.Range("I" & i).Value) = 0 _
    Then
     Me.ListBox1.AddItem
     Me.ListBox1.Column(0, Me.ListBox1.ListCount - 1) = .Range("A" & i).Value
     Me.ListBox1.Column(1, Me.ListBox1.ListCount - 1) = .Range("B" & i).Value
     Me.ListBox1.Column(2, Me.ListBox1.ListCount - 1) = .Range("C" & i).Value
     Me.ListBox1.Column(3, Me.ListBox1.ListCount - 1) = .Range("D" & i).Value
     Me.ListBox1.Column(4, Me.ListBox1.ListCount - 1) = .Range("E" & i).Value
     Me.ListBox1.Column(5, Me.ListBox1.ListCount - 1) = .Range("F" & i).Value
     Me.ListBox1.Column(6, Me.ListBox1.ListCount - 1) = .Range("G" & i).Value
     Me.ListBox1.Column(7, Me.ListBox1.ListCount - 1) = .Range("H" & i).Value
     Me.ListBox1.Column(8, Me.ListBox1.ListCount - 1) = .Range("I" & i).Value
     Me.ListBox1.Column(9, Me.ListBox1.ListCount - 1) = .Range("J" & i).Value
   End If
  Next
   End With
'Puis une fois que c'est sur la liste,
'les lignes ayant en colonne A, le "R" n’apparaîtront plus si la date en colonne F est égale à Aujourdhui - 3 jours.
  For i = 0 To Me.ListBox1.ListCount - 1
    If Me.ListBox1.Column(0, i) = "R" And Me.ListBox1.Column(6, i) = Date - 3 Then
      Me.ListBox1.List(i).Delete
    End If
  Next

End Su

J'ai juste ajouté With sheets("Suivi des Actions") avec End with

j'ai décalé la cellule F en G pour
Code:
 And .Range("G" & i).Value = Date - 1 _
car sur mon fichier c'est cette colonne et H en I
Code:
 And Len(.Range("I" & i).Value) = 0 _
idem.

Et ajouté la ligne
Code:
   Me.ListBox1.Column(9, Me.ListBox1.ListCount - 1) = .Range("J" & i).Value

Puis pour finir décalé la cellule 6 à la place de 5.
Code:
If Me.ListBox1.Column(0, i) = "R" And Me.ListBox1.Column(6, i) = Date - 3 Then

Est-ce un problème de propriété ?

Merci par avance

Benam
 

BENAM69

XLDnaute Occasionnel
Bonjour Fanfan,

J'ai trouvé le problème, c'est juste que les dates de copié collé via ma macro ne sont pas identifiés, il fallait cliquer sur la cellule en question pour que cela apparaît sur la listbox2.

donc je suis sur un autre problème.

Merci encore Fanfan

Benam
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…