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 -
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.
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.
A voir également:
- Recherche données dans onglet à partir d'une liste
- Fuite données maif - Guide
- Liste déroulante excel - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
2 réponses
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
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
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
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
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
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