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

macro de recherche en multifeuilles

  • Initiateur de la discussion Initiateur de la discussion sril
  • 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 !

S

sril

Guest
Bonsoir,
je suis débutant en macro et vba, pourriez-vous me conseiller.
J'ai un fichier avec des références en colonne A et un prix en colonne C.
Dans un autre fichier avec plusieurs feuilles, je vais retrouver ces références en colonne A et un prix en colonne D.
Comment créer une macro pour faire venir le prix de la colonne D du 2e fichier (en recherchant dans les différentes feuilles) en face de la colonne C du 1er fichier pour comparer que les prix soient les mêmes ?
Mon problème est de passer d'une feuille à une autre.

Merci
 
Re : macro de recherche en multifeuilles

Salut,

Un petite truc m'interpels dans ta demande, tu parles au début de 2 fichiers et a la fin de ta demande, de 2 feuilles, donc quant est-il vraiment ?
Sachant qu'il est beaucoup plus simple de traiter sur 2 feuilles plutot que sur 2 fichiers...

@+
 
Re : macro de recherche en multifeuilles

Oui, autant pour moi.
J'ai bien 2 fichiers différents.
Par contre, mon soucis est de passer d'une feuille à l'autre dans mon 2e fichier.
Exemple : mes 2 fichiers sont ouverts, je lance ma macro pour rechercher une référence et mettre un prix dans mon premier fichier.
Si mon 2e fichier est ouvert à la feuille où la référence est présente, il n'y a pas de problème. Par contre, ma macro ne va pas chercher la référence dans les autres feuilles du 2e fichier.
 
Dernière modification par un modérateur:
Re : macro de recherche en multifeuilles

Je relance mons sujet au cas où quelqu'un peut me donner l'astuce en VBA pour réussir à faire une recherche sur plusieurs feuilles...
 
Re : macro de recherche en multifeuilles

Salut,

Je vais essayer de t'apporter un élément de réponse, mais pas évident sans avoir ton code sous les yeux.
Donc de ce que j'ai compris, je te dirai qu'il faut boucler sur les feuilles avec une boucle de ce genre :
Code:
For k=1 to sheets.count
   With Sheets(k)
[COLOR=seagreen]       'ton code avec des points devant[/COLOR]
[COLOR=seagreen]       'par exemple : [B][COLOR=red].[/COLOR][/B]Cells(1,1).value=15[/COLOR]
   End with
Next k

Si tu ca n'est pas ca ou que tu n'arrives pas a adapter, mets nous ton code.

@+
 
Re : macro de recherche en multifeuilles

Merci pour ton aide.
J'ai essayé ton code par contre je me rends compte que ma macro s'arrête à la première page car elle ne trouve pas de résultats.
Pour plus de compréhension, je vous mets mon code avec des commentaires.
Merci d'avance.
________________________________________________________________________
Sub recherche_prix()
'
' essai recherche_prix
'
Dim code_recherche As Variant 'est la référence sur laquelle on fait une recherche
Dim nouveau_prix As Variant 'chiffre récupérer suite à la recherche
Dim compteurfeuille As Variant 'pour essai de boucle sur les feuilles
Dim fichier_excel As Variant 'indique dans quel fichier faire la recherche

compteurfeuille = 1 'initialisation variable
fichier_excel = Range("G2").Value

DEPART: 'servira pour revenir(voir plus bas)
For compteur = 1 To 2000 '2000 cycles de traitement, soit 2000 lignes
'
ActiveCell.Offset(1, 0).Activate 'passage à la ligne suivante
'
'
code_recherche = ActiveCell.Offset(0, -5).Value 'le code recherche est situé 5 colonnes à gauche de la cellule active
Windows(fichier_excel).Activate 'maintenant que l'on sait quelle référence on cherche on change de fichier pour la trouver

On Error GoTo Erreur 'si le code n'existe pas la recherche ci-dessous renvoie une erreur

Worksheets(compteurfeuille).Activate

'A MON AVIS IL Y A MOYEN DE SIMPLIFIER LE CODE POUR LA RECHERCHE CI-DESSOUS
'CETTE RECHERCHE RENVOI UNE ERREUR 91 SI IL N'Y A PAS DE RESULTAT
Cells.Find(What:=code_recherche, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

nouveau_prix = ActiveCell.Offset(0, 3).Value 'mémorisation du prix qui correspond à la référence que l'on viens de trouver (3 colonnes à droite)

Windows("ContrôleTAM.xls").Activate 'retour sur le fichier initial
ActiveCell.Value = nouveau_prix 'mise en place du nouveau prix

Erreur:
If Err.Number = 91 Then 'si la recherche renvoi une erreur
compteurfeuille = compteurfeuille + 1 'alors passer à la feuille suivante'
GoTo DEPART 'et on recommence
End If 'Ca marche une fois mais pas deux !!! En gros on passe de feuille 1 à 2 mais pas à 3,4...

If Err.Number = 9 Then 'ici le but est d'arrêter la recherche lorsque la feuille appelé n'existe pas
Call MsgBox("Pas de colis correspondant !", vbExclamation, "Traitement impossible") 'et l'indiquer à l'utilisateur
Application.DisplayAlerts = False
End If
Next

End Sub
 
- 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éponses
5
Affichages
402
Réponses
3
Affichages
313
Réponses
6
Affichages
279
Réponses
4
Affichages
265
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…