Ca tourne en boucle

Bonjour à toute la communauté !

J'ai un fichier qui fonctionnait bien et que je complète de temps à autre par des boites de dialogue me servant de masques de saisie et me permettant d'abonder une base de données.

Sauf que depuis il y a "quelque chose" qui tourne en boucle et que je n'arrive pas à détecter.

La conséquence est que pour pouvoir avancer, je suis obligé de taper sur la touche "Echap" pour passer éventuellement d'un contrôle à un autre mais bien entendu, ça ne fonctionne pas !

ce qui est troublant, c'est que lorsque je n'ai aucune boite de dialogue ouverte, que je suis simplement positionné sur une cellule, Excel tourne toujours en boucle.

Si je fais "Echap", il s'arrête, puis quelques secondes plus tard, il repart !

Est-ce que quelqu'un saurait comment chasser ce fantôme ?

merci d'avance et bonnes vacances à ceux qui le sont encore et bon courage à ceux qui ont repris !

Raph

Bonjour,

Sans fichier, sans code, bref sans élément, je pense que c'est impossible de vous aider...

Bonjour Pedro22,

Je m'en doutais un peu, mais il m'est très difficile de faire passer le fichier !

Parce qu'il y a 2 fichiers lourds (plus de 6 MO chacun) l'un est une base de donnée l'autre sa gestion et c'est ce 2ème qui me pose des problèmes.

si je peux faire un extrait de la base de donnée, je ne peux pas sur l'autre, ne sachant pas ce qui "ranconne" (comme on dit chez moi !)

ce que j'attendais comme réponse, si c'est possible, c'est plus une "philosophie", une piste de recherche ou peut-être une simple fonction qui mettrait le doit sur la boucle, me permettant de l'identifier et de la corriger.

merci d'avance pour ta compréhension.

Bonjour,

Je penches sur :

1- une longueur du recalcul automatique de la (des) feuille(s) de ce classeur. A essayer :

Private Sub Worksheet_Calculate()
    Stop
End Sub

2- L'enregistrement automatique. Pour connaitre l'intervalle de temps (entre 1 minute et 2 heures) :

Sub Combien()
    MsgBox "Fichier enregistré toutes les : " & Application.AutoRecover.Time & " minutes."
End Sub

Bonjour Pijaku,

merci d'avoir pris le temps de me répondre.

j'ai testé la première macro en l'incluant dans la feuille sur laquelle je travaille, par un simple copier collé et j'ai fermé le "visual basic"

mon fichier passe automatiquement en mode débogage sans même que je lance la moindre macro !

Il rouvre visual basic et s'arrête sur le mot "stop". Je n'ai eu comme seul porte de sortie que de remplacer stop par "end". et ma feuille de calcul reprends son gentil ronronnement à tourner en boucle !

Quand au 2ème point que tu me proposes, il m'indique un enregistrement toutes les 5 mn.

J'en suis rendu au point de départ.

merci encore et bonne journée.

raph.

Bonjour,

Ne pouvant tester, je travaille à l'aveugle...

Je n'ai jamais tenté cela, mais peut-être que l'on peut calculer la durée du recalcul auto.

Essaye ceci :

Dim t As Single

Private Sub Worksheet_Calculate()
    MsgBox Timer - t
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    t = Timer
    Application.Calculate
    Application.Run ("Feuil1.Worksheet_Calculate")
End Sub

1- copie colle ce code dans le module de la feuille ou tu as le plus de formules complexes

2- sélectionne une cellule au hasard et dis nous le résultat

Je n'y crois pas trop mais...

Pijaku,

j'ai copié collé tes codes dans ma feuille.

il étaient à peine collés que t a été égal à plus de 54000 itérations.

et difficile du coup de sortir de la boucle sauf à bloquer la touche échap quelques seconde pour accéder au débogage.

mais qu'est-ce qui pourrait bien faire tourner en cache cette feuille de calcul ?

t a été égal à plus de 54000 itérations

Non. Pas des itérations. t = Timer, soit un nombre, le nombre de secondes écoulées depuis minuit.

difficile du coup de sortir de la boucle

Qu'elle boucle.
Il n'y en a pas dans mon code...

mais qu'est-ce qui pourrait bien faire tourner en cache cette feuille de calcul ?

Sans classeur, on n'y arrivera pas...

Pijaku,

j'avais compris qu'il s'agissait d'itérations ! (ça témoigne de mon niveau !)

bref, la boite n'en finit pas de s'afficher ! je clique sur OK et elle revient tout de suite en affichant effectivement des secondes supplémentaires ! d'ou la "boucle" dont je parle !

je viens de tenter un truc mais sans succès : je me suis dit qu'il devait y avoir quelque part une boucle "sub ... end sub" qui devait démarrer toute seule mais certainement pas sans raison.

alors j'ai recherché tous les "sub" et la ligne en dessous j'ai inséré un "Stop" (au minimum une centaine)

j'ai fait jouer mon fichier, mais ... il s'est remis à tourner en boucle sans trouver aucun "stop" !

Je vais essayer de te faire passer mon fichier mais il est gros et comme il y a très longtemps que je travaille dessus , il n'est pas très propre.

A+

Rechercher des sujets similaires à "tourne boucle"