Centralisation de données de 3 classeurs
Bonjour à tous,
J'ai beau chercher, je sèche complètement
Je crée un dashboard automatisé pour ma boite et souhaite compiler les données issues de 2 classeurs sur un 3ème.
Tous les traitements sont ok (test indépendants des macros) mais je n'arrive pas à:
- ouvrir un classeur depuis celui qui centralise
- traiter les données (ça c'est ok)
- copier
- revenir sur le classeur qui centralise
- coller
- répéter pour le dernier classeur
Pour info, les classeurs peuvent être dans des dossiers qui varient.
J'ai donc essayé:
1.
Dim Dashboard as Workbook
Set Dashboard = thisWorkbook
Dim données1 as Workbook
Workbooks.Open Application ....(ouvre une boite de dialogue pour sélectionner le fichier)
Set données1 = ThisWorkbook
Dim données2 as Workbook
Workbooks.Open Application ....
Set données2 = ThisWorkbook
2.
idem avec à la place de ThisWorkbook pour données1 et données2
ActiveWorkbook.Name = données1
ActiveWorkbook.Name = données2
Tout se passe bien jusqu'au moment ou la macro doit changer de classeur via un Workbooks(un-des-3-classeurs).Activate (avec ou sans le workbook)
Je ne vois vraiment pas comment résoudre cela, pourtant cela semble si simple !
Merci d'avance.
Cdt,
Julien
Bonjour
Il ne peut y avoir que ActiveWorkbook à la fois
Attention code fait de mémoire : Il y a surement des erreurs
Dim Dashboard as Workbook, données1 as Workbook
Set Dashboard = thisWorkbook
Workbooks.Open Fichier1
Set données1 = ActiveWorkbook
' ensuite tu copies tes données
'exemple
données1.Sheets(1).Range("A1:A10").Copy Dashboard.sheets("Récap").Range("A" & Ligne)
Ligne = Ligne +10
' Fermeture du fichier
données1.Close savechanges:=False
'
'
' Ensuite tu passes au 2ème fichier
Workbooks.Open Fichier2
Set données1 = ActiveWorkbook
' ensuite tu copies tes données
'exemple
données1.Sheets(2).Range("A1:A10").Copy Dashboard.sheets("Récap").Range("A" & Ligne)
' Fermeture du fichier
données1.Close savechanges:=FalsePour les points obscurs tu as l'aide
Génial, ça fonctionne parfaitement!
Pour info, pour enlever le message d'alerte du presse papier, j'ai juste ajouté:
application.displayalerts = false
avant la fermeture de chaque classeur puis
application.displayalerts = true
après (par sécurité)
une énorme MERCI, je t'offre ce café virtuel à défaut de mieux -> \_/