gros probleme avec Application.DisplayAlerts le programme revient au début du code ??

jojo2006

XLDnaute Occasionnel
Bonjour à tous,

voila j'ai une chose étrange qui se produit lors de l'execution de mon programme.

mon code est constituer en gros de la manière suivante


j'ouvre et traite un fichier X

Application.DisplayAlerts = false

j'enregistre à l'adresse de X

ActiveWindow.Close

Application.DisplayAlerts = True



j'ouvre et traite un fichier Y

Application.DisplayAlerts = false

j'enregistre à l'adresse de Y

ActiveWindow.Close

Application.DisplayAlerts = True



et ainsi de suite sur plusieurs fichiers et lorsque j'arrive au traitement d'un nouveau fichier par exemple le fichier Z



j'ouvre et traite un fichier Z

Application.DisplayAlerts = false

j'enregistre à l'adresse de Z


Et là!!!

à cet endroit j'ai un retour à la ligne Application.DisplayAlerts = false associé au fichier X (autrement dit le programme continue à partir de d'une ligne situé au dessus et donc le fichier Z s'enregistre à l'adresse de X et les fichier Y (et les autres) se font traité une 2 ème fois), bref le bazar complet


ActiveWindow.Close

Application.DisplayAlerts = True




Ma question est pourquoi ce retour "étrange" en arrière ???

Pour info je mets Application.DisplayAlerts = false puis true pour pas que les messages embetent l'utilisateur (c indispensable).


merci bcp à tous de m'aider.

bonne journée
 

porcinet82

XLDnaute Barbatruc
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du code ??

Salut,

As-tu essayer de mettre une seule fois Application.DisplayAlerts = False au début et Application.DisplayAlerts = True à la fin de ton code, meme si je ne pense pas que le problème vienne de la.

Sinon, peut etre que ton code serai plus parlant.

@+
 

Pierrot93

XLDnaute Barbatruc
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du code ??

Bonjour Jojo, Romain

petite question idiote sans doute, pourquoi :

Code:
ActiveWindow.Close

plutôt que :

Code:
ActiveWorkbook.Close

tu travailles avec plusieurs fenêtre ouvertes du même classeur ?

bon après midi
@+
 

pierrejean

XLDnaute Barbatruc
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du code ??

bonjour a tous

ma reaction:

pourquoi suspecter les DisplayAlerts plutot qu'autre chose !!!

a mon sens ces lignes sont certainement innocentes !!!

est-il possible d'avoir le code complet ??
 

jojo2006

XLDnaute Occasionnel
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du code ??

bonjour,

merci de répondre.

donc je viens d'essayé avec Application.DisplayAlerts = false

puis Application.DisplayAlerts = true à la fin de mon code.


le retour se fait encore mais je viens de remarqué l'endroit ou il vient se repositionné, c'est en fait une étiquette appelée " fin7:"

voici un exemple de mon code.


Workbooks.Open filename:="" & lienfichierX & ".xls"




'recherche date d'ouverture,
j = 12
Do While Cells(6, j).Value <> date_ouverture

On Error GoTo fin7:
j = j + 1
Loop


'date ouverture
Cells(i, 10) = date_ouverture


'on place

Cells(i, 5).Value = "A déterminer"
Cells(i, j).Value = "ORi"
Cells(i, j + 5).Value = "P"
Cells(i, j + 10).Value = "Coco"
Cells(i, j + 15).Value = "tata"

'le type d'incident

If type_incident = "X km" Then Cells(i, 1) = "R"
If type_incident = "Log" Then Cells(i, 1) = "L"
If type_incident = "G" Then Cells(i, 1) = "RG"



fin7:


'on ferme le fichier en sauvegardant



ActiveWorkbook.SaveAs filename:= _
"" & lienfichierX & ".xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False

ActiveWindow.Close





Workbooks.Open filename:="" & lienfichierZ & ".xls"


ici on fait des opérations sur le fichier Z

MkDir "" & rep & client & "\Réclamations\" & annee & "\0" & n_Rec & " - " & inc

ActiveWorkbook.SaveAs filename:= _
"" & lienfichierZ & ".xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False

'la ou est le bug et revient à la ligne fin7:

ActiveWindow.Close



Merci pour votre aide
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du code ??

Re, bonjour PierreJean

essaye peut être comme ceci :

Code:
ActiveWorkbook.Close True, lienfichierZ & ".xls"

au lieu de :

Code:
ActiveWorkbook.SaveAs filename:= _
"" & lienfichierZ & ".xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False

ActiveWindow.Close


@+
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du co

Bonjour

il faut bien comprendre une chose c'est que tant que tu n'as pas annulé ton error goto fin7 par error goto 0 il est toujours actif

Donc si tu as une erreur même après il ira en fin7

donc perso je mettrai un on error goto 0 en debut de fin7 histoire d'arreter le rpocessus d'erreur

sinon le problème vient peut-être d'un problème de changemetn de lecteur pour le dernier fichier.
 

pierrejean

XLDnaute Barbatruc
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du co

bonjour

pour ma part je suis plus radical

je n'emploie le on error que lorsque je sais quelle ligne est susceptible de generer une erreur

les tests de variable ,de cellule .... sont suffisamment nombreux pour eviter la gestion d'erreur qui est complexe voire tres complexe

je procederais donc de la façon suivante :
oter le on error ,oter le fin 7
tester pour savoir ou est l'erreur
et reprendre le code pour traiter l'erreur en question

mais bien evidemment je ne suis pas forcement un modèle (ça se saurait LOL)
 

porcinet82

XLDnaute Barbatruc
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du code ??

Bonjour a tous,

Juste pour dire que je suis entièrement d'accord avec Pierrejean. À vouloir masquer les erreurs plutot que leur trouver une solution, on ne sais plus ce qui pose problème...

@+
 

jojo2006

XLDnaute Occasionnel
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du code ??

rebonjour à tous,

effectivement en enlever "on error", j'obtient un message d'erreur 1004 qui me dit
que excel ne peut acceder au fichier et que soit:

le fichier est ouvert par une autre appli
le nom du fichier ou le lien n'existe pas.

Je dois encore creusé mais j'avoue que je ne savais pas que le "on error" restait actif et n'ai pas tilté de suite que la ligne de renvoie correspondait à "fin7:"

Donc merci pour l'info je creuse et je vous tiens au courant.
 

jojo2006

XLDnaute Occasionnel
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du code ??

salut pascal,

j'ai oublier de demander pourquoi tu parle de changement de lecteur.

Qu'est que cela veut dire par "lecteur"??

Merci pour ta réponse.

PS: je ne suis pas la pdt une semaine, dc si je ne répond pas, ce n'est pas que je ne suis pas le fil.

bon week end à tous
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du co

Re

Je me disais que peut-être tu voulais enregistrer sur un lecteur reseau ou autre et par moment il faut faire la manip en 2 étapes

Mais ce n'etait qu'une idée
 

jojo2006

XLDnaute Occasionnel
Re : gros probleme avec Application.DisplayAlerts le programme revient au début du code ??

slt,

mais oui effectivement les fichiers sont ouvert et enregistrer sur un reseau,

mais en fait j'ai l'impression que lorsque les chemins sont trop long, excel fait des erreurs mais ce n'est pas tout le temps.

C possible??

merci
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87