Bonjour,
Peut-on actualiser un classeur fermé qui contient des données externes?
sans l'ouvrir bien sûr.
Bonjour,
Peut-on actualiser un classeur fermé qui contient des données externes?
sans l'ouvrir bien sûr.
Pour l'actualiser il faudra l'ouvrir.
En quoi ca te genes de l'ouvrir?
En fait, moi ce que je cherche c'est de faire une tâche planifiée, qui va récupérer à un instant (T) des données dans le classeur après que ce dernier soit actualisé,
ces données seront inclus dans un mail (outlook).
Il faudra que l'application, appelée par les taches planifiées, ouvre le fichier excel (de façon visible ou pas), fasse une mise a jour et l'enregistre
c'est a toi de la faire.
Que pensais tu lancer a l'execution de la tache planifiée?
quand la tâche planifiée est éxécutée par exemple:
étape 1: ouverture du fichier excel, actualiser le fichier et l'enregistrer.
étape2: récupération des valeurs de certaines cellules
étape 3: création d'un mail où ces valeurs sont incluses
étape 4 : envoi du mail à une adresse spécifique.
voilà!
Comme ca, ca me parait correct![]()
Je m'y attendais pas à recevoir une telle réponse de jérôme mais bon.
Je suis coincé là, t'as une idée de départ, je suis dans le désarroi là.
code a mettre dans l'evenement open d'un classeur que tu lanceras avec les taches planifiées
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
17
18
19 Dim App As New Excel.Application Dim wrk As Workbook App.Visible = False Set wrk = App.Workbooks.Open("d:\FichierDonnées.xls") wrk.Sheets("donnees").Select App.Selection.QueryTable.Connection = App.Selection.QueryTable.Connection & ";pwd=password" App.Selection.QueryTable.Refresh BackgroundQuery:=False '... Code generant le mail wrk.Close True App.Quit
Jérôme cette partie du code, elle marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 App.Selection.QueryTable.Connection = App.Selection.QueryTable.Connection & ";pwd=password" App.Selection.QueryTable.Refresh BackgroundQuery:=False
en fait quand le fichier sera ouvert, toutes les querytable de toutes les feuilles du classeur doivent être mis à jour.
Question bete, mais as tu remplacé password par ton mot de passe.
Et si tu es en connexion approuvé, tu n'as pas besoin de la premiere ligne
ce n'est pas une question bête loin de là.
je suis en connexion approuvée mais ça marche pas
et j'ai enlevé la première ligne![]()
Peux tu envoyer ton code et la ligne qui pose probleme
c cette ligne qui génère l'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part App.Selection.QueryTable.Refresh BackgroundQuery:=False
erreur d'exécution 1004 "erreur définie par l'application ou l'objet"
voilà le code
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 sub fff () Dim App As New Excel.Application Dim wrk As Workbook App.Visible = False Set wrk = App.Workbooks.Open("....") wrk.Sheets("Feuil1").Select App.Selection.QueryTable.Refresh BackgroundQuery:=False wrk.Close True App.Quit End sub
regardes si en lancant un enregistreur de macro sur le clic droit mise a jour des données, le code généré est identique au mien (querytable)
Peut être y a t'il une différence dans le cas d'une connexion approuvée
j'ai enlevé App de ce code ("ya plus d'erreur")
Code : Sélectionner tout - Visualiser dans une fenêtre à part App.Selection.QueryTable.Refresh BackgroundQuery:=False
par contre le classeur ne se ferme pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part App.Selection.QueryTable.Refresh BackgroundQuery:=False
normalement ,le querytable ne fonctionne pas si tu retires le app(au niveau de la macro) car le classeur wrk est ouvert dans app.
Si tu lance queytable sans app ca met a jour le classeur de lancement
Partager