Macro: Si source n'existe pas - Annuler application sans faire bugger la Macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

hellocarioca

XLDnaute Occasionnel
Bonjour,

j'ai une macro qui ouvre plusieurs dossiers avec pour reference un code et une date. Le code correspondant à une personne.
Le problème c qu'il arrivera surement qu'une personne soit absente et donc que son fichier ne soit pas créée tel jour... je voudrais donc que si ma macro ne trouve pas le fichier, qu'elle annule l'ouverture sans arrêter ou faire bugger la macro.
Est ce que c possible ???

Merci forum !

Maud
 
Re : Macro: Si source n'existe pas - Annuler application sans faire bugger la Macro

Bonjour Maud

testes peut être l'existence du fichier comme suit :

Code:
If Dir("C:\MesDocuments\Excel\classeur2.xls") = "" Then _
    MsgBox "fichier inéxistant": Exit Sub

bonne soirée
@+
 
Re : Macro: Si source n'existe pas - Annuler application sans faire bugger la Macro

bonsoir à tous,
je voudrais donc que si ma macro ne trouve pas le fichier, qu'elle annule l'ouverture sans arrêter ou faire bugger la macro.

Je suis désolé Pierrot93 mais ton code ne répond pas à la question de maud

Code:
on error  goto Suite


.....
.....
Suite:
On Error goto 0
Next
semble plus approprié.

cordialement
 
Re : Macro: Si source n'existe pas - Annuler application sans faire bugger la Macro

Salut Maud,

Tu peux tester de cette manière, avec la fonction Dir, mais il y a peut-être plus simple :

Le nom du Fichier à tester doit être complet (Chemin, nom et extension)
Code:
Sub TestFichier()
Dim Fichier As String
Dim Temp As String
Fichier = ActiveWorkbook.Path & "\MonFichier.xls"
Temp = Dir(Fichier)
If Temp <> "" Then
  MsgBox Temp
Else
  MsgBox "Ce fichier n'existe pas !"
End If
End Sub

On passe donc le nom complet du fichier à tester à la fonction Dir et on récupère le résultat dans la variable Temp. Si Temp n'est pas une chaîne vide, le fichier existe, sinon il n'existe pas.

A+
Horatio
 
Re : Macro: Si source n'existe pas - Annuler application sans faire bugger la Macro

Bonjour !

et oui g un soucis !

Fred j'aimerai prendre ta solution, parce que g 14 fichiers differents à ouvrir sur lesquels j'aurai besoin de mettre la condition "si pas la, passez à autre chose"!!!

Par contre je ne comprend pas trop ou se place ton application.

ChDir _
"C:\Documents and Settings\mlehello\My Documents\Last chance\Collector"
Workbooks.Open Filename:= _
"C:\Documents and Settings\mlehello\My Documents\last chance\Collector\1006_" & Format(Date, "dd-mm-yy") & ".xls"
Sheets("Strategic").Select
Range("A13:S32").Select
Selection.Copy
Windows("Daily Report - Resolver.xls").Activate
Sheets("Strategic").Select
Range("A13").Select
ActiveSheet.Paste
Windows("1006_" & Format(Date, "dd-mm-yy") & ".xls").Activate

ChDir _
"C:\Documents and Settings\mlehello\My Documents\Last chance\Collector"
Workbooks.Open Filename:= _
"C:\Documents and Settings\mlehello\My Documents\last chance\Collector\1022_" & Format(Date, "dd-mm-yy") & ".xls"
Sheets("Strategic").Select
Range("A13:S32").Select
Selection.Copy
Windows("Daily Report - Resolver.xls").Activate
Sheets("Strategic").Select
Range("A13").Select
ActiveSheet.Paste
Windows("1006_" & Format(Date, "dd-mm-yy") & ".xls").Activate


Sur mon exemple ci-dessus tu peux me montrer ou est ce que se place le "on error" et "suite"??? Parce que qd g testé ça a tout de suite bugger avec un "Compile Error: Next without For"

Merci bcp

Maud
 
Re : Macro: Si source n'existe pas - Annuler application sans faire bugger la Macro

Bonjour Maud, Lord Nelson, Fred

la dernière ligne du code de fred ("Next") n'a pas lieu d'être, toujours sur la base du code donné, essaye peut être comme suit

Code:
If Dir("C:\Documents and Settings\mlehello\My Documents\last chance\Collector\1006_" & Format(Date, "dd-mm-yy") & ".xls"
) <> "" Then
Workbooks.Open Filename:= _
"C:\Documents and Settings\mlehello\My Documents\last chance\Collector\1006_" & Format(Date, "dd-mm-yy") & ".xls"
Sheets("Strategic").Select
Range("A13:S32").Select
Selection.Copy
Windows("Daily Report - Resolver.xls").Activate
Sheets("Strategic").Select
Range("A13").Select
ActiveSheet.Paste
Windows("1006_" & Format(Date, "dd-mm-yy") & ".xls").Activate
end if

bonne journée
@+
 
Re : Macro: Si source n'existe pas - Annuler application sans faire bugger la Macro

bonjour

pour ouvrir 14 classeurs, j'utilise un boucle for....Next pour ne pas avoir à recopier 14 fois un code similaire.
à adapter et tester, tu évites ainsi le test si ficher existe
Code:
Sub test()
 Dim tablo As Variant
 Dim Racine As string
 Dim maLigne as integer
 maLigne = 13

'tu peux initialiser un tableau avec tes noms de fichier

tablo= Array("1006_", "1022_") ' ici tu places les 14 noms de fichier
 Racine = "C:\Documents and Settings\mlehello\My Documents\Last chance\Collector\"

'gestion de l'erreur si pas de classeur, on va à la ligne Suite
  On Error GoTo suite

For i = 0 To UBound(tablo)     ' Ne modifie pas les bornes cette fois :D
'ouverture du classeur
  Workbooks.Open Filename:=Racine & tablo(i) & Format(Date, "dd-mm-yy") & ".xls"
'copie des données  
' -------------------------ajuste le nom ou l'index de feuille

' tu devras aussi modifier le A13, sinon tu écrases les données collées
' il faut certainement que tu colles sur la première ligne disponible

  ActiveWorkbook.Sheets([B]1[/B]).Range("A13:S32").Copy workbooks("Daily Report - Resolver.xls").Sheets("Strategic").Range("A" & maLigne)

  ' incrémentation des lignes
  ' maLigne = maLigne + 21 ' j'ai laissé une ligne entre chaque tableau. Adapte
                                    ' si pas besoin, laisse cette ligne en remarque

 'fermeture du classeur si besoin
  ' ActiveWorkbook.Close
suite:
'reinitialisation des erreurs
  Err.Clear
[B]Next[/B]
   'fin de la gestion On Error Goto Suite
On Error GoTo 0
End Sub
NB N'hésite pas à utiliser les balises code quand tu insères du code bouton # en mode avancé.

cordialement
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

L
Réponses
1
Affichages
2 K
Lison Lisette
L
C
Réponses
4
Affichages
2 K
R
Retour