Macro et Exécution interrompue

Le
garnote
Bonjour,

Voici deux macros qui font la même chose.
La première doit écrire les nombres trouvés
dans la fenêtre d'exécution du VBE et la deuxième,
entrer ces mêmes nombres dans la colonne B.
Mais ne voilà t-il pas, câlice, qu'elles sont
interrompues une bonne dizaine de fois par
le message « Exécution interrompue » !!!
Je tape alors sur « Continuer » et effectivement,
elles continuent et je finis par obtenir
les nombres attendus. Ces nombres sont :
11, 17, 23, 27, 29, 35, 37, 41, 47 et 53.

Qu'est-ce qui cloche, mais qu'est-ce qui cloche ?
Je joins le tout petit document :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijOG5qdYw.xls


Sub Merger()
Set liste = Range("A2:A575")
For s = 5 To 100
x = Int(s / 2)
y = x - 1
For i = 2 To x
n = i * (s - i)
Set trouve = liste.Find(what:=n, lookat:=xlWhole)
If Not trouve Is Nothing Then m = m + 1
Next i
If m = y Then Debug.Print s
m = 0
Next s
End Sub

Sub Versif()
Set liste = Range("A2:A575")
Dim L()
For s = 5 To 100
x = Int(s / 2)
y = x - 1
For i = 2 To x
n = i * (s - i)
Set trouve = liste.Find(what:=n, lookat:=xlWhole)
If Not trouve Is Nothing Then m = m + 1
Next i
If m = y Then
j = j + 1
ReDim Preserve L(1 To j)
End If
m = 0
Next s
Range("B2").Resize(UBound(L)) = Application.Transpose(L)
End Sub

Serge
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #18717371
Bonjour.
Ca fonctionne sans problème chez moi.
Un petit reboot ?
Cordialement.
Daniel

Bonjour,

Voici deux macros qui font la même chose.
La première doit écrire les nombres trouvés
dans la fenêtre d'exécution du VBE et la deuxième,
entrer ces mêmes nombres dans la colonne B.
Mais ne voilà t-il pas, câlice, qu'elles sont
interrompues une bonne dizaine de fois par
le message « Exécution interrompue » !!!
Je tape alors sur « Continuer » et effectivement,
elles continuent et je finis par obtenir
les nombres attendus. Ces nombres sont :
11, 17, 23, 27, 29, 35, 37, 41, 47 et 53.

Qu'est-ce qui cloche, mais qu'est-ce qui cloche ?
Je joins le tout petit document :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijOG5qdYw.xls


Sub Merger()
Set liste = Range("A2:A575")
For s = 5 To 100
x = Int(s / 2)
y = x - 1
For i = 2 To x
n = i * (s - i)
Set trouve = liste.Find(what:=n, lookat:=xlWhole)
If Not trouve Is Nothing Then m = m + 1
Next i
If m = y Then Debug.Print s
m = 0
Next s
End Sub

Sub Versif()
Set liste = Range("A2:A575")
Dim L()
For s = 5 To 100
x = Int(s / 2)
y = x - 1
For i = 2 To x
n = i * (s - i)
Set trouve = liste.Find(what:=n, lookat:=xlWhole)
If Not trouve Is Nothing Then m = m + 1
Next i
If m = y Then
j = j + 1
ReDim Preserve L(1 To j)
End If
m = 0
Next s
Range("B2").Resize(UBound(L)) = Application.Transpose(L)
End Sub

Serge


garnote
Le #18720561
Bonjour,

Démarrer / Redémarrer et tout va bien ( pour le moment ! )
Quant à savoir pourquoi j'ai eu cette anomalie et pourquoi
le fait de rebooter la corrige, c'est pour moi un des grands
mystères de la vie ;-)))

Serge


"Daniel.C"
Bonjour.
Ca fonctionne sans problème chez moi.
Un petit reboot ?
Cordialement.
Daniel

Bonjour,

Voici deux macros qui font la même chose.
La première doit écrire les nombres trouvés
dans la fenêtre d'exécution du VBE et la deuxième,
entrer ces mêmes nombres dans la colonne B.
Mais ne voilà t-il pas, câlice, qu'elles sont
interrompues une bonne dizaine de fois par
le message « Exécution interrompue » !!!
Je tape alors sur « Continuer » et effectivement,
elles continuent et je finis par obtenir
les nombres attendus. Ces nombres sont :
11, 17, 23, 27, 29, 35, 37, 41, 47 et 53.

Qu'est-ce qui cloche, mais qu'est-ce qui cloche ?
Je joins le tout petit document :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijOG5qdYw.xls


Sub Merger()
Set liste = Range("A2:A575")
For s = 5 To 100
x = Int(s / 2)
y = x - 1
For i = 2 To x
n = i * (s - i)
Set trouve = liste.Find(what:=n, lookat:=xlWhole)
If Not trouve Is Nothing Then m = m + 1
Next i
If m = y Then Debug.Print s
m = 0
Next s
End Sub

Sub Versif()
Set liste = Range("A2:A575")
Dim L()
For s = 5 To 100
x = Int(s / 2)
y = x - 1
For i = 2 To x
n = i * (s - i)
Set trouve = liste.Find(what:=n, lookat:=xlWhole)
If Not trouve Is Nothing Then m = m + 1
Next i
If m = y Then
j = j + 1
ReDim Preserve L(1 To j)
End If
m = 0
Next s
Range("B2").Resize(UBound(L)) = Application.Transpose(L)
End Sub

Serge






Modeste
Le #18721021
"garnote"
Bonjour,

Démarrer / Redémarrer et tout va bien ( pour le moment ! )
Quant à savoir pourquoi j'ai eu cette anomalie et pourquoi
le fait de rebooter la corrige, c'est pour moi un des grands
mystères de la vie ;-)))



;o)))
quand tu bidouilles le code dans VBE, il faut réguliérement enregistrer ton ficher (Ctrl+S) (forcer la recompilation ????)
VBA est en principe recompilé à cet instant
Menu VBE Outils, Options, Général > Compilation : cocher les 2 cases

je ne compte plus les plantages violents , suite à d'innombrables modifications du code et exécution sans avoir enregistré !!!!
cela est encore plus flagrant sur la mise au point des USF,
Excel gère très, très, très...., mal la mémoire (notament en ce qui concernes les objets graphiques, charts, contrôles et dessins)
Publicité
Poster une réponse
Anonyme