Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion redrock
  • 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 !

R

redrock

Guest
Bonjour à tous
je recherche une macro pour la manip suivante: jai des référence dans la feuille 2 et je voudrais dans la feuille 1 créer une macro qui aille chercher dans la feuille 2 ce que je lui demande par ex: si j'inscrit US04 en feuille 1( en collone a1 si possible) la macro aille chercher tout les US04 qui se trouve en feuille 2 colonne G et qu'apparaisse tout les données de toutes les colonnes
je sais pas si je suis clair...

MERCI d'avance...
 
Re : macros excel

Bonjour

Florent, la fonction RECHERCHEV, ne peut afficher qu'une seule occurence, et Redrock, veut toutes les occurences. Il y a bien des possibilités en formule pour afficher toutes les lignes, mais pas avec cette fonction, Redrock souhaite un code VBA.

Code:
Option Explicit

Sub ListeOccurence()
Dim Pos1 As Variant
Dim Pos2 As Variant
Dim I As Integer
[COLOR=YellowGreen][I]'efface le contenu des cellules [/I][/COLOR]
Sheets("Feuil2").Range("A2:IV65536").ClearContents
[COLOR=YellowGreen][I]'Numéro de la première ligne qui contient les données[/I][/COLOR]
Pos2 = 1
[COLOR=YellowGreen][I]'Boucle sur le nombre de "valeurs à tester" qui présente dans la plage de données[/I][/COLOR]
For I = 1 To Application.CountIf(Sheets("Feuil1").Range("A:A"), Range("A1"))
[I][COLOR=YellowGreen]   'Recherche la position de la "valeur à tester"[/COLOR][/I]
   Pos2 = Application.Match(Range("A1"), Sheets("Feuil1").Range("A" & (Pos1 + Pos2) & ":A65536"), 0)
[COLOR=YellowGreen][I]   'Passe l'index Pos2 de relatif en absolue[/I][/COLOR]
   Pos1 = Pos1 + Pos2
   [I][COLOR=YellowGreen]'Copie la ligne[/COLOR][/I]
   Sheets("Feuil1").Range("A" & Pos1).EntireRow.Copy Destination:=Sheets("Feuil2").Range("A" & I + 1).EntireRow
Next I
End Sub
Les données de la feuille de donnée commence sur la ligne.
La cellule contenant la valeur à tester est en cellule A1.

@+Jean-Marie

PS : il y a la possibilité de passer par un filtre automatique, plus rapide, mais ...
 
Dernière édition:
- 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

  • Question Question
Microsoft 365 Tableau
Réponses
5
Affichages
288
Réponses
134
Affichages
5 K
Réponses
3
Affichages
472
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…