Listbox conditonnelle

julien34

XLDnaute Occasionnel
Bonjour,

Je m'adresse à vous ce jour car confronté à un problème.

Je m'explique....

J'ai un formulaire en feuil 1 dont les infos sont renvoyées en feuil2 (base).
Pour chaque client, il est stipulé s'il faut effectuer une relance et a quelle date. Seulement certains clients n'ont pas besoin de relance, ils sont à jour.

Ma question est la suivante:
Est ce possible d'afficher une listbox (via bouton), me permettant de montrer uniquement les clients qui ont besoin d’être relancés (histoire d'avoir un bouton "consulter la liste des taches")

J’espère avoir été clair. Pas facile à expliquer.
D'avance merci
Julien
 

julien34

XLDnaute Occasionnel
Re : Listbox conditonnelle

Re,

Je joins ici un fichier ultra simplifié où tout n'est pas fonctionnel d'ailleurs mais peu importe. C'est plus facile à s'y retrouver.

Voilà l'objectif
Il y a 2 entrées dans la base (la 1ere "OCC101" et la 2ème "OCC102")
OCC102 uniquement contient des "taches" (Voir colonne AA ET AB dans la base)

Je souhaite avoir une macro qui n'afficherait que les lignes de la base où il y a des taches( cad quand AA ET AB sont non vides)
Cette macro ouvrirait une listbox (N° dossier, nom, prénom, relance, relancer le ...)

Espérant que ce fichier parlera mieux que moi .....
D'avance merci
Julien
 

Fichiers joints

klin89

XLDnaute Impliqué

julien34

XLDnaute Occasionnel
Re : Listbox conditonnelle

Re Klin, le forum

Je suis débutant donc j'ai du mal à adapter ce code. Pourrais tu m'aiguiller ?
Voilà mon code de base sans conditions

Private Sub UserForm_Initialize()
Dim Plage As Range 'Définition de Plage
i = Feuil2.Range("A65536").End(xlUp).Row
Set Plage = Feuil2.Range("A1: DB" & i) 'Définition de la plage de A à la colonne DB et dernière cellule de la colonne DB
ListBox1.List = Plage.Value 'Remplit la listbox avec la plage de cellule définit ci-dessus
End Sub

Merci ;)
 

julien34

XLDnaute Occasionnel
Re : Listbox conditonnelle

Bonjour Yaloo et merci ........encore!

Écoute je n'arrive pas à l'intégrer à mon fichier final. Je ne comprends pas pourquoi! Vois tu un pb ds ce code?
Je te mets en pièce jointe ce que j'obtiens.

Mon code est
Private Sub UserForm_Initialize()
k = 0
With Sheets("Base")
For i = 2 To .[A65000].End(xlUp).Row
If .Cells(i, 106) > 0 Then
Me.ListBox1.AddItem
Me.ListBox1.List(k, 0) = .Cells(i, 1) 'colonne num dossier'
Me.ListBox1.List(k, 1) = .Cells(i, 3) 'colonne nom'
Me.ListBox1.List(k, 2) = .Cells(i, 4) 'colonne prénom'
Me.ListBox1.List(k, 3) = .Cells(i, 10) 'colonne marque
Me.ListBox1.List(k, 4) = .Cells(i, 11) 'colonne modèle
Me.ListBox1.List(k, 5) = .Cells(i, 105) 'colonne actions
Me.ListBox1.List(k, 6) = .Cells(i, 106) 'colonne relance le
k = k + 1
End If
Next i
End With
End Sub
 

Fichiers joints

Yaloo

XLDnaute Barbatruc
Re : Listbox conditonnelle

Re

Regardes dans les propriétés de la listbox à la ligne ColumnCount et ColumnWidths

A+
 

julien34

XLDnaute Occasionnel
Re : Listbox conditonnelle

Re Yaloo,

Oui justement je pense que tu as localisé le pb !
Mais pourquoi dans ton exemple tu as ColumnCount 7 ??????

Alors que les 2 infos qui nous intéressent sont respectivement à la colonne 27 et 28 ???

Peux tu m'éclairer?
 

klin89

XLDnaute Impliqué
Re : Listbox conditonnelle

Re à tous,

Une Listbox est limitée à 10 colonnes.

Sinon remplaces ceci :
Code:
If .Cells(i, 106) > 0 Then
Par :
Code:
If Not IsEmpty(.Cells(i, 27)) And Not IsEmpty(.Cells(i, 28)) Then
Qui correspond aux cellules des colonnes AA et AB

Klin89
 

julien34

XLDnaute Occasionnel
Re : Listbox conditonnelle

Re,

J'ai peut être parler trop vite.....
Voilà mon code qui ne fonctionne pas ! Y voyez vous un pb
Il m'affiche l'entrée 1,2 et 4 de la base. Alors que l'entrée 1 uniquement devrait s'afficher (voir photo en PJ)

PS: J'ai essayé d'intégrer le code dans mon fichier final (les colonnes 27 et 28 de laa base sont passées en 105 et 106 mais ça ne change rien à priori)

Private Sub UserForm_Initialize()
k = 0
With Sheets("Base")
For i = 2 To .[A65000].End(xlUp).Row
If Not IsEmpty(.Cells(i, 105)) And Not IsEmpty(.Cells(i, 106)) Then
Me.ListBox1.AddItem
Me.ListBox1.List(k, 0) = .Cells(i, 1)
Me.ListBox1.List(k, 1) = .Cells(i, 3)
Me.ListBox1.List(k, 2) = .Cells(i, 4)
Me.ListBox1.List(k, 3) = .Cells(i, 10)
Me.ListBox1.List(k, 4) = .Cells(i, 11)
Me.ListBox1.List(k, 5) = .Cells(i, 105)
Me.ListBox1.List(k, 6) = .Cells(i, 106)
k = k + 1
End If
Next i
End With
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub

Dans l'attente de vos réactions, merci
Julien
 

Fichiers joints

julien34

XLDnaute Occasionnel
Re : Listbox conditonnelle

Re,
Comment peut on expliquer qu'il m'affiche l'entrée 1,2 et 4?
Alors que l'entrée 1 uniquement contient des cellules non vides en 105 et 106 !

Là il y a quelque chose je ne comprends pas !!

Julien
 

julien34

XLDnaute Occasionnel
Re : Listbox conditonnelle

Les numéros de colonnes sont OK puisque la listbox les affiche
C'est plutot la condition qui ne fonctionne pas!

Les cellules 105 et 106 sont renseignées uniquement en 1ère entrée dans la base

Pourtant la listbox affiche l'entrée 1,2 et 4...Je ne comprends vraiment pas pourquoi !

C'est exactement le même code que toi en changeant les num de colonnes !
 

Yaloo

XLDnaute Barbatruc
Re : Listbox conditonnelle

Chez moi, ça fonctionne.
J'ai essayé avec
Code:
If Not IsEmpty(.Cells(i, 105)) And Not IsEmpty(.Cells(i, 106)) Then
ou
Code:
If .Cells(i, 105) > 0 Then
A+
 

Discussions similaires


Haut Bas