VBA commande Kill évitez le message d'erreur si le dossier est vide

Le
Céline Brien
Bonjour à tous,
Ici, dans les Laurentides, 90 Km au nord de Montréal, c'est l'hiver !
Toutes les branches des arbres sont couvertes de neige. C'est féérique !
Dans une macro j'utilise la commande Kill pour effacer les fichiers Excel
d'un dossier.
Kill "R:ReportFev*.xls"
Dans certaines circonstances, le dossier peut ne PAS contenir de fichiers
Excel.
J'obtiens alors un message d'erreur "Fichier Introuvable" et l'exécution de
la macro prend fin.
Comment éviter le message d'erreur et assurer la poursuite de l'exécution de
la macro.
J'ai essayé "On error resume next" sans succès.
Merci de votre aide,
Céline
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #4448371
if dir("R:ReportFev*.xls")<>"" then
Kill "R:ReportFev*.xls"
end if


"Céline Brien"
Bonjour à tous,
Ici, dans les Laurentides, 90 Km au nord de Montréal, c'est l'hiver !
Toutes les branches des arbres sont couvertes de neige. C'est féérique !
Dans une macro j'utilise la commande Kill pour effacer les fichiers Excel
d'un dossier.
Kill "R:ReportFev*.xls"
Dans certaines circonstances, le dossier peut ne PAS contenir de fichiers
Excel.
J'obtiens alors un message d'erreur "Fichier Introuvable" et l'exécution de
la macro prend fin.
Comment éviter le message d'erreur et assurer la poursuite de l'exécution de
la macro.
J'ai essayé "On error resume next" sans succès.
Merci de votre aide,
Céline
anonymousA
Le #4448361
Bonjour,

si tu places l'instruction On error resume next avant le Kill, il n'y
aucune raison apparente pour que ca ne fonctionne pas.Il doit y avoir
autre chose !!

A+


Bonjour à tous,
Ici, dans les Laurentides, 90 Km au nord de Montréal, c'est l'hiver !
Toutes les branches des arbres sont couvertes de neige. C'est féérique !
Dans une macro j'utilise la commande Kill pour effacer les fichiers Excel
d'un dossier.
Kill "R:ReportFev*.xls"
Dans certaines circonstances, le dossier peut ne PAS contenir de fichiers
Excel.
J'obtiens alors un message d'erreur "Fichier Introuvable" et l'exécution de
la macro prend fin.
Comment éviter le message d'erreur et assurer la poursuite de l'exécution de
la macro.
J'ai essayé "On error resume next" sans succès.
Merci de votre aide,
Céline





Céline Brien
Le #4448121
Bonjour à tous,
Bonjour MichDenis,
Merci pour ta réponse.
Le tout fonctionne très bien ;-)
J'ai une autre question si tu permets.
Toujours dans ma macro, je voudrais vérifier l'existence du dossier
R:ReportFev
et, s'il n'existe pas, le créer.
Merci encore pour ta réponse et bon vendredi 13,
Céline

"MichDenis"
if dir("R:ReportFev*.xls")<>"" then
Kill "R:ReportFev*.xls"
end if


"Céline Brien" news:

Bonjour à tous,
Ici, dans les Laurentides, 90 Km au nord de Montréal, c'est l'hiver !
Toutes les branches des arbres sont couvertes de neige. C'est féérique !
Dans une macro j'utilise la commande Kill pour effacer les fichiers Excel
d'un dossier.
Kill "R:ReportFev*.xls"
Dans certaines circonstances, le dossier peut ne PAS contenir de fichiers
Excel.
J'obtiens alors un message d'erreur "Fichier Introuvable" et l'exécution
de
la macro prend fin.
Comment éviter le message d'erreur et assurer la poursuite de l'exécution
de
la macro.
J'ai essayé "On error resume next" sans succès.
Merci de votre aide,
Céline






MichDenis
Le #4447941
Tu colles la fonction dans un module standard, la fonction
peut créer un répertoire et des sous-répertoires

Exemple : Elle crée la totalité du chemin si absent ou
ne crée rien si déjà présent.
'---------------------------------
Sub test()
Dim Dossier As String

Dossier = "c:dossier1dossier2dossier3"

End Sub
'---------------------------------

'--------------------------------
Function MakeDirEx(DirPath$) As Boolean
Dim i%, tmp, Arr

If InStr(1, DirPath, ":") = 0 Then
Arr = Split(CurDir & DirPath, "")
Else: Arr = Split(DirPath, "")
End If

