Consolidation de classeurs / Cellules = ""

Bonjour à tous,

Je me permets de solliciter votre aide pour un fichier que je suis en train de créer et pour lequel je n'arrive pas à mes fins...

Je m'explique : je cherche à faire une consolidation de classeurs excel. Je suis donc repartie du fichier d'exemple Excel fourni dans un des topics de ce forum. Mais le code nécessite d'être adapté : dans mes fichiers sources, que je cherche à consolider, les onglets à rapatrier sont tous alimentés par des formules, et même si mes cellules sont égales à "", elles ne sont pas considérées comme étant "vides" par la macro que j'ai récupérée. Du coup j'ai plein de lignes vides correspondant aux lignes sur lesquelles j'ai des formules dans mon fichier de consolidation et toutes les lignes ne sont pas récupérées comme je le voudrais...

Je vous joins les fichiers. Les onglets que je souhaite fusionner sont les onglets "Risques" "Actions de maîtrise" et "Plans d'action".

Un grand merci par avance pour votre aide sur cette macro qui me fait des nœuds au cerveau !

Bien cordialement,

Lucie

14macro-conso.7z (268.60 Ko)

Aidez-moi, s'il vous plait... je me bats mais il n'y a rien qui fonctionne, je n'y comprends rien

Bonjour

Je voudrais bien t'aider mais je ne parviens pas à récupérer le fichier que tu as joint.

A te relire.

Bye !

Hello GMB, Lucie3133,

rien d'autre de la réussite de l'ouverture des fichiers que voici

P.

15smi-cp1.xlsx (186.60 Ko)
21consolidation.xlsm (172.37 Ko)

merci Patrick.

@lucie : les fichiers joints par Patrick m'ont l"air de bien marcher. Je ne vois pas ce qui cloche.

Bye !

Bonjour GMB, Bonjour Patrick,

Merci beaucoup à tous les deux de vous occuper de mon cas

Non en fait la macro ne fonctionne pas. Je te renvoie des exemples de fichier : les onglets Risques de mes deux fichiers qui commencent par SMI-DI devraient se consolider dans l'onglet Risques de mon fichier Consolidation quand je clique sur le bouton du premier onglet et donc avoir les lignes (AAA, BBB, CCC, DDD et EEE). Mais ça ne fonctionne pas, ça ne me récupère pas les informations du 2e fichier, et ça me récupère l'ensemble des lignes du 1er fichier, même celles qui sont vides (à cause des formules je crois...)

Je te remets les derniers fichiers pour exemple.

Merci de ton aide!

Lucie

23consolidation.xlsm (286.50 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

Ooooh oui oui oui ça m'a l'air parfait!

Merci beaucoup!

Du coup je vais essayer de refaire la même chose pour les autres onglets!

Mille mercis encore!

Lucie

Bonjour gmb,

J'aurais encore besoin de tes lumières sur vba... la construction des onglets consolidés fonctionne parfaitement, et j'ai réussi à reproduire ton code pour les deux onglets suivants. Maintenant j'aimerais rapatrier dans mon classeur Consolidation les onglets "Fiches Risques" tels quels de mes classeurs de base (en les nommant si c'est possible Fiches Risques DI1, Fiches Risques DI2...). Je n'y arrive pas, même en repartant de ton code (J'ai pas touché à vba depuis des années, c'est la cata...)

Merci de ton aide

Lucie

Bonjour

Nouvelle version :

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

Bye !

Merci de ta proposition!

En fait c'est la toute dernière feuille qui s'appelle "fiches risques" que j'essaye de récupérer pour les 1 à N fichiers que j'aurai à compiler (pas la feuille Risques, attention, nuance ). Du coup j'ai essayé de caser le code ci-dessous à la suite mais ça ne fonctionne pas... au secours (puisque je ne devrais pas pouvoir sélectionner la page au départ puisqu'elle n'existe pas encore dans mon fichier...) :

De plus, est-ce que tu sais si c'est possible de forcer le positionnement des onglets (à la suite de l'onglet Risques par exemple)?

Encore merci!!!

With Wbk.Sheets("Fiches risques")

.Range("A1:AA" & .[C65000].End(xlUp).Row + 1).ClearContents 'efface données

For i = 6 To NbC

NomFichier = Cells(i, 5)

Application.DisplayAlerts = False 'si déjà ouvert

Workbooks.Open Filename:=Chemin & NomFichier

'Application.DisplayAlerts = True

'--- action ---

Set w = ActiveWorkbook

w.Sheets("Fiches risques").Unprotect

nxNom = "Fiches risques " & Mid(w.Name, 5, InStr(1, w.Name, "MR-") - InStr(1, w.Name, "-D") - 2)

Wbk.Sheets.Add.Name = nxNom

w.Sheets("Fiches risques").Cells.Copy

Wbk.Sheets(nxNom).Range("A1").PasteSpecial xlPasteValues

Wbk.Sheets(nxNom).Range("A1").PasteSpecial xlPasteFormats

w.Sheets("Fiches risques").Protect

'w.Activate

w.Close False

Wbk.Sheets("Consolidation").Activate

Next i

End With

lucie3133 a écrit :

c'est la toute dernière feuille qui s'appelle "fiches risques" que j'essaye de récupérer

La toute dernière ? Elle s'appelle "Matrice" !

La macro récupère bien la feuille "Fiches risques" mais lui donne par erreur (mea culpa) le nom de "Fichiers DIx" au lieu de "Fiches DIx"

Nouvelle version :

OK ?

Bye !

Rechercher des sujets similaires à "consolidation classeurs"