Recherche dans plusieurs feuilles

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

N

Nightsheart

Guest
Bonjour à tous et à toutes,

J’ai créée un fichier excel 2003 avec plusieurs feuilles (environ 30-40). Chacune répertoriant des références et leur quantité. Une feuille représente un jour.
Dans chaque feuille se retrouve les mêmes références mais pas à la même place.
Je souhaiterais, dans une autre feuille, réaliser une recherche dans chaque feuille d’une référence et d’en extraire la quantité. J’obtiendrais ainsi l’évolution des quantités en fonction des jours.
Ceci me permettrait de tracer un graphique pour visualiser cette évolution.
J'espère avoir été clair quant à ma demande.
Je n’ai que très peu de connaissances en excel, c’est pourquoi je sollicite votre aide.
Merci d’avance,
Cordialement

Nightsheart
 
Re : Recherche dans plusieurs feuilles

Bonjour Nightsheart,

Comme déjà demandé dans ton message de decembre 2010,

Re : Graphique + ajout d'une nouvelle feuille
Bonsoir Nightsheart, le forum,
Si tu peux mettre un exemple de ton fichier, sans information confidentielle, cela sera plus facile pour t’aider.
Cordialement,
Bernard
message auquel tu n'as pas répondu...
peut tu joindre un fichier exemple afin de pouvoir comprendre comment son organiser les feuilles,si on doit faire une recherche sur du texte, des chiffres, comment son organiser les reférences,...

puis comment tu as prevu d'organisser la feuille d'evolution( un tableau pour chaque reference ou un tableau unique dans lequel tu choisit la référence à analyser...

tu vois beaucoup de question pour un debut, qu'un fichier nous aurais répondu...

dans l'attente de te lire
 
Re : Recherche dans plusieurs feuilles

Bonjour, Nightsheart.

Deux conseils (qui n'engagent que moi)
1° virer toutes ces cellules fusionnées qui ne servent à rien d'autre qu'à compliquer les traitements ultétieurs.
2° réorganiser tes données quotidiennes (une colonne Machine, une colonne référence, une colonne quantité).
Un simple equiv(index) te permettra alors d'extraire tout ce que tu voudras.
 
Re : Recherche dans plusieurs feuilles

Merci pour tes conseils.
Cependant la mise en page et l'organisation des éléments ne peuvent pas être modifié.
Le fichier est organisé de la sorte pour permettre d'autres opérations.
 
Re : Recherche dans plusieurs feuilles

certes mais ne serait-il pas mieux de modifier les autres operations, car la franchement, c'est possible par contre cela va etre l'usine à gaz avec pas de possibilite d'utiliser de fonctions generale à appliquer a chaque feuille mais il va falloir faire un bout de code pour chaque feuille voir meme pour chaque tableau, car le nombre de tableau n'est pas le meme et pas disposer de la meme facon, de plus si un machine venait a s'ajouter ou disparaitre tout ton fichier serait du coup obsolete...
 
Re : Recherche dans plusieurs feuilles

Désolé pour ma réponse tardive.
En tout cas ça m'a l'air compliqué.
Mais mon fichier étant étudier pour tenir sur une feuille A4 avec mises en forme conditionnelle pour certaines choses et mises à jour automatique de graphique. Je suis dans l'impossibilité de le modifier.
de plus si un machine venait a s'ajouter ou disparaitre tout ton fichier serait du coup obsolete...
Il est sur que les machines viendront à changer et que les références par machine aussi.

Il n'existe pas une méthode simple pour rechercher une référence dans chaque feuille et d'extraire la donnée correspondante ?
 
Re : Recherche dans plusieurs feuilles

En y réfléchissant un peu j'ai trouver ceci qui fonctionne bien à condition de n'avoir qu'une seule fois la référence dans chaque feuille.
Je te laisse le soin de modifier le code pour le mettre dans le tableau au lieu des messages.

VB:
Sub recherche()
Dim wsh As Worksheet, x As Range, l As Integer, c As Integer, maref As String

maref = ThisWorkbook.Worksheets("Extraction").Range("C2")

For Each wsk In Worksheets ' boucle sur chaque feuille du fichier
    If wsk.Name = "Extraction" Then GoTo suivant ' si la feuille s'appelle Extraction alors on passe à la feuille suivante
    With wsk.Cells ' definit plage de la recherche
        Set x = .Find(maref, , xlValues, xlWhole) ' recherche
    End With
    If Not x Is Nothing Then ' si la recherche est infructueuse on passe à la feuille suivante
        l = x.Row ' recupere le numero de ligne ou la ref a été trouvé
        c = x.Column ' pareil avec le numero de colonne
        MsgBox "La cellule recherché est a la ligne " & l & " et en colonne " & c & " de la feuille " & wsk.Name
        MsgBox " la quantité de produit est de " & wsk.Cells(l, c + 3)
    End If
suivant:
Next wsk
End Sub

meme si on a pu trouver un code simple, tu te renderas compte rapidement si tu continue a develloper sur excel ,que d'eviter la fusion des cellules, et qu'appliquer un format standard a chaque feuille te rendras beaucoup de service, j'en est deja fait l'amere experience,
 
Re : Recherche dans plusieurs feuilles

Merci ca marche nickel.
Cependant serait-il possible que les valeurs des quantités relevé par ton programme soient copiées sur une autre feuille ?
Parce que là si je dois réalisé un graphique, je suis obligé de relevé à la main chaque quantité.
 
Re : Recherche dans plusieurs feuilles

Je suis loin d'être expert en vba mais je pense qu'il y a une petite erreur qui pourrait éviter quelque soucis.

Dim wsh As Worksheet

Je pense que c'est wsk car par la suite c'est wsk qui est utilisé dans la suite du code
 
Re : Recherche dans plusieurs feuilles

Bravo pour avoir vu l'erreur de déclaration de variable... qui ne sert strictement à rien puisque wsk est utilisé ensuite comme élément de Worksheets ( par un for each)...

A mon sens mieux vaut retirer que de le corriger.

Et en finale, suivre les conseils qui sont donnés ici. Pour utiliser Excel correctement il faut respecter des règles simples comme
1) ne pas fusionner de cellules
2) nommer les cellules utiles (et ainsi avoir de formules parlantes aux humains)
3) apprendre aux autres à être ordonné car sinon Excel devient le roi du ...B. ambulant.

