Importer des données d'un classeur à un autre
Bonjour tout le monde,
Etant complètement débutant sous excel, je cherche depuis deux trois jours à écrire des macro en VBA.
J'ai trouvé mon bonheur sur votre site à savoir une introduction et quelques bases qui m'ont aidé à comprendre le principe du code et ses possiblités d'utilisation.
En fait mon problème est assez complexe, et je n'ai pas réussi à trouver la réponse sur vos forums, malgré les différents posts à ce sujet. J'ai essayé de copier plusieurs codes, les décortiquer un peu, les adapter, faire des fichiers types pour m'exercer... et finalement.... pas de grands avancements...
Mon problème est le suivant, je veux résumer dans un classeur plusieurs données qui proviennent d'un répertoire ou tous les fichiers de celui-ci sont identiques en format (tableau de données identiques, même colones, mêmes lignes) avec des valeurs différentes. Disons, résumer un suivi de production journalière.
J'ai cru comprendre que si les fichiers sont nommés par date, on arriverait apparemment pas à les "appeler" correctement dans la macro. Dans mon cas, je peux les appeler SIC1, SIC2, SIC3 etc... pour que ce soit plus simple.
Chaque jour j'addicione dans mon répertoire un fichier SIC, et j'aimerais que le fichier "resume" me donne les valeurs importantes de chaque fichier SIC.
J'ai compris qu'il fallait que je fasse une boucle, qu'elle prenne en compte un nombre indéfini de fichiers puisqu'il y en aura chaque jours un nouveau, mais disons que.... j'en suis encore loin.
Pour l'instant j'ai essayé de bidouiller une base pour prendre les valeurs qui m'interressent (à savoir juste un fichier "SIC1" et un fichier "resume"...) mais je ne comprends pas "L'erreur 9" qui apparait... Je n'ai aucune idée de comment faire la boucle ensuite pour appeler Tous les fichiers SIC existents et rassembler leurs valeurs dans resume.
Es-ce que quelqu'un pourrait m'aider? je vous en remercie d'avance.
Voici ce que j'ai tapé après plusieurs tentatives:
Sub Import()
Application.ScreenUpdating = 0
Workbooks.Open Filename:=ThisWorkbook.Path & "\SIC1.xls"
Range("D12:G12").Copy
Windows("resume.xls").Activate
Range("D2:G2").Select
ActiveSheet.Paste
Windows("SIC1.xls").Activate
Range("D2").Copy
Windows("resume.xls").Activate
Range("C2").Select
ActiveSheet.Paste
Windows("SIC1.xls").Activate
Range("L9").Copy
Windows("resume.xls").Activate
Range("H2").Select
ActiveSheet.Paste
Application.DisplayAlerts = 0
Windows("SIC1.xls").Activate
ActiveWindow.Close
Application.ScreenUpdating = 1
End Sub
Merci encore....
Salut,
Ci-joint ton fichier resum qui reprend à chaque fois les données de SIC1, SIC2....
Le principe :
Appuyer sur le bouton
Sélectionner les fichiers à traiter (exemple : SIC1,SIC2....)
La macro boucle sur les différents fichiers à traiter et incorpore dans le fichier resum les données que tu souhaitais (cellule D12:H12)
Est ce que ça te convient?
A +
Alexandre
Merci beaucoup Alexandre, c'est exactement ça. Au final ce n'est pas mal du tout de pouvoir choisir les fichiers, ça permet de trier un peu plus au besoin!
Par contre je t'avouerai que le code est bien plus complexe que je ne l'imaginais. Merci d'avoir mis quelques indications, je vais pouvoir m'attarder un peu dessus.
Je vais juste essayer maintenant d'ajouter la date, ça sera... le défi du week-end!!
Merci, et bonne continuation a toi!
@+
n'hésites pas à me demander si tu as d'autres besoins.
A +
Alexandre