tmp = Arr(0)
For i = LBound(Arr) + 1 To UBound(Arr)
If Arr(i) <> "" Then
tmp = tmp & "" & Arr(i)
On Error Resume Next
MkDir tmp
On Error GoTo 0
End If
Next

If Dir(DirPath, vbDirectory) = "" Then
On Error Resume Next
RmDir Arr(0) & "" & Arr(1)
On Error GoTo 0
Else
MakeDirEx = True
End If

End Function
'--------------------------------




"Céline Brien"
Bonjour à tous,
Bonjour MichDenis,
Merci pour ta réponse.
Le tout fonctionne très bien ;-)
J'ai une autre question si tu permets.
Toujours dans ma macro, je voudrais vérifier l'existence du dossier
R:ReportFev
et, s'il n'existe pas, le créer.
Merci encore pour ta réponse et bon vendredi 13,
Céline

"MichDenis"
if dir("R:ReportFev*.xls")<>"" then
Kill "R:ReportFev*.xls"
end if


"Céline Brien" news:

Bonjour à tous,
Ici, dans les Laurentides, 90 Km au nord de Montréal, c'est l'hiver !
Toutes les branches des arbres sont couvertes de neige. C'est féérique !
Dans une macro j'utilise la commande Kill pour effacer les fichiers Excel
d'un dossier.
Kill "R:ReportFev*.xls"
Dans certaines circonstances, le dossier peut ne PAS contenir de fichiers
Excel.
J'obtiens alors un message d'erreur "Fichier Introuvable" et l'exécution
de
la macro prend fin.
Comment éviter le message d'erreur et assurer la poursuite de l'exécution
de
la macro.
J'ai essayé "On error resume next" sans succès.
Merci de votre aide,
Céline






Céline Brien
Le #4447411
Bonjour à tous,
Bonjour MichDenis,
Merci beaucoup pour ta réponse très complète.
J'ai utilisé les codes proposés par Jacky, mais je vais garder précieusement
ces codes dans ma banque de macros Excel.
Merci encore et bon samedi,
Céline

"MichDenis"
Tu colles la fonction dans un module standard, la fonction
peut créer un répertoire et des sous-répertoires

Exemple : Elle crée la totalité du chemin si absent ou
ne crée rien si déjà présent.
'---------------------------------
Sub test()
Dim Dossier As String

Dossier = "c:dossier1dossier2dossier3"

End Sub
'---------------------------------

'--------------------------------
Function MakeDirEx(DirPath$) As Boolean
Dim i%, tmp, Arr

If InStr(1, DirPath, ":") = 0 Then
Arr = Split(CurDir & DirPath, "")
Else: Arr = Split(DirPath, "")
End If

tmp = Arr(0)
For i = LBound(Arr) + 1 To UBound(Arr)
If Arr(i) <> "" Then
tmp = tmp & "" & Arr(i)
On Error Resume Next
MkDir tmp
On Error GoTo 0
End If
Next

If Dir(DirPath, vbDirectory) = "" Then
On Error Resume Next
RmDir Arr(0) & "" & Arr(1)
On Error GoTo 0
Else
MakeDirEx = True
End If

End Function
'--------------------------------




"Céline Brien" news:

Bonjour à tous,
Bonjour MichDenis,
Merci pour ta réponse.
Le tout fonctionne très bien ;-)
J'ai une autre question si tu permets.
Toujours dans ma macro, je voudrais vérifier l'existence du dossier
R:ReportFev
et, s'il n'existe pas, le créer.
Merci encore pour ta réponse et bon vendredi 13,
Céline

"MichDenis"
if dir("R:ReportFev*.xls")<>"" then
Kill "R:ReportFev*.xls"
end if


"Céline Brien" news:

Bonjour à tous,
Ici, dans les Laurentides, 90 Km au nord de Montréal, c'est l'hiver !
Toutes les branches des arbres sont couvertes de neige. C'est féérique !
Dans une macro j'utilise la commande Kill pour effacer les fichiers Excel
d'un dossier.
Kill "R:ReportFev*.xls"
Dans certaines circonstances, le dossier peut ne PAS contenir de fichiers
Excel.
J'obtiens alors un message d'erreur "Fichier Introuvable" et l'exécution
de
la macro prend fin.
Comment éviter le message d'erreur et assurer la poursuite de l'exécution
de
la macro.
J'ai essayé "On error resume next" sans succès.
Merci de votre aide,
Céline











Publicité
Poster une réponse
Anonyme