Bonjour à tous,
J'ai un problème d'actualisation des données dans un classeur Excel.
Dans ce classeur j'ai 2 feuilles avec 2 connexions de données sur des tables SQL que je souhaite mettre à jour toutes les 5 minutes.
Dans 3 autres feuilles j'ai des tableaux de bord qui tournent avec des Application.Wait.
Mon problème est qu'à chaque fois que je veux raffraichir les données de mes connexions SQL (par ActiveWorkbook.RefreshAll), j'ai un message qui s'affiche : "Cette action va annuler une commande d'actualisation des données, voulez-vous continuer ? OUI/NON".
Tant que je ne clic par sur Oui ou Non le raffraissement des données ne s'effectue pas et la macro est en standby.
Voici mon code :
Option Explicit
Public NewTime As Double, intervalle As Double
Sub marche()
Dim i As Integer
Dim j As Integer
Application.DisplayFullScreen = True
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
Application.DisplayFormulaBar = False
For j = 1 To 31
For i = 1 To 4
Sheets("TAB BORD1").Activate
Application.Wait (Now + TimeValue("0:00:15"))
Sheets("TAB BORD2").Activate
Application.Wait (Now + TimeValue("0:00:07"))
Sheets("TAB BORD3").Activate
Application.Wait (Now + TimeValue("0:00:07"))
Next
ActiveWorkbook.RefreshAll
Next
intervalle = TimeValue("0:00:04")
NewTime = intervalle * (1 + Int(Now / intervalle))
Application.StatusBar = "Prochaine capture : " & Format(NewTime, "h:mm")
Application.OnTime NewTime, "Action"
End Sub
Sub Arret()
Application.OnTime NewTime, "Action", False
Application.StatusBar = "Arret capture : " & Format(NewTime, "h:mm")
End Sub
Sub Action()
Dim LastRow As Long
ThisWorkbook.Save
Sheets("brochesheures").Activate
With Sheets("brochesheures")
LastRow = Range("a36565").End(xlUp).Row
If Now > .Cells(LastRow, 1) Then
Beep
.Cells(LastRow + 1, 1) = Now
.Cells(LastRow + 1, 2) = Sheets("TAB BORD1").Range("V53")
Call marche
ThisWorkbook.Save
Beep
End If
End With
End Sub
Pouvez-vous m'aider svp ?
Merci d'avance pour votre aide précieuse
J'ai un problème d'actualisation des données dans un classeur Excel.
Dans ce classeur j'ai 2 feuilles avec 2 connexions de données sur des tables SQL que je souhaite mettre à jour toutes les 5 minutes.
Dans 3 autres feuilles j'ai des tableaux de bord qui tournent avec des Application.Wait.
Mon problème est qu'à chaque fois que je veux raffraichir les données de mes connexions SQL (par ActiveWorkbook.RefreshAll), j'ai un message qui s'affiche : "Cette action va annuler une commande d'actualisation des données, voulez-vous continuer ? OUI/NON".
Tant que je ne clic par sur Oui ou Non le raffraissement des données ne s'effectue pas et la macro est en standby.
Voici mon code :
Option Explicit
Public NewTime As Double, intervalle As Double
Sub marche()
Dim i As Integer
Dim j As Integer
Application.DisplayFullScreen = True
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
Application.DisplayFormulaBar = False
For j = 1 To 31
For i = 1 To 4
Sheets("TAB BORD1").Activate
Application.Wait (Now + TimeValue("0:00:15"))
Sheets("TAB BORD2").Activate
Application.Wait (Now + TimeValue("0:00:07"))
Sheets("TAB BORD3").Activate
Application.Wait (Now + TimeValue("0:00:07"))
Next
ActiveWorkbook.RefreshAll
Next
intervalle = TimeValue("0:00:04")
NewTime = intervalle * (1 + Int(Now / intervalle))
Application.StatusBar = "Prochaine capture : " & Format(NewTime, "h:mm")
Application.OnTime NewTime, "Action"
End Sub
Sub Arret()
Application.OnTime NewTime, "Action", False
Application.StatusBar = "Arret capture : " & Format(NewTime, "h:mm")
End Sub
Sub Action()
Dim LastRow As Long
ThisWorkbook.Save
Sheets("brochesheures").Activate
With Sheets("brochesheures")
LastRow = Range("a36565").End(xlUp).Row
If Now > .Cells(LastRow, 1) Then
Beep
.Cells(LastRow + 1, 1) = Now
.Cells(LastRow + 1, 2) = Sheets("TAB BORD1").Range("V53")
Call marche
ThisWorkbook.Save
Beep
End If
End With
End Sub
Pouvez-vous m'aider svp ?
Merci d'avance pour votre aide précieuse