2 pièce(s) jointe(s)
Ouverture de fichier .xls posant problème
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 :
Pièce jointe 451312
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 :
Pièce jointe 451316.
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:
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. |
Code:
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")
'.... |
(Je m'excuse si ce n'est pas la manière la plus simple de "coder" ce que je veux faire !)
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 !