VBA - actualisation à heure fixe

  • Initiateur de la discussion Initiateur de la discussion VDM
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

VDM

XLDnaute Nouveau
Bonjour,

A l'aide d'utilisateurs gentils du forum, j'ai pu faire une macro permettant d'actualiser (requete odbc) un fichier excel à heure donnée deux fois par jour, puis l'enregistrer et le fermer (pour ouvrir le fichier, je vais mettre en place une tache planifiée windows). Par contre j'ai un message d'erreur sur la macro que je ne comprends pas :

Voici ma macro initiale :

Private Sub Workbook_Open()
If Time >= TimeValue("12:45") And Time < TimeValue("12:46") _
Or Time >= TimeValue("16:45") And Time < TimeValue("16:46") Then
Sheets("TARIFS").Select
Range("B22").Select
ActiveSheet.PivotTables("Tableau croisé dynamique2").RefreshTable
Range("G20").Select
ActiveSheet.PivotTables("Tableau croisé dynamique3").RefreshTable
Range("M20").Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable
Sheets("Base Site Internet").Select
Range("B22").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
'le code pour actualiser
ThisWorkbook.Save 'enregistre les modifications
If Workbooks.Count > 1 Then ThisWorkbook.Close Else Application.Quit 'ferme le fichier ou Excel
End If
End Sub

Et le message d'erreur "instruction incorrecte à l'exterieur d'une procedure" ouvre cette macro en modifiant les heures :

If Time >= TimeValue("14:44") And Time < TimeValue("14:45") _
Or Time >= TimeValue("16:45") And Time < TimeValue("16:47") Then
'le code pour actualiser
ThisWorkbook.Save 'enregistre les modifications
If Workbooks.Count > 1 Then ThisWorkbook.Close Else Application.Quit 'ferme le fichier ou Excel
End If

("Time" est surligné)

Quelqu'un pourrait il m'aider sur ce problème ?

Merci pour vos réponses !
 
Re : VBA - actualisation à heure fixe

Bonsoir VDM,

Il te faut modifier ton code ainsi :

Code:
Private Sub Workbook_Open()
If Time >= [COLOR="Red"]CDate[/COLOR]("12:45") And Time < [COLOR="Red"]CDate[/COLOR]("12:46") _
Or Time >= [COLOR="Red"]CDate[/COLOR]("16:45") And Time < [COLOR="Red"]CDate[/COLOR]("16:46") Then
Sheets("TARIFS").Select
Range("B22").Select
ActiveSheet.PivotTables("Tableau croisé dynamique2").RefreshTable
Range("G20").Select
ActiveSheet.PivotTables("Tableau croisé dynamique3").RefreshTable
Range("M20").Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable
Sheets("Base Site Internet").Select
Range("B22").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
'le code pour actualiser
ThisWorkbook.Save 'enregistre les modifications
If Workbooks.Count > 1 Then ThisWorkbook.Close Else Application.Quit 'ferme le fichier ou Excel
End If
End Sub

Cordialement.
 
Dernière édition:
Re : VBA - actualisation à heure fixe

Bonjour,

Merci pour la réponse, par contre j'ai toujours le même message d'erreur (il remet aussi les "Time Value").

J'ai oublié de préciser que la macro est dans Thisworkbook, mais le message d'erreur, après Debogage pas à pas détaillé, apparait dans Useform1, je ne sais pas si ça a une incidence ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour