Compiler des données d'un nombre d'onglets variables dans un dernier onglet
Bonjour ,
Je n'arrive pas a réaliser la macro qui me permettrait de :
- Faire une boucle dans un dossier pour prendre tous les fichiers F contenant le mot « cadre » jusqu’à ce qu’il n’y ait plus de fichier
- Ouvrir F , puis créer un nouvel onglet «compile » après le dernier onglet qui se nomme toujours DET ( il n’y a pas toujours le même nombre d’onglets dans chaque fichier)
- Puis dans cet onglet «compile » copier la plage de cellule (A15 :D65) de tous les onglets K du fichier (K étant une variable qui définit le rang de l’onglet dans le fichier c’est-à-dire K varie de 10 à fin-2), c’est-à-dire (du 10 ème onglet à l’onglet qui précède l’onglet DET. (les 2 derniers onglets étant « DET » et « compil » qu’on vient de créer.
On copie la 1ere plage (A15 :D65) de K en A3 de « compile » si A3 est non vide, puis ainsi de suite les données les unes en dessous des autres.
J’ai quelques éléments mais je n’arrive pas à les coordonner
Mille mercis très urgent
Do While F <> "" 'boucle tant qu'il existe des fichiers
If Not F = CC.Name Then 'condition : si F n'est pas ce classeur
Workbooks.Open (F) 'ouvre le fichier F
XXXX créer l’onglet « compile » après DET
' ----- Calcul du nombre d'onglet -----
Fin = Sheets.Count
' ----- selectionner lage dans les onglet K -----
For K = 1 To Fin -2
Sheets(K).select
Next K
ActiveWorkbook.select
Set OS = CS.Sheets("COMPIL") 'définit l'onglet source OS (à adapter)
Set PL = OS.Range("A15:D65") 'définit la plage PL (à adapter, peut aussi être PL=OS.Rows(1))
'définit la cellule de destination DEST (A3 si A3 est vide,
'sinon la première cellule vide de la colonne 1 (=A) de l'onglet cible OC (à adapter)
Set DEST = IIf(OC.Range("A1").Value = "", OC.Range("A1"), OC.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
PL.Copy DEST 'copy la plage PL dans DEST
XXXXXX 'fermer et enregistrer le classeur source
End If 'fin de la condition
F = Dir 'redéfinit le fichier F (prochain fichier Excel du dossier contenant ce classeur)
Loop 'boucle
Bonjour,
Sans exemple pas trop facile de vous aidez, à première vue je dirais de passer par Power Query si votre version Excel le permet (2013 et +)
Cdt
Voici un exemple de fichier, Ils sont tous semblables et seront tous dans un même dossier, ils ont des onglets communs et des onglets variables en nombre mais de structure identique (en bleu dans ce fichier). l’onglet « Compo » en vert existe toujours, il est construit sur le même modèle dans tous les F.
La macro qui fait la boucle d’ouverture des fichiers (F) et qui enregistre et ferme est créée, reste à faire une autre boucle dans cette boucle
On veut que cette partie de la macro une fois le fichier F ouvert:
1 : crée un onglet en dernier en le nommant « compile » sans passer par Feuil1 ou feuil (14)… car sera différent pour chaque fichier F
2 : définir K une variable qui est le nom des onglets bleus dont la liste figure toujours dans l’onglet compo de tous les Fichiers F plage B13 :B37, mais dont le nombre et les noms peuvent varier d’un fichier F à l’autre, et des cellules peuvent être vides
3 : pour chaque K sélectionner une plage de données (toujours la même, certaines cellules seront vides colonne A, C, G, L, M =>L 7 :65) la copier
4 : la coller dans l’onglet « compile » qu’on a créé en A1 tant que A1 et vide
Ceci pour tous les K de F
Re,
si votre version Excel le permet (2013 et +)
Quel est votre version d'excel ?
Merci de m'aider Valentin85 👍
J'ai Excel 2016 mais je souhaite utiliser les macros et pas Power Query 😉
Dans ce cas sans moi,
Pour courage, je reste persuadé que PQ elle le plus adapté mais c'est vous qui voyez.
Cdr