Eviter bug macro si fichier introuvable

Niouf

XLDnaute Occasionnel
Bonjour le forum,

J'utilise le code suivant pour ouvrir des fichiers selon la valeur d'une cellule :
Code:
Dim Cell As Range
      For Each Cell In Range("D7:D12")
          Workbooks.Open "LIEN" & Cell.Value & ".xlsx"
       On Error Resume Next
      Next Cell

J'aimerai contourner l'erreur lorsque le fichier n'existent pas.
PAr exemple, le fichier correspond à la valeur de la cellule 1 s'ouvre, celui de la cellule 2 n'existe pas, la macro saute cette partie et ouvre le fichier correspondant à la valeur de la cellule 3, etc ...

Merci à celui ou celle qui me mettra sur la piste ! :D
 

Lord Nelson

XLDnaute Occasionnel
Re : Eviter bug macro si fichier introuvable

Bonsoir tous,

A mon avis, il est préférable de ne pas mettre le "On Error" dans la boucle mais plutôt dans la zone de déclaration :

Code:
Dim Cell As Range
On Error Resume Next

      For Each Cell In Range("D7:D12")
          Workbooks.Open "LIEN" & Cell.Value & ".xlsx"
      Next Cell

A+
H
 

Niouf

XLDnaute Occasionnel
Re : Eviter bug macro si fichier introuvable

Merci !

Ca fonctionne dans les deux cas, et je rencontre le meme "problème" lors de l'ouverture du fichier. Lorsqu'il me demande si je veux mettre à jour les liaisons, cela stop ma macro le temps de cliquer sur mise à jour.
Il a moyen de shunter ceci ? Afin de rendre la macro totalement autonome ...
 

Lord Nelson

XLDnaute Occasionnel
Re : Eviter bug macro si fichier introuvable

Tu peux essayer ceci :

Code:
Dim Cell As Range
On Error Resume Next

      Application.DisplayAlerts = False
      For Each Cell In Range("D7:D12")
          Workbooks.Open "LIEN" & Cell.Value & ".xlsx"
      Next Cell
      Application.DisplayAlerts = True

Ceci désactive l'affichage des alertes pendant les ouvertures de fichiers et rétablit le fonctionnement habituel d'Excel après la boucle.
 

Niouf

XLDnaute Occasionnel
Re : Eviter bug macro si fichier introuvable

Alors, ce code supplémentaire ne m'affiche plus de message lorsque le fichier est introuvable : nickel pour ce point :)

Par contre il me demande toujours pour la mise à jour ...
En cherchant sur internet j'ai trouvé cette possibilité : désactiver dans les options avancées "Mettre à jour les liaisons vers d'autres documents" . Mais rien n'y fait, l'option est cochée systématiquement à l'ouverture du fichier .
 

Roland_M

XLDnaute Barbatruc
Re : Eviter bug macro si fichier introuvable

Bonjour,

essayer comme ceci !

Code:
Sub Essai()
Dim Cell As Range
For Each Cell In Range("D7:D12")
    F$ = "LIEN" & Cell.Value & ".xlsx": If Dir(F$) > "" Then Workbooks.Open F$
Next Cell
End Sub
 
Dernière édition:

Niouf

XLDnaute Occasionnel
Re : Eviter bug macro si fichier introuvable

Salut :)

Toujours meme problème, la mise à jour des liens ^^
J'ai rajouté Application.DisplayAlerts = False pour ignorer les messages quand le fichier n'existe pas .
Mais je me retrouve au meme point qu'avant ...

Code:
Sub Test()

With Sheets("Travail")

   Dim Cell As Range
   On Error Resume Next
   Application.DisplayAlerts = False

    For Each Cell In Range("D7:D13")
    Lien" & Cell.Value & ".xlsx"
    F$ = "Lien" & Cell.Value & ".xlsx": If Dir(F$) > "" Then Workbooks.Open F$

    Next Cell
      
End With
      
End Sub
 

Roland_M

XLDnaute Barbatruc
Re : Eviter bug macro si fichier introuvable

re

il y a une erreur, que fais ceci dans ton code ?

Lien" & Cell.Value & ".xlsx"

c'est:
Code:
For Each Cell In Range("D7:D13")
      F$ = "Lien" & Cell.Value & ".xlsx": If Dir(F$) > "" Then Workbooks.Open F$
 Next Cell
 

Lord Nelson

XLDnaute Occasionnel
Re : Eviter bug macro si fichier introuvable

Trouvé dans l'aide de Workbooks.open :

Code:
Vous pouvez spécifier l’une des valeurs suivantes dans le paramètre UpDateLinks pour déterminer si les références externes (liens) sont mises à jour à l’ouverture du classeur :

Valeur Signification 
0 Les références externes (liens) ne sont pas mises à jour à l’ouverture du classeur. 
3 Les références externes (liens) sont mises à jour à l’ouverture du classeur.

J'ai testé avec
Workbooks.Open F$, 0
ou, au choix
Workbooks.Open F$, 3

A+
H
 

Niouf

XLDnaute Occasionnel
Re : Eviter bug macro si fichier introuvable

Ecoutes j'ai toujours ce fameux message ...

Code:
Sub Macro3()

With Sheets("Travail")

   Dim Cell As Range
   On Error Resume Next
   Application.DisplayAlerts = False

For Each Cell In Range("D7:D13")
'Workbooks.Open "LIEN" & Cell.Value & ".xlsx"
F$ = "LIEN" & Cell.Value & ".xlsx": If Dir(F$) > "" Then Workbooks.Open F$
Workbooks.Open F$, 0

Next Cell
      
End With
        
End Sub
 

Pièces jointes

  • gfdeq.jpg
    gfdeq.jpg
    23.4 KB · Affichages: 31

Lord Nelson

XLDnaute Occasionnel
Re : Eviter bug macro si fichier introuvable

Essayes comme ça :

Code:
Sub Macro3()
With Sheets("Travail")

   Dim Cell As Range
   Dim F$ As String
   On Error Resume Next
   Application.DisplayAlerts = False

   For Each Cell In Range("D7:D13")
      F$ = "LIEN" & Cell.Value & ".xlsx": If Dir(F$) > "" Then Workbooks.Open F$, 0
   Next Cell
   Application.DisplayAlerts = True  
End With
       
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Re : Eviter bug macro si fichier introuvable

Bonjour Niouf, le Forum

Il faut faire comme ceci

Code:
Sub TEST()
Dim Cell As Range

On Error GoTo Fin
With Sheets("Travail")
For Each Cell In Range("D7:D13")
'Workbooks.Open "LIEN" & Cell.Value & ".xlsx"
F$ = "LIEN" & Cell.Value & ".xlsx": If Dir(F$) > "" Then Workbooks.Open F$
Workbooks.Open F$, 0
Next Cell   
End With
Fin:
Exit sub
End Sub


A+ :cool:
 

Discussions similaires

Réponses
1
Affichages
196
Réponses
0
Affichages
177

Statistiques des forums

Discussions
312 497
Messages
2 088 984
Membres
103 998
dernier inscrit
Gotteland