[Excel][VBA] Recherche de valeurs dans un tab
Résolu/Fermé
kouiks
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, bonjour! :D
Je fais appel à vous tous expert d'excel pour un petit soucis. Je m'explique un peu car le titre n'est pas vraiment équivoque.
Je ne suis pas du tout coutumier de VBA mais je souhaite créer une une macro afin de réaliser une recherche de valeur dans une colonne. En sachant que dans chaque case de cette colonne peu se trouver plusieurs valeurs (séparées par des points virgules). Tout ceci pour afficher dans une autre case touts les références (aussi séparées par des points virgules) contenant cette valeur...
Voilà pour les explications :D.
Merci beaucoup d'avance à ceux qui voudront bien m'aider!
Je fais appel à vous tous expert d'excel pour un petit soucis. Je m'explique un peu car le titre n'est pas vraiment équivoque.
Je ne suis pas du tout coutumier de VBA mais je souhaite créer une une macro afin de réaliser une recherche de valeur dans une colonne. En sachant que dans chaque case de cette colonne peu se trouver plusieurs valeurs (séparées par des points virgules). Tout ceci pour afficher dans une autre case touts les références (aussi séparées par des points virgules) contenant cette valeur...
Voilà pour les explications :D.
Merci beaucoup d'avance à ceux qui voudront bien m'aider!
A voir également:
- [Excel][VBA] Recherche de valeurs dans un tab
- Liste déroulante excel - Guide
- Avis sur samsung galaxy tab a9+ - Accueil - Tablettes
- Word et excel gratuit - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Trier un tableau excel - Guide
5 réponses
Re-,
Regarde le fichier joint.......
Le code :
Le fichier :
https://www.cjoint.com/?BCgwWu7cRhe
Bon courage
Nota, j'ai rajouté un onglet, nommé "Resultat"....
Si tu n'arrives pas, n'hésite pas....
Regarde le fichier joint.......
Le code :
Sub cousin() Dim FSource As Worksheet, FDest As Worksheet Dim Cel As Range Dim Composant As Object Dim Tmp Dim I As Long Application.ScreenUpdating = False Set FSource = Sheets("Base") Set FDest = Sheets("Resultat") Set Composant = CreateObject("Scripting.Dictionary") With FSource For Each Cel In .Range("C2:C" & .Cells(Rows.Count, 3).End(xlUp).Row) Tmp = Split(Cel, ";") For I = LBound(Tmp) To UBound(Tmp) If Not Composant.Exists(Tmp(I)) Then Composant(Tmp(I)) = Cel.Offset(, -2) Else Composant(Tmp(I)) = Composant(Tmp(I)) & "; " & Cel.Offset(, -2) End If Next I Next Cel End With With FDest .Range("A2:B5000").Clear .Range("A2").Resize(Composant.Count) = Application.Transpose(Composant.Keys) .Range("B2").Resize(Composant.Count) = Application.Transpose(Composant.items) End With End Sub
Le fichier :
https://www.cjoint.com/?BCgwWu7cRhe
Bon courage
Nota, j'ai rajouté un onglet, nommé "Resultat"....
Si tu n'arrives pas, n'hésite pas....
Bonsoir,
A priori, pas trop de problèmes, mais cependant, il faudrait voir la structure de ton fichier, afin de répondre au mieux...
Si tu pouvais joindre un fichier exemple, exempt de données confidentielles, mais au plus près de ton fichier initial, cela accélérerait les réponses.
Pour ce, utilises le site www.cjoint.com , et colle le lien ici
Bonne soirée, et @ te relire
A priori, pas trop de problèmes, mais cependant, il faudrait voir la structure de ton fichier, afin de répondre au mieux...
Si tu pouvais joindre un fichier exemple, exempt de données confidentielles, mais au plus près de ton fichier initial, cela accélérerait les réponses.
Pour ce, utilises le site www.cjoint.com , et colle le lien ici
Bonne soirée, et @ te relire
Voici le joint vers un fichier exemple avec en rouge la valeur à rechercher et à côté la valeur attendue
https://www.cjoint.com/?BCgu7AsOF5j
:) Merci d'avance
https://www.cjoint.com/?BCgu7AsOF5j
:) Merci d'avance
Bonjour,
https://www.cjoint.com/?BChh63CF4Iw
Version 2, avec code commenté.
Pour préserver le 1.1, etc, j'ai rajouté une ligne de code qui formate au format "Texte" (@) la colonne A de destination.
Bonne journée
https://www.cjoint.com/?BChh63CF4Iw
Version 2, avec code commenté.
Pour préserver le 1.1, etc, j'ai rajouté une ligne de code qui formate au format "Texte" (@) la colonne A de destination.
Bonne journée
Bonsoir Cousinhub!
Dis-moi je reviens encore une fois vers toi pour te demander d'ajouter une fonction à mon fichier.
Grace à la macro précédente, j'ai pu créer ma base de donnée de "lien". J'aimerai maintenant garder cette base de donnée et cette macro tout en l'intégrant dans une seconde qui permettra aussi de réaliser un affichage des résultats. Je te mets en pièce jointe le lien où sur la feuille "affichage" tu trouveras le type d'affichage que je souhaite réaliser (en faite il s'agit d'une recherche de chaque ref "num" où l'on vient coller les données de la ligne en gardant le lien avec la référence "composant" qui devient la donnée de 1ère ligne). Je te laisse jeter un coup d'oeil au fichier qui est plus parlant.
https://www.cjoint.com/?BCnxQA2QIQy
Peux-tu me dépanner sur le sujet?
Bonne soirée
Dis-moi je reviens encore une fois vers toi pour te demander d'ajouter une fonction à mon fichier.
Grace à la macro précédente, j'ai pu créer ma base de donnée de "lien". J'aimerai maintenant garder cette base de donnée et cette macro tout en l'intégrant dans une seconde qui permettra aussi de réaliser un affichage des résultats. Je te mets en pièce jointe le lien où sur la feuille "affichage" tu trouveras le type d'affichage que je souhaite réaliser (en faite il s'agit d'une recherche de chaque ref "num" où l'on vient coller les données de la ligne en gardant le lien avec la référence "composant" qui devient la donnée de 1ère ligne). Je te laisse jeter un coup d'oeil au fichier qui est plus parlant.
https://www.cjoint.com/?BCnxQA2QIQy
Peux-tu me dépanner sur le sujet?
Bonne soirée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Maintenant je n'aime pas être face à quelque chose que je ne comprends pas et je souhaite en profiter pour apprendre un peu. Du coup est ce que je peux te demander de commenter les lignes de code si tu as un peu de temps.
Autre question: les données ressortent en tant que donnée chiffre (le 1.1 se transforme en 1,1) est-il possible d'éviter cela?
Encore une fois merci de t'être penché sur le sujet!