XL 2010 Recherche de donnée, qui récupère toutes des lignes concernées

jeanmi

XLDnaute Occasionnel
Bonjour à tous,

1-j’ai un fichier avec plusieurs onglets

2- je m’intéresse uniquement à l’onglet gestion des données

3-je souhaiterai pouvoir faire une recherche sur une donnée de n’importe quelle cellule et obtenir tous les résultats liés à cette donnée.

Par exemple, je recherche toutes les infos sur la donnée TOTO, ou VERONIQUE ou LE FRANCOIS etc. , donc obtenir la liste de toutes les lignes qui contiennent cette donnée.
Une seule donnée de recherche pour simplifier.

Pouvez-vous m'orienter vers la solution la plus simple à mettre en place ?

J’ai 20 colonnes et actuellement 2000 lignes, pour info. si besoin je pourrais poster un fichier sans les données perso.

Merci d’avance de l’aide cordialement
 
Solution
Bonsoir,
actuellement je ne spécifie pas les critères de recherche, c'est ça que je cherche à faire.
😂 C'est ça que je n'avais pas compris.
Une idée parmi d'autre en PJ.
On a une feuille "Recherche" qui a le même format que la feuille "Gestion des données"
En haut il y a un tableau qui permet de mettre jusqu'à 10 critères de tri. Chaque critère peut être Nom, Prénom, Adresse ou Commune.
On appuie sur Rechercher et on affiche toutes les lignes trouvées, de la colonne A à la colonne V.
A discuter, peaufiner, améliorer ou détruire .... ;)

[Edit] Un petit bug, on pouvait dupliquer plusieurs fois la même ligne. Corrigé en PJ.
J'en ai profité pour ajouter des listes déroulantes dans les choix, c'est plus simple pour faire les filtres...

Softmama

XLDnaute Accro
Bonjour jeanmi, sylvanu

en VBA, rien de bien compliqué
En faisant une recherche sur la feuille et en arrêtant quand il retombe sur l'adresse de départ :
VB:
Sub Exemple()
Dim c As Range
Dim Résultat$
With Feuil1 ' Adapter avec par exemple : Sheets("Gestion de données")
  Set c = .Cells.Find(what:="toto", LookIn:=xlFormulas, lookat:=xlPart)  ' Recherche du mot toto
  If Not c Is Nothing Then  'S'il trouve
    Résultat = c.Address & ";"  'On stocke l'adresse dans la variable Résultat
    Do
      Set c = .Cells.FindNext(c)  ' on cherche la cellule suivante
      If InStr(Résultat, c.Address & ";") > 0 Then Exit Do  'Si l'adresse est déjà stockée dans Résultat, on quitte la boucle
      Résultat = Résultat & c.Address & ";" ' Sinon on l'ajoute à Résultat
    Loop
    Résultat = Mid(Résultat, 1, Len(Résultat) - 1)  ' On enlève le dernier ;
    MsgBox Résultat  'Affichage de l'ensemble des cellules qui contiennent toto
  End If
End With
End Sub

A adapter selon les besoins, notamment toto qui peut être passé en variable...
 

jeanmi

XLDnaute Occasionnel
Bonjour jeanmi, sylvanu

en VBA, rien de bien compliqué
En faisant une recherche sur la feuille et en arrêtant quand il retombe sur l'adresse de départ :
VB:
Sub Exemple()
Dim c As Range
Dim Résultat$
With Feuil1 ' Adapter avec par exemple : Sheets("Gestion de données")
  Set c = .Cells.Find(what:="toto", LookIn:=xlFormulas, lookat:=xlPart)  ' Recherche du mot toto
  If Not c Is Nothing Then  'S'il trouve
    Résultat = c.Address & ";"  'On stocke l'adresse dans la variable Résultat
    Do
      Set c = .Cells.FindNext(c)  ' on cherche la cellule suivante
      If InStr(Résultat, c.Address & ";") > 0 Then Exit Do  'Si l'adresse est déjà stockée dans Résultat, on quitte la boucle
      Résultat = Résultat & c.Address & ";" ' Sinon on l'ajoute à Résultat
    Loop
    Résultat = Mid(Résultat, 1, Len(Résultat) - 1)  ' On enlève le dernier ;
    MsgBox Résultat  'Affichage de l'ensemble des cellules qui contiennent toto
  End If
End With
End Sub

A adapter selon les besoins, notamment toto qui peut être passé en variable...
merci pour cette réponse, mais là cela n'affiche que l'adresse de la cellule qui contient l'info demandée, pas toute les lignes qui contiennent l'info. ce que je voix en essayant.
cordialement
 

Softmama

XLDnaute Accro
Je ne comprends pas ce qui vous bloque, j'ai copié le code fourni tel quel sur votre fichier et voici le résultat obtenu :
Capture.jpg

