Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment Savoir si un fichier Existe?

4 réponses
Avatar
anonyme
Bonjour=20

Je voudrais dans ma macro Excel savoir si mon fichier=20
"c:\toto.xls" existe pour que lorsque je fais "save as",=20
Je n'=E9crase pas ce fichier mais je fais un "save as"
"toto_1.xls".

Merci

4 réponses

Avatar
Vincent.
Bonjour,

Fichier = Dir(C:toto.xls")
If Fichier = "" Then
workbook([nom du fichier à
enregistrer]).SaveAs "C:toto.xls"
Else
workbook([nom du fichier à
enregistrer]).SaveAs "C:toto_1.xls"
End If

Evidemment, le fichier toto_1.xls pourrait également déjà
exister auquel cas, il faut faire une boucle (while a
priori) sur les fichiers de type C:toto*.xls


-----Message d'origine-----
Bonjour

Je voudrais dans ma macro Excel savoir si mon fichier
"c:toto.xls" existe pour que lorsque je fais "save as",
Je n'écrase pas ce fichier mais je fais un "save as"
"toto_1.xls".

Merci
.



Avatar
Lydya
Bonjour

Sub TestSiFichierExiste()
If Dir("C:toto.xls") = "" Then
ActiveWorkbook.SaveAs FileName:="C:toto.xls"
Else
ActiveWorkbook.SaveAs FileName:="C:toto_1.xls"
End If
End Sub

Lydya

"anonyme" a écrit dans le message de
news:0a5e01c397ab$11da5930$
Bonjour

Je voudrais dans ma macro Excel savoir si mon fichier
"c:toto.xls" existe pour que lorsque je fais "save as",
Je n'écrase pas ce fichier mais je fais un "save as"
"toto_1.xls".

Merci
Avatar
anoynyme
merci :)

-----Message d'origine-----
Bonjour,

Fichier = Dir(C:toto.xls")
If Fichier = "" Then
workbook([nom du fichier à
enregistrer]).SaveAs "C:toto.xls"
Else
workbook([nom du fichier à
enregistrer]).SaveAs "C:toto_1.xls"
End If

Evidemment, le fichier toto_1.xls pourrait également déjà
exister auquel cas, il faut faire une boucle (while a
priori) sur les fichiers de type C:toto*.xls


-----Message d'origine-----
Bonjour

Je voudrais dans ma macro Excel savoir si mon fichier
"c:toto.xls" existe pour que lorsque je fais "save as",
Je n'écrase pas ce fichier mais je fais un "save as"
"toto_1.xls".

Merci
.

.





Avatar
Hervé
Salut,
Cette proc cherche le fichier passé en param sur le disque précisé, si le
disque n'est pas passé en paramètre, cherche sur tous les lecteurs. Si
trouvé, retourne le chemin complet sinon affiche un message Teste avec la
macro "Test" :

Declare Function RechercheFichier Lib _
"imagehlp.dll" Alias "SearchTreeForFile" _
(ByVal Lecteur As String, _
ByVal Fichier As String, _
ByVal RetourChemin As String) As Long

Declare Function RechercheLecteurs Lib _
"Kernel32" Alias "GetLogicalDriveStringsA" _
(ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long

Public Function Fichiers(Fichier As String, _
Optional Lecteur As String) As String
Dim Pos As Long
Dim Retour As Boolean
Dim Tampon As String
Dim I As Integer
Dim Tbl

If Len(Lecteur) = 1 Then Lecteur = UCase(Lecteur) & ":"

If Fichier = "" Then
MsgBox "Vous devez préciser le fichier à chercher" & _
" avec son extension !", , "Recherche de fichiers."
Exit Function
End If

If Lecteur Like "?:" = False Then
Tbl = Lecteurs
Erase Lecteurs
Else
ReDim Tbl(1 To 1)
Tbl(1) = Lecteur
End If

Tampon = Space(300)
For I = 1 To UBound(Tbl)
Retour = RechercheFichier(Tbl(I), Fichier, Tampon)
If Retour = True Then
Pos = InStr(Tampon, Chr(0))
If Pos <> 0 Then
Tampon = Left(Tampon, Pos - 1)
End If
Fichiers = Tampon
Exit For
End If
Next I

If Retour = False Then
Fichiers = "Aucun fichier correspondant à '" & Fichier & "' !"
End If

Erase Tbl
End Function

Function Lecteurs() As String()
Dim LstLecteurs As String
Dim Tbl() As String
Dim I As Integer, J As Integer

LstLecteurs = String(50, Chr$(0))
RechercheLecteurs 50, LstLecteurs

For I = 1 To Len(LstLecteurs)
If Mid(LstLecteurs, I, 1) = "" Then
J = J + 1
ReDim Preserve Tbl(1 To J)
Tbl(J) = Mid(LstLecteurs, I - 2, 3)
End If
Next I
Lecteurs = Tbl()
Erase Tbl
End Function

Sub test()
'entrer le fichier avec son extension.
'pour une recherche sur tous les lecteurs
'ne rien passer en paramètre.
MsgBox Fichiers("Mon fichier.txt", "C")
End Sub

Hervé.

"anonyme" a écrit dans le message
news: 0a5e01c397ab$11da5930$
Bonjour

Je voudrais dans ma macro Excel savoir si mon fichier
"c:toto.xls" existe pour que lorsque je fais "save as",
Je n'écrase pas ce fichier mais je fais un "save as"
"toto_1.xls".

Merci