Blocage exécution de macro sur instruction workbooks.open

alainbouvb Messages postés 3 Date d'inscription samedi 20 août 2005 Statut Membre Dernière intervention 22 août 2005 - 20 août 2005 à 23:10
alainbouvb Messages postés 3 Date d'inscription samedi 20 août 2005 Statut Membre Dernière intervention 22 août 2005 - 22 août 2005 à 20:02
Bonjour,



j'exécute une macro lancée à partir d'un premier fichier excel qui contient une liste de fichier à ouvrir.

Pour ce faire j'utilise la commande workbooks.open. Le fichier s'ouvre bien mais la macro reste bloquée.



Bizarrement, lorsque j'exécute la macro en mode debug, le blocage ne se produit pas.



Merci de m'aider à comprendre ce problème car la consultation des forums ne m'a pas permis de trouver une réponse.

5 réponses

thtdlx2 Messages postés 17 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 3 juillet 2008
20 août 2005 à 23:27
Est-ce que ça plante sur n'importe quel fichier que tu ouvres, où est-ce que ça plante sur un fichier particulier, toujours le même ? Si c'est le cas, est-ce que ce fichier n'aurait pas lui même du code dans la macro de démarrage Private Sub Workbook_Open() qui planterait ?
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
21 août 2005 à 00:53
Bonsoir,

Si tu montrais le code de ta macro, ce serait mieux pour t'aider.



jpleroisse
0
alainbouvb Messages postés 3 Date d'inscription samedi 20 août 2005 Statut Membre Dernière intervention 22 août 2005
21 août 2005 à 09:48
Bonjour,



Voila le code de la routine qui pose problème.

La procédure Lecture_Fichier_Traitement parcourt un fichier excel qui contient une liste de fichiers à traiter.

La colonne 1 indique le type du fichier déterminé par R, C ou D

La colonne 2 donne le répertoire du fichier

La colonne 3 donne le nom du fichier

La colonne 4 donne si besoin le nom de l'onglet à traiter.



Le procédure Lecture_Fichier_Conf effectue la lecture d'un fichier de type conférence.

Je constate bien l'affichage de AVANT OUVERTURE FICHIER, puis le
fichier s'ouvre effectivement dans le tableau excel, puis tout s'arrète
mais sans plantage. Je peux alors relancer la macro.

L'affichage de APRES OUVERTURE FICHIER ne se fait jamais.



Le problème se produit aussi sur d'autre fichier. En particulier, un
fichier de type R dont le traitement a été modifié par ajout des
lignes de debug mgsbox. Je constate l'affichage d'AVANT OUVERTURE ,
l'ouverture effective du fichier dans excel, mais pas d'affichage du
message d' APRES OUVERTURE.



Ce comportement est identique sur deux PC différents.



Sub Lecture_Fichier_Traitement()

Dim Fichier, Onglet As String

Dim Ligne As Integer



' Ouverture Fichier log

If MISE_AU_POINT Then

Fichier_Log = VBAProject.ThisWorkbook.Path & "" & "Excel.log"

Open Fichier_Log For Output As #1

Print #1, Date; "- "; Time; "Début fichier log"

End If



Ligne = 2

While (Cells(Ligne, 3).Value <> "")



Select Case Cells(Ligne, 1)

Case "R":

Fichier = Cells(Ligne, 2) & "" & Cells(Ligne, 3)

Call Lecture_Fichier_Routage(Fichier)

Case "D":

Fichier = Cells(Ligne, 2) & "" & Cells(Ligne, 3)

Onglet = Cells(Ligne, 4)

Call Traitement_Fichier_DimInfra(Fichier, Onglet)

Case "C":

Fichier = Cells(Ligne, 2) & "" & Cells(Ligne, 3)

Call Lecture_Fichier_Conf(Fichier)

End Select

Ligne = Ligne + 1

Wend



' Fermeture fichier Log

If MISE_AU_POINT Then Print #1, Date; "- "; Time; "Fin fichier log"

Close #1

End Sub





Sub Lecture_Fichier_Conf(ByVal Fichier As String)

Dim Colonne, Ligne, Nb_Conf, Site_Nb, Site_Cou, CR(1 To Nb_Site_Max), RR(1 To Nb_Site_Max), RF As Integer

Dim Alias, Site As String

Dim ARRET As Boolean



Application.DisplayAlerts = True

InputBox "AVANT OUVERTURE FICHIER"

Workbooks.Open Filename:=Fichier, UpdateLinks:=False, ReadOnly:=True

InputBox "APRES OUVERTURE FICHIER"

If MISE_AU_POINT Then Print #1, Date; "- "; Time; "TRAITEMENT FICHIER " & Fichier

GoTo FIN



' TRAITEMENTS EFFECTUES DANS LE FICHIER A PRIORI PAS UTILE POUR LE FORUM



FIN:

Workbooks.Close



End Sub
0
Tuning Max Messages postés 314 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 31 août 2006 1
22 août 2005 à 11:34
Je veux bien essayer de t'aider, mais si tu ne nous donne pas la procédure complète, ça va être difficile. Surtout que dans le code que tu as fournis, il manque justement ta fonction pour le traitement des fichiers de type "R"

Call Lecture_Fichier_Routage(Fichier)

par ailleurs ta variable "MISE_AU_POINT" correspond à quoi?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alainbouvb Messages postés 3 Date d'inscription samedi 20 août 2005 Statut Membre Dernière intervention 22 août 2005
22 août 2005 à 20:02
Bonjour,



en fait, j'ai modifié légèrement le code et le problème a complétement
disparu. C'est assez mystérieurx, et j'espère ne pas retomber dans un
nouveau cas de blocage.



J'utilise un booléan debug qui me permet d'instrumenter le code en
phase de mise au point par écriture dans un fichier texte. Quand le
programme tourne je passe la variable à faux mais si lors d'une mise à
jour ou le traitement d'un fichier compliqué je constate des problèmes,
je réactive l'écriture dans le fichier en passant debug à vrai.



Je vous remerci tous d'avoir passé du temps pour m'aider à résoudre mon problème.



Cordialement.
0
Rejoignez-nous