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

test de fichier existant

A

ALLAIN Didier

Guest
second message
rebonjour,

Je voudrais que ma feuille soit sauvegarder sout le nom ecrit en A1 par exemple.
Comment faire un test verifiant qu'un fichier sous ce nom existe (et donc éviter un message d'erreur) et automatiquement changer le nom de ce fichier, par exemple
fichier =nom.xls
s'il existe
nom1.xls
s'il existe
nom2.xls
....

Merci de votre aide
 
D

Delors

Guest
Slt Alain,

Sub test1()
Dim repertoire As String, nom As String, i As Integer
repertoire = "c:\temp\"
nom = Range("A1")
repertoire = repertoire & Range("A1") & ".xls"
If Dir(repertoire) <> "" Then
MsgBox "Il exite déjà un fichier sous le nom suivant: " & nom, vbCritical, "Nom du Fichier"
For i = 1 To 100
nom = nom & i
repertoire = repertoire & nom & ".xls"
If Dir(repertoire) = "" Then Exit For
Next i
End If
MsgBox "le Programm a enregistré la Table sous le nom suivant: " & nom & "Nom du Fichier", vbInformation
ActiveWorkbook.SaveAs filename:=repertoire
End Sub


A+
 
A

arnaud

Guest
Salut ,

Normal : dans la ligne

nom = nom & i

cela ajoute a la variable nom la valeur de i mais vu que le nom lui même chose cela ne vas pas.......
ça sera mieux comme ça

Sub test1()
Dim repertoire As String, nom As String, i As Integer, NomOrigine
repertoire = "c:\temp\"
NomOrigine = Range("A1")
repertoire = repertoire & Range("A1") & ".xls"
If Dir(repertoire) <> "" Then
MsgBox "Il exite déjà un fichier sous le nom suivant: " & nom, vbCritical, "Nom du Fichier"
For i = 1 To 100
nom = NomOrigine & i
repertoire = repertoire & nom & ".xls"
If Dir(repertoire) = "" Then Exit For
Next i
End If
MsgBox "le Programm a enregistré la Table sous le nom suivant: " & nom & "Nom du Fichier", vbInformation
ActiveWorkbook.SaveAs filename:=repertoire
End Sub
 
A

ALLAIN Didier

Guest
Merci,
Il faut faire les modifs suivantes pour que ça marche:
Sub test1()
Dim repertoire As String, nom As String, i As Integer, NomOrigine, reperto As String
reperto = "c:\temp\"
NomOrigine = Range("A1")
repertoire = reperto & Range("A1") & ".xls"
If Dir(repertoire) <> "" Then
MsgBox "Il exite déjà un fichier sous le nom suivant: " & NomOrigine, vbCritical, repertoire
For i = 1 To 100
nom = NomOrigine & i
repertoire = reperto & nom & ".xls"
If Dir(repertoire) = "" Then Exit For
Next i
End If
MsgBox "le Programm a enregistré la Table sous le nom suivant:" & nom, vbInformation
ActiveWorkbook.SaveAs Filename:=repertoire
End Sub
 
M

myDearFriend

Guest
Bonsoir Alain, Delors, Arnaud,


Dans le même style, on peut aussi faire :
Public Sub Sauvegarder_Click()
Dim Nom As String, Num As String, Chemin As String, Fichier As String
Dim N As Byte
Chemin = "c:\temp\"
Fichier = Range("A1")
Do
Num = IIf(N > 0, " (" & CStr(N) & ")", "")
Nom = Fichier & Num & ".xls"
N = N + 1
Loop Until Dir(Chemin & Nom) = ""
MsgBox Chemin & Nom
ActiveWorkbook.SaveAs Chemin & Nom
End Sub



Cordialement,
Didier_mDF

 

Discussions similaires

Réponses
2
Affichages
512
Réponses
15
Affichages
1 K
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…