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

Chercher une valeur dans un classeur entier

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

P

Papaillou

Guest
Bonjour, je cherche à faire fonctionner une macro depuis ce matin et je m'arrache les cheveux.
Pourtant, ça ne me paraît pas trop difficile à la base.

J'ai deux classeurs Classeur1 et Classeur2

Dans classeur1, j'ai une liste de codes (123,156,189...)
Je souhaite vérifier pour chaque code si on le retrouve bien dans le classeur2 dans au moins un des onglets.
Si on le trouve, alors on passe au code suivant, si on ne le trouve pas, je veux copier le code dans un onglet existant appelé "nouveaux codes" du classeur1.

Merci beaucoup!
 
Re : Chercher une valeur dans un classeur entier

Bonjour Papaillou!

Est-il possible, afin de vous répondre, d'avoir une base de travail comme la macro que vous avez écrite actuellement ou au moins les classeurs sur lesquels vous désirez travailler?

Cordialement,
 
Re : Chercher une valeur dans un classeur entier

Sub Macro()
Dim nb_article As Integer
Dim i As Integer
Dim name_article As Double
Dim name_sheet As String
nb_article = 565
j = 0
On Error GoTo GestErreur
For i = 0 To nb_article

Workbooks("Classeur2").Activate

name_article = Sheets("Feuil1").Cells(i + 68, 5)


Workbooks("Copie de MacroUG").Activate
Call chercher(name_article)

=> la macro "chercher" (prise sur un post de ce forum):
Public Sub chercher(rech As Double) 'recherche d'une chaine
Dim sel As Object ' cellule trouvée
Dim c As Integer ' colonne
Dim f As Integer ' feuille
Dim l As Long ' ligne
Dim n As Integer ' éléments trouvés
n = 0
For f = 1 To Sheets.Count ' boucle feuilles
With Sheets(f)
l = 3: c = 1
Do ' recherche
Set sel = .Cells.Find(What:=rech, after:=.Cells(l, c), _
LookIn:=xlValues, LookAt:=xlPart, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False)
If sel Is Nothing Then Exit Do
If sel.Column <= c And sel.Row <= l Then Exit Do
c = sel.Column
l = sel.Row
n = n + 1 ' élément trouvé : traitement
Loop
End With
Next f
MsgBox n & " éléments trouvés"
End Sub





Next i

GestErreur:
j = j + 1
Sheets("Feuil3").Select
Cells(j, 1) = name_article
Err.Clear
Resume

End Sub




je ne veux pas que la macro "chercher" m'affiche un message d'alerte mais qu'il me copie le nom de l'article dans l'onglet "nouveaux articles" du classeur 1

J'ai joint les deux classeurs.
Merci d'avance !!
 

Pièces jointes

Re : Chercher une valeur dans un classeur entier

Bonsoir,

Voici tes classeurs modifiés, bien lire les commentaires. Il doivent tous les deux être ouvert.

La macro est dans h_Papalliou1.xls et se nomme 'ChercherLesNouveauxArticles'

A+
 
Re : Chercher une valeur dans un classeur entier

Hasco,

Merci beaucoup pour la réponse! ton code est génial
j'ai essayé d'adapter cela à mon vrai fichier et j'ai encore qq questions.

Est-il possible de faire ce genre de recherche si je mets tout dans un seul fichier:

1er onglet "Bex" avec mes noms d'articles à chercher (le premier article est en E68 et je n'ai besoin de chercher les articles que si la premiere colonne est "Livraisons /")

Onglets suivants avec les valeurs à trouver (avec si possible des totaux entre les articles)

onglet "Innos" avec les nouveaux articles à rajouter.

Je joins mon fichier allégé pour que ce soit plus clair.

Merci merci merci encore!!
 

Pièces jointes

- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…