Dépassement de capacité quand Macro executée via OneTime
Bonjour à tous,
j'ai une macro qui fonctionnait bien jusqu’ à présent (même avec OneTime) mais depuis peu lorsqu'elle est exécutée automatiquement via OneTime ça m'affiche un Dépassement de capacité '6' alors que si je l’exécute manuellement ça fonctionne bien, j'ai bien essayé de remplacer "x = CLng(2000) * 365" par "x = CDbl(2000) * 365" comme j'ai pu voir sur des forums mais j'ai le même problème ,
Y aurait t'il quelqu'un qui pourrait éclairer ma lanterne s.v.p??
Merci!
Bonjour,
penses-tu réellement qu'il soit possible de t'aider avec si peu d'informations ?
au minimum mets-nous ton classeur, la description du problème ainsi que les instructions à suivre pour le reproduire.
Salut et merci pour ton retour,,
Effectivement c’était pas très détaillé...
Il s'agit en faite d'une succession de Macro qui fonctionne très bien lorsque je l’exécute manuellement mais mais si je veux programmer l’exécution avec Application.OneTime à une heure précise (ceux qui fonctionnait très bien auparavant) j'ai maintenant quasi systématiquement une erreur de Dépassement de capacité '6' , voici la macro qui plante :
Sub deleterow2()
Dim ws As Worksheet
Dim datetdac As Date
Dim acdat As Date
Dim day As Date
Dim dateconsigne As Date
Dim INFO_TS As Worksheet
Dim dernierapel As Date
Set INFO_TS = Sheets("INFO_TS")
Set ws = Sheets("Serial")
Application.StatusBar = True
Dim i As Integer
i = 3
Dim x As Long
x = CDbl(2000) * 365
DoEvents
While ws.Range("a" & i).Value <> ""
datetdac = ws.Range("o" & i).Value
dernierapel = CDate(ws.Range("q" & i).Value)
acdat = ws.Range("p" & i).Value
dateconsigne = ws.Range("ab" & i).Value
day = Now
If DateDiff("d", datetdac, day) < 3 And i > "2" Then
ws.Range("o" & i).EntireRow.Delete Shift:=xlUp
i = i - 2
End If
If DateDiff("d", acdat, day) < 3 And i > "2" Then
ws.Range("P" & i).EntireRow.Delete Shift:=xlUp
i = i - 2
End If
If DateDiff("d", dernierapel, day) < 3 And i > "2" Then
ws.Range("P" & i).EntireRow.Delete Shift:=xlUp
i = i - 2
End If
DoEvents
Application.StatusBar = "Progress: " & i & " "
i = i + 1
Wend
Call Consigne_en_cours
End Sub
il s'agit d'une macro qui va supprimé des lignes par rapport à des dates,
Salut et merci pour ton retour,,
Effectivement c’était pas très détaillé...
Il s'agit en faite d'une succession de Macro qui fonctionne très bien lorsque je l’exécute manuellement mais mais si je veux programmer l’exécution avec Application.OneTime à une heure précise (ce qui fonctionnait très bien auparavant) j'ai maintenant quasi systématiquement une erreur de Dépassement de capacité '6' , voici la macro qui plante :
Sub deleterow2()
Dim ws As Worksheet
Dim datetdac As Date
Dim acdat As Date
Dim day As Date
Dim dateconsigne As Date
Dim INFO_TS As Worksheet
Dim dernierapel As Date
Set INFO_TS = Sheets("INFO_TS")
Set ws = Sheets("Serial")
Application.StatusBar = True
Dim i As Integer
i = 3
Dim x As Long
x = CDbl(2000) * 365
DoEvents
While ws.Range("a" & i).Value <> ""
datetdac = ws.Range("o" & i).Value
dernierapel = CDate(ws.Range("q" & i).Value)
acdat = ws.Range("p" & i).Value
dateconsigne = ws.Range("ab" & i).Value
day = Now
If DateDiff("d", datetdac, day) < 3 And i > "2" Then
ws.Range("o" & i).EntireRow.Delete Shift:=xlUp
i = i - 2
End If
If DateDiff("d", acdat, day) < 3 And i > "2" Then
ws.Range("P" & i).EntireRow.Delete Shift:=xlUp
i = i - 2
End If
If DateDiff("d", dernierapel, day) < 3 And i > "2" Then
ws.Range("P" & i).EntireRow.Delete Shift:=xlUp
i = i - 2
End If
DoEvents
Application.StatusBar = "Progress: " & i & " "
i = i + 1
Wend
Call Consigne_en_cours
End Sub
il s'agit d'une macro qui va supprimé des lignes par rapport à des dates,
bonjour,
tu ne nous as pas mis ton fichier.
sans en savoir plus, je pense que tu as plus de 32767 lignes dans ta feuille. je remplacerais donc cette instruction
Dim i As Integer
par
Dim i As Long
pour info j'a finalement préféré contourné le problème , comme c’était une application temporisé que je lancé la veille pour qu'elle s’exécute le matin , j'ai choisi de ne plus passé par l'application OneTime mais de crée une tache planifié windows qui ouvre mon fichier à tel heure et grâce à une macro d'ouverture qui va lancé cette chaîne de macro c'est comme si je la lancé manuellement et je n'ai plus le problème de Dépassement de capacité, voila 8) ,
merci