Cela me paraît bon.
Votre fichier en PJ, avec le bout de code dans le module 1...
 

Pièces jointes

  • 2022-gestion de toute les poses.xlsm
    378.6 KB · Affichages: 3

jeanmi

XLDnaute Occasionnel
Je ne comprends pas ce qui vous bloque, j'ai copié le code fourni tel quel sur votre fichier et voici le résultat obtenu :
Regarde la pièce jointe 1161110
Cela me paraît bon.
Votre fichier en PJ, avec le bout de code dans le module 1...
bonjour et merci d'avoir consacré du temps à ma demande?
j'ai testai, lorsque je tape 1, j'ai le message "l'indice n'appartient pas à la sélection"
merci pour l'aide.
cordialement

je viens de comprendre "le nom de la feuille n'était pas la bon dan la macro" le résultat de la macro fonctionne bien, mais ce n'est pas cela que je voulais faire, le tri fonctionne bien ave mes macros.

je souhaite faire une recherche comme je tente de l'expliquer en #1, mais peut-être que ce n'est pas claire.

Merci de l'aide.

Cordialement
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
actuellement je ne spécifie pas les critères de recherche, c'est ça que je cherche à faire.
😂 C'est ça que je n'avais pas compris.
Une idée parmi d'autre en PJ.
On a une feuille "Recherche" qui a le même format que la feuille "Gestion des données"
En haut il y a un tableau qui permet de mettre jusqu'à 10 critères de tri. Chaque critère peut être Nom, Prénom, Adresse ou Commune.
On appuie sur Rechercher et on affiche toutes les lignes trouvées, de la colonne A à la colonne V.
A discuter, peaufiner, améliorer ou détruire .... ;)

[Edit] Un petit bug, on pouvait dupliquer plusieurs fois la même ligne. Corrigé en PJ.
J'en ai profité pour ajouter des listes déroulantes dans les choix, c'est plus simple pour faire les filtres. Ces listes sont reconstruites à chaque fois qu'on sélectionne la feuille Recherche.
J'ai aussi rajouté la recherche sur plusieurs paramètres simultanés.
 

Pièces jointes

  • 2022-gestion de toute les poses (4).xlsm
    662.3 KB · Affichages: 9
Dernière édition:

jeanmi

XLDnaute Occasionnel
Bonsoir,

😂 C'est ça que je n'avais pas compris.
Une idée parmi d'autre en PJ.
On a une feuille "Recherche" qui a le même format que la feuille "Gestion des données"
En haut il y a un tableau qui permet de mettre jusqu'à 10 critères de tri. Chaque critère peut être Nom, Prénom, Adresse ou Commune.
On appuie sur Rechercher et on affiche toutes les lignes trouvées, de la colonne A à la colonne V.
A discuter, peaufiner, améliorer ou détruire .... ;)

[Edit] Un petit bug, on pouvait dupliquer plusieurs fois la même ligne. Corrigé en PJ.
J'en ai profité pour ajouter des listes déroulantes dans les choix, c'est plus simple pour faire les filtres. Ces listes sont reconstruites à chaque fois qu'on sélectionne la feuille Recherche.
J'ai aussi rajouté la recherche sur plusieurs paramètres simultanés.
Bonjour à tous,
un grand merci à @sylvanu , je viens juste de découvrir ta réponse car pas de courant électrique depuis hier soir.
c'est plus que j'espéré, donc c'est parfait, je vais transposer ça dans mon fichier source.
Bien cordialement
 

jeanmi

XLDnaute Occasionnel
Tout est dans la feuille Recherche, y compris les macros.
Donc il vous suffit de faire glisser cette feuille dan votre projet pout être opérationnel.
La seule limitation est que la feuille de données s'appelle "Gestion des données"
oui j'ai bien compris ça, je vais changer uniquement le nom de la feuille de donnée pour mette le bon nom utilisé.
Ici il est 13h, je vais faire une petite sieste avant de reprendre. bonne continuation.
Encore merci
Tout est dans la feuille Recherche, y compris les macros.
Donc il vous suffit de faire glisser cette feuille dan votre projet pout être opérationnel.
La seule limitation est que la feuille de données s'appelle "Gestion des données"
Boujour à tous, re bonjour @sylvanu ,

j'ai copier la feuille dans mon fichier et là j'ai une erreur que je n'arrive pas à trouver :
1674510287854.png

j'ai changer le nom de l'onglet ou sont les données, dans les macros, la recherche n'est plus en feuille 2 mais 8.
c'est peut-être pour cela de pb?

Après réflexion voici ce que j'ai fait :
Dans les propriétés, Visual basic, j'ai renuméroté la feuille 8 en 2 et ça semble bien fonctionner.
y avait-il une autre solution ?

Une autre question, comment faire pour voir les données de recherche jusqu' la colonne S

Merci pour l'aide.
cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16