Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 !
 

R@chid

XLDnaute Barbatruc
Re : Eviter bug macro si fichier introuvable

Bonjour,
as-tu essayé comme suit :
Code:
Dim Cell As Range
      For Each Cell In Range("D7:D12")
       On Error Resume Next
          Workbooks.Open "LIEN" & Cell.Value & ".xlsx"       
      Next Cell


@ + +
 

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
    23.4 KB · Affichages: 32

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+
 

Niouf

XLDnaute Occasionnel
Re : Eviter bug macro si fichier introuvable

J'ai essayé vos deux codes !

Celui de Lord Nelson fonctionne à merveille : plus aucune fenetre n'apparait, la macro ne stop plus : NICKEl

Merci à vous !
 

Discussions similaires

Réponses
1
Affichages
222
Réponses
0
Affichages
196
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…