Recherche données dans onglet à partir d'une liste

Résolu
jeje8416 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je vous expose mon problème sur lequel je galère depuis pas mal de temps déjà.

J'ai un tableau excel comprenant plusieurs onglets (120 ^^). Un onglet contient une liste de nom et les 119 autres viennent piocher dans cette liste pour former d'autres listes. (1 liste par onglet).

Chaque liste est ordonnée de manière différente et chaque liste associe un nombre différent en face de chaque nom.

J'aimerai pouvoir récupérer la somme des nombres associé à 1 nom pour l'ensemble de mes onglets dans un onglet ''récapitulatif''.

Je ne maîtrise pas les macros mais j'ai essayé avec des rechercheV qui fonctionne uniquement pour 1 onglet et je ne sais pas comment sommer sur les 119...

Ayant fait un peu de progra j'imagine une boucle IF qui balayerait chaque liste en la comparant avec un nom de la liste source et qui stockerait le nombre associé. Ensuite une somme des valeurs stockées pour le nom. Et ainsi de suite.

J'espère ne pas vous faire surchauffer le cerveau en ce temps de canicule ;)

Merci pour votre aide.

Dites moi si vous voulez + de détail.

2 réponses

melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
Bonjour,

voici la macro avec mes commentaires pour l'adapter

Sub Macro2()
'
' Macro2 Macro
'

'
Dim a, b, feuille, i As Integer
Dim var, somme As Variant

a = ActiveWorkbook.Worksheets.Count ' a = nombre de feuilles se trouvant dans ton classeur
b = sheets(1).Cells(1, 1).Select 'b = cellule ligne 1 colonne 1 de la feuille 1 correspondant au nom que tu cherches


For feuille = 1 To a 'pour toutes les feuilles
i = 1 'i= 1
Do While sheets(feuille).Cells(i, 2) <> "" ' tant qu'il y aura une donnée dans la cellule située ligne i colonne 2 de la feuille
If sheets(feuille).Cells(i, 4) = b Then 'si la cellule de la ligne i et de la conne 4 = nom rechercher (variable b)
somme = somme + sheets(feuille).Cells(i, 5) ' la variable somme est égale à elle même + la valeur de la cellule de la ligne i colonne 5
End If
i = i + 1
Loop
Next
Sheets(1).Cells(1, 2) = somme 'la cellule B1 de la feuille 1 t'affichera la valeur de la variable somme


End Sub
1
jeje8416 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse Mélanie !

Par contre, je viens de l'essayer sur un petit exemple et ça marche po... déjà pour moi le nom est du texte donc j'ai déclaré Dim b As String mais il n'affiche pas la somme en B1 comme prévu...

Voici mes modifs:

Sub Macro2()
'
' Macro2 Macro
'

'
Dim a, feuille, i As Integer
Dim somme As Variant
Dim b As String

a = ActiveWorkbook.Worksheets.Count ' a = nombre de feuilles se trouvant dans ton classeur
b = Sheets(1).Cells(1, 1).Select 'b = cellule ligne 1 colonne 1 de la feuille 1 correspondant au nom que tu cherches


For feuille = 2 To a 'pour toutes les feuilles sauf la première
i = 1 'i= 1
Do While Sheets(feuille).Cells(i, 1) <> "" ' tant qu'il y aura une donnée dans la cellule située ligne i colonne 1 de la feuille
If Sheets(feuille).Cells(i, 1) = b Then 'si la cellule de la ligne i et de la colonne 1 = nom rechercher (variable b)
somme = somme + Sheets(feuille).Cells(i, 2) ' la variable somme est égale à elle même + la valeur de la cellule de la ligne i colonne 2
End If
i = i + 1
Loop
Next
Sheets(1).Cells(1, 2) = somme 'la cellule B1 de la feuille 1 t'affichera la valeur de la variable somme

MsgBox ("Fini")
End Sub



Tu penses que ya une erreur ?

Merci
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
le plus simple,
envoies une copie simplifié de ton fichier sur cjoint.com
Je verrais ou est le pb
0
jeje8416 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Voilà:

https://www.cjoint.com/c/CGEkQMFwezV

Merci beaucoup pour ton aide :)
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
pardon, il y avait une petite erreur dans le code.

Je l'ai modifié de telle sorte que la somme se fasse sur toute ta liste de la feuille 1 :
https://www.cjoint.com/c/CGEk1JWu8lx
0
jeje8416 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Wouah ! Magnifique :) C'est exactement ce que je voulais.

Je te remercie pour tout et te souhaite bonne continuation.

A bientôt !
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
mets le en resolu stp
0