calimero44
XLDnaute Nouveau
bonjour à tous,
Je viens vers vous après plusieurs tentatives soldées d'échecs pour ma macro. Il s'agit d'un sujet hélas déjà traité, mais même en tentant d'adapter les macros des autres, je bloque. Je voudrais surtout arriver à comprendre les principes pour être en capacité ensuite de me débrouiller.
Mon fichier: contient une feuille appelée synthèse, sur laquelle je souhaite copier coller à la suite les tableaux des différents onglets (le fichier présent ici n'a pas encore tous les onglets, j'ai voulu démarrer simple, j'en ai un dizaine à rajouter).
Les onglets: sont chacun au même format, seul leur nombre de lignes diffère. Je souhaite trouver un moyen d'avoir le nom de l'onglet en colonne A sur la feuille de synthèse, afin de faire des filtres.
Ce que j'ai essayé:
Quelqu'un pourrait il m'éclairer?
Merci d'avance!
Pascale
Je viens vers vous après plusieurs tentatives soldées d'échecs pour ma macro. Il s'agit d'un sujet hélas déjà traité, mais même en tentant d'adapter les macros des autres, je bloque. Je voudrais surtout arriver à comprendre les principes pour être en capacité ensuite de me débrouiller.
Mon fichier: contient une feuille appelée synthèse, sur laquelle je souhaite copier coller à la suite les tableaux des différents onglets (le fichier présent ici n'a pas encore tous les onglets, j'ai voulu démarrer simple, j'en ai un dizaine à rajouter).
Les onglets: sont chacun au même format, seul leur nombre de lignes diffère. Je souhaite trouver un moyen d'avoir le nom de l'onglet en colonne A sur la feuille de synthèse, afin de faire des filtres.
Ce que j'ai essayé:
Code:
Sub Copie()
Dim i As Long
'efface les données précédentes sur la première feuille
Sheets(1).[A3:E65536].Clear
'compte le nombre de feuilles
For i = 2 To Worksheets.Count
With Worksheets(i)
.Range(.[A7], .[A65536].End(xlUp)).Resize(, 14).Copy Sheets(1).[A65536].End(xlUp)(2)
End With
Next
End Sub
Code:
Sub Recup()
Dim Fe As Worksheet
Dim Plage As Range
Dim DernLigne As Long
'efface le contenu du tableau des lignes 2 à 2000
Sheets("synthese").Activate
Range("2:2000").Select
Selection.ClearContents
'parcour la collection en évitant la feuille de consolidation
For Each Fe In ThisWorkbook.Worksheets
If Fe.Name <> "synthese" Then
With Fe
'définit la plage
DernLigne = Range("B" & Rows.Count).End(xlUp).Row
Set Plage = Range("A6:Z" & DernLigne)
Plage.Select
End With
'colle les valeurs dans la feuille de consolidation
Plage.Copy _
Worksheets("synthese").Range("A65536").End(xlUp).Offset(1, 0)
'selectionne A65536 dans synthèse, va jusqu'à la dernière cellule non vide de la colonne et descend d'une ligne puis colle
End If
Next Fe
End Sub
Quelqu'un pourrait il m'éclairer?
Merci d'avance!
Pascale