synthèse de plusieurs feuilles excel

Lachmacros

XLDnaute Nouveau
Bonjour le Forum,

Je sollicite votre aide pour une macro qui récupère et synthétise toutes les données de plusieurs feuille Excel:
J'ai un fichier contenant plusieurs feuilles à une seule colonne.
Sur une nouvelle feuille qu'on l'appel "Synthèse", je veux dresser un tableau dont ;
- sa première colonne contient toutes les données des différentes feuilles.
- sa première ligne le nom des feuilles présentes dans le fichier.
ainsi les données présentes dans chaque feuilles doivent être indiquées par un caractère spécifique.
je vous met un exemple pour mieux comprendre.
Je tiens à vous remercier de votre aide.
 

Pièces jointes

  • synthèse.xlsx
    13.9 KB · Affichages: 41
  • synthèse.xlsx
    13.9 KB · Affichages: 43
  • synthèse.xlsx
    13.9 KB · Affichages: 49

Staple1600

XLDnaute Barbatruc
Re : synthèse de plusieurs feuilles excel

Bonsoir à tous


Ce sujet a été abordé maintes et maintes fois
Utilises le moteur de recherche du forum (la loupe en haut à droite)
mots clés possible:
combiner feuilles

PS: La charte du forum est pourtant limpide sur ce point ....
Demandeur

1 – Un outil de recherche sur le forum permet de voir si la question a déjà été posée. Ne pas hésiter à l’utiliser. Lien vers le moteur de recherche

Pas sur que tu ais pris le temps de la lire cette fameuse charte ...:rolleyes:
 

Staple1600

XLDnaute Barbatruc
Re : synthèse de plusieurs feuilles excel

Re


Après examen de ta PJ, il ne s'agit pas vraiment de combiner des feuilles au sens classique ;)
(mais le point de la charte que je cite reste valide pour tes prochaines questions)

Apparemment cette macro semble faire l’affaire (en tout cas sur ton fichier exemple)
Code:
Sub a()
Dim ws As Worksheet, x&
For Each ws In Worksheets
If ws.Name Like "F*" Then
For i = 3 To ws.Cells(Rows.Count, 1).End(xlUp).Row
x = Application.Match(ws.Cells(i, "A"), Sheets("Synthèse").Range("A2:A28"), 0)
If x > 0 Then
Sheets("Synthèse").Cells(x, (1 * Right(ws.Name, 1)) + 1) = "*"
End If
Next
End If
Next
End Sub
 

Lachmacros

XLDnaute Nouveau
Re : synthèse de plusieurs feuilles excel

Bonjour Staple1600,
Merci pour le code,
Je tiens à t'informer que j'ai bien lu la charte mais je ne suis pas arrivé à trouver un cas similaire afin que je puisse l'adapter .
effectivement je ne cherche pas à combiner entre plusieurs failles, et je m'excuse parce que je devais bien choisir le nom de ma requête.
par contre je n'ai pas réussi à trouver une macro qui permet de comparer et d'indiquer la présence d'une donnée quelconque dans une des feuilles du fichier.
Cependant j'ai utilisé ton code mais ça ne fonctionne pas correctement sur certains fichiers (PJ)
sans vouloir te déranger est ce que ceci est faisable.
Merci de ton aide
 

Pièces jointes

  • synthèse.xlsx
    13.9 KB · Affichages: 49
  • synthèse.xlsx
    13.9 KB · Affichages: 50
  • synthèse.xlsx
    13.9 KB · Affichages: 55

Staple1600

XLDnaute Barbatruc
Re : synthèse de plusieurs feuilles excel

Bonsoir à tous

Évidemment si tu changes la donne en cours de route...
(Les noms des feuilles ne sont plus mêmes, les plages de cellules les valeurs non plus)

Et pourquoi la feuille ne s'appelle plus Synthèse

Essaies avec ces modifs
Code:
Sub ab()
Dim ws As Worksheet, x&
For Each ws In Worksheets
If ws.Name Like "Feuille*" Then
For i = 3 To ws.Cells(Rows.Count, 1).End(xlUp).Row
x = Application.Match(ws.Cells(i, "A"), Sheets("Synthèse").Range("A2:A31"), 0)
If x > 1 Then
Sheets("Synthèse").Cells(x, (1 * Right(ws.Name, 1)) + 1) = "*"
End If
Next
End If
Next
End Sub
 

Lachmacros

XLDnaute Nouveau
Re : synthèse de plusieurs feuilles excel

Bonjour,
Merci beaucoup, ça fonctionne à merveille.
Juste une dernière question,
Serait il possible de standardiser le code pour qu'il puisse analyser n'importe quelle feuille sans critère de sélection.
Je te remercie infiniment de ton aide
 

Staple1600

XLDnaute Barbatruc
Re : synthèse de plusieurs feuilles excel

Bonsoir à tous

Lachmacros
Selon le type de dénomination de tes feuilles, testes l'une ou l'autre macro.
'si nom feuilles se termine par un chiffre
Code:
Sub abc()
Dim ws As Worksheet, x&
For Each ws In Worksheets
If Not ws.Name Like "Synthèse" Then
For i = 3 To ws.Cells(Rows.Count, 1).End(xlUp).Row
x = Application.Match(ws.Cells(i, "A"), Sheets("Synthèse").Range("A2:A31"), 0)
If x > 1 Then
Sheets("Synthèse").Cells(x, (1 * Right(ws.Name, 1)) + 1) = "*"
End If
Next
End If
Next
End Sub

'si nom feuilles ne se termine pas par un chiffre
Code:
Sub abcd()
Dim ws As Worksheet, x&
For Each ws In Worksheets
If Not ws.Name Like "Synthèse" Then
For i = 3 To ws.Cells(Rows.Count, 1).End(xlUp).Row
x = Application.Match(ws.Cells(i, "A"), Sheets("Synthèse").Range("A2:A31"), 0)
If x > 1 Then
Sheets("Synthèse").Cells(x, ws.Index + 1) = "*"
End If
Next
End If
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 495
Messages
2 088 964
Membres
103 992
dernier inscrit
Christine 974