Il est possible de convaincre les autres utilisateurs en leur montrant que cela leur permettra de boire leur café tranquille ...

Bonne journée
 
Re : Recherche dans plusieurs feuilles

Bonjour Nightheart,

VB:
Sub recherche()
Dim x As Range, l As Integer, c As Integer, maref As String, i As Integer
Worksheets("Extraction").Range("C6:G32").ClearContents
maref = ThisWorkbook.Worksheets("Extraction").Range("C2")
i = 5
For Each wsk In Worksheets ' boucle sur chaque feuille du fichier
   If wsk.Name = "Extraction" Then GoTo suivant ' si la feuille s'appelle Extraction alors on passe à la feuille suivante
   With wsk.Cells ' definit plage de la recherche
       Set x = .Find(maref, , xlValues, xlWhole) ' recherche
   End With
    If Not x Is Nothing Then ' si la recherche est infructueuse on passe à la feuille suivante
       l = x.Row ' recupere le numero de ligne ou la ref a été trouvé
       c = x.Column ' pareil avec le numero de colonne
       With Worksheets("Extraction")
         i = i + 1
        .Cells(i, 3) = wsk.Name
        .Cells(i, 5) = wsk.Cells(l, c + 3)
        End With
    End If
suivant:
Next wsk
End Sub

tu avais tout les élements de reponse, il falllait juste réfléchir un peu...
 
- 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
19
Affichages
4 K
R
Réponses
4
Affichages
2 K
Romane.
R
C
Réponses
1
Affichages
1 K
Cattleya97
C
F
Réponses
0
Affichages
736
F
A
Réponses
4
Affichages
4 K
Anthony.29
A
A
Réponses
0
Affichages
1 K
Alexis Ouvrard
A
Retour