Chercher une valeur dans un classeur entier

Papaillou

XLDnaute Nouveau
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!
 

ClementMaillioux

XLDnaute Nouveau
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,
 

Papaillou

XLDnaute Nouveau
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

  • Classeur1.xls
    17 KB · Affichages: 134
  • Classeur2.xls
    17 KB · Affichages: 99
  • Classeur1.xls
    17 KB · Affichages: 142
  • Classeur2.xls
    17 KB · Affichages: 105
  • Classeur1.xls
    17 KB · Affichages: 143
  • Classeur2.xls
    17 KB · Affichages: 96
G

Guest

Guest
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+
 

Papaillou

XLDnaute Nouveau
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

  • FichierM.xls
    22 KB · Affichages: 145

Discussions similaires

Statistiques des forums

Discussions
312 664
Messages
2 090 676
Membres
104 633
dernier inscrit
benabidwajih