Bonjour à toutes et à tous !
Je ne suis pas encore très doué en VB mais je progresse. Alors voilà, j'ai écrit deux macros qui fonctionnent toutes les deux. C'est plutôt rassurant, mais c'est au moment de les "combiner" qu’apparaît mon "problème".
Ma première macro, (nous allons l'appeler "TéléchargementNouvelleExtraction") se connecte à mon compte sur un site web, et va extraire un fichier spécifique en fonction des données rentrées dans le formulaire. Lors du téléchargement de ce fichier j'utilise l'option : enregistrer et ouvrir :
Ma seconde macro (nous allons l'appeler "RemplissageAutomatique")se charge de copier des données dans ce nouveau fichier .xls qui est censé s'enregistrer s'ouvrir, puis colle les données dans le fichier principal. Ce fichier .xls peut prendre différents noms en fonction du nombre de téléchargements. Même si les données sont complètement différentes celui-ci gardera la même nomenclature mais s’incrémentera de 1, exemple :
.
J'utilise donc l'application "ActiveWorkbook" pour récupérer les données du classeur qui vient d'être ouvert.
Le problème arrive à la fin du code de la macro "TéléchargementNouvelleExtraction" : le fichier .xls nouvellement téléchargé ne s'ouvre qu'une fois le code terminé. L'appel de ma macro "RemplissageAutomatique" se fait alors sur le mauvais fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 'EXTRAIT DE LA FIN DE LA MACRO "TéléchargementNouvelleExtraction" 'Enregistrement et ouverture du fichier SendKeys ("{ENTER}") Application.Wait (Now + TimeValue("00:00:02")) RetVal = Shell("Taskkill /im iexplore.exe /f", 0) End Call remplissageauto End Sub 'L'ouverture du excel se fait a ce moment la.(Je m'excuse si ce n'est pas la manière la plus simple de "coder" ce que je veux faire !)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub remplissageauto() nom = ActiveWorkbook.Name Workbooks(nom).Worksheets("Planif. des contrôles").Activate Range("A8:O2000").Select Selection.Copy Windows("Plannification controle réglementaire ASCENSEURS.xlsm").Activate ActiveSheet.Paste Range("A8:O2000") '....
Y a-t-il un moyen pour ouvrir ce Excel avant la fin du programme ? Ou de lancer ma deuxième macro a la suite de la première ? Merci d'avance !
Partager