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

Macro Recherche avec listview

  • Initiateur de la discussion Initiateur de la discussion Emmanuel31100
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Emmanuel31100

Guest
Bonjour tout le monde,

Il y a quelques temps (la semaine dernière, comme quoi ça date lol) 😀 j'ai posté une discussion parce que j'avais du mal à créer une macro de recherche avec résultats dans un listbox.

Puis 'Habitude' m'avait conseillé d'abandonner l'idée du listbox mais plutôt de passer par un listview en utilisant les filtres excel. 😎

Aujourd'hui j'essaie tant bien que mal d'adapter le code créé avec une légère modification mais mes connaissances en VBA étant limitées je bloque un peu!🙁

Si j'ai pu adapter le code à mon ancien projet, dans le nouveau le problème est légèrement différent:

J'aimerais en effet que les résultats inscrits dans le listview soient les cellules des colonnes A, F, H, I et E de toutes les lignes où la cellule L serait vide

J'ai beau réfléchir et remanipuler le code, je n'ai aucune idée de comment y arriver!😡

Quelqu'un aurait-il une idée?😱

Ci-joint le fichier qu'Habitude avait créé.
 

Pièces jointes

Re : Macro Recherche avec listview

A F H I et E serait dans l'ordre 0, 5, 7, 8, 4
Et L = 11

Code:
If f.Name <> "Accueil" Then
        For i = 2 To f.Range("A65536").End(xlUp).Row
            
            nbV = nbV + 1
            v(nbV, 0) = Trim(f.Name)
            v(nbV, 1) = Trim(r.Offset(i - 1, 5)) ' 5 = colonne F
            v(nbV, 2) = Trim(r.Offset(i - 1, 0)) ' 0 = colonne A
            v(nbV, 3) = Trim(r.Offset(i - 1, 2)) ' 2= colonne C
            v(nbV, 4) = Trim(r.Offset(i - 1, 3)) ' 3= colonne D
            v(nbV, 5) = Trim(r.Offset(i - 1, 6)) ' 6= colonne G
            v(nbV, 6) = i
           
        Next i
    End If
Next

Donc..

Code:
If f.Name <> "Accueil" Then
        For i = 2 To f.Range("A65536").End(xlUp).Row
            If r.Offset(i - 1, 11) = "" Then ' 11 ici c'est la colonne L
            
            nbV = nbV + 1
            v(nbV, 0) = Trim(f.Name)
            v(nbV, 1) = Trim(r.Offset(i - 1, 0)) 
            v(nbV, 2) = Trim(r.Offset(i - 1, 5)) 
            v(nbV, 3) = Trim(r.Offset(i - 1, 7)) 
            v(nbV, 4) = Trim(r.Offset(i - 1, 8)) 
            v(nbV, 5) = Trim(r.Offset(i - 1, 4)) 
            v(nbV, 6) = i
            
            End If
        Next i
    End If
Next
 
Re : Macro Recherche avec listview

Bonsoir Emmanuel, Habitude, et à ceux qui passeront par ici,

Habitude a raison de te suggérer l'utilisation d'une ListView.
sauf que de mon coté; je n'utilise aucun filtres;
Je ne sais même pas ce que cela veut dire dans Excel

Le tri, si nécessaire, je le fais après avoir chargé la ListView.

Il serait bien que tu repartes à zéro, et que tu joignes ton projet.
(Au moins la partie concernée par ta question initiale avec rappel de celle-ci)

A quand tu le pourras et voudras.

Amicalement

Yann
 
Re : Macro Recherche avec listview

Bonjour Habitude, Yann, le forum

La solution apportée par 'Habitude' marche bien! J'ai téléchargé un tutorial que je lis en ce moment-même pour me familiariser avec l'utilisation des listview!

Un gros merci à 'Habitude' pour sa réponse et m'avoir répondu aussi rapidement!
Merci à Yann aussi de s'être penché sur le problème (si d'ailleurs tu en as besoin ou la curiosité je peux t'envoyer la macro complète?)

Emmanuel
 
Re : Macro Recherche avec listview

Merci Emmanuel

Je me doutais un peu de ce lien 🙂.

Bonjour à MichelXLD également, un maître en Excel (c'est sincère) qui est apparu en coup de vent il y a peu 😉.
 
Re : Macro Recherche avec listview

Bonjour Emmanuel, Habitude, MJ13, et à ceux qui passeront par ici,

Merci Emmanuel pour ce lien très utile.

Habitude et MJ13; vos interventions ont porté leurs fruits. Bravo.

Amicalement

Yann

Cf Signature
 
Re : Macro Recherche avec listview


Oui c'est effectivement ca que je fais.
Je charge toute dans la listView au départ.
Mais aussi dans le vecteur.
Sinon je devais récupérer les données après chaque demande.

Un tri pour moi est d'afficher Toute les données dans un ordre quelconque.
Alors qu'un filtre consite à afficher seulement les données désirées.
 
Re : Macro Recherche avec listview

Bonjour habitude et à ceux qui passeront par ici,

Il est vrai qu'il m'arrive aussi de faire un choix sélectif de colonnes à
charger ou non dans mes ListView.

Dans cet exemple ci-dessous, je ne le fais pas:

Code:
For i = 2 To ActiveSheet.UsedRange.Rows.Count
.ListItems.Add , , ActiveSheet.Cells(i, 1).Value
    For j = 2 To ActiveSheet.UsedRange.Columns.Count
    .ListItems(.ListItems.Count).ListSubItems.Add , , ActiveSheet.Cells(i, j).Value
     Next j
Next i

C'est juste pour montrer que les "Offset" ne sont pas de mes copains.

Cependant; dans la boucle "j" il est possible d'ajouter un "Select Case j"
qui va choisir ces colonnes.

Je pense que cette méthode pourrait être un peu plus légère...

A voir!

Amicalement

Yann
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

R
Réponses
20
Affichages
4 K
RaVenSs
R
A
Réponses
11
Affichages
1 K
A
M
Réponses
3
Affichages
1 K
MarieChérie
M
G
  • Question Question
Réponses
2
Affichages
689
J
Réponses
3
Affichages
1 K
jps89
J
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…