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

Rechercher des sujets similaires à "depassement capacite quand macro executee via onetime"