OVH Cloud OVH Cloud

comment différencier en enregistrement des fichiers portant le même nom

3 réponses
Avatar
Poclain
Bonjour,
J'ai une macro qui ouvre en boucle des fichiers, pour chaque fichier, je
récupère des données qui sont copiées dans un nouveau classeur.
Le nouveau classeur que je viens de créer, je l'enregistre sous un nom :
(toto.xls par exemple).
De temps en temps, la macro se bloque car le nom de fichier toto.xls existe
déjà.
Je souhaiterai que la macro ne se bloque pas et au lieu de m'afficher que
le nom existe déjà, enregistre dans ce cas là sous un autre nom : (toto1.xls
par exemple)

Merci d'avance

3 réponses

Avatar
Argyronet
Bonjour,

Parmi toutes les possibilités, en voici une :

Private Function GetFileName(ByVal FileName As String, ByVal PathName As
String) As String
Const XLS_EXTENSION As String = ".xls"
Dim intFileIndex As Integer
Dim blnAlreadyExist As Boolean
Dim strTempFileName As String

blnAlreadyExist = True
strTempFileName = FileName & XLS_EXTENSION
Do
If Dir(PathName & strTempFileName) = strTempFileName Then
intFileIndex = intFileIndex + 1
strTempFileName = FileName & intFileIndex & XLS_EXTENSION
Else
blnAlreadyExist = False
End If
Loop Until blnAlreadyExist = False
GetFileName = PathName & strTempFileName
End Function


Sub TEST()
Dim strFilename As String
Dim strPathName As String

strFilename = "Classeur"
strPathName = "C:_Tests"

ActiveWorkbook.SaveAs GetFileName(strFilename, strPathName)
End Sub
--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour,
J'ai une macro qui ouvre en boucle des fichiers, pour chaque fichier, je
récupère des données qui sont copiées dans un nouveau classeur.
Le nouveau classeur que je viens de créer, je l'enregistre sous un nom :
(toto.xls par exemple).
De temps en temps, la macro se bloque car le nom de fichier toto.xls existe
déjà.
Je souhaiterai que la macro ne se bloque pas et au lieu de m'afficher que
le nom existe déjà, enregistre dans ce cas là sous un autre nom : (toto1.xls
par exemple)

Merci d'avance





Avatar
Poclain
Bonjour,
Merci Argyronet, pour la réponse.
C'est super, cela marche à merveille,
C'est exactement ce que je cherchais. Comment faites-vous pour répondre
aussi vite et aussi juste ?
Encore merci.

"Argyronet" a écrit dans le message de
news:
Bonjour,

Parmi toutes les possibilités, en voici une :

Private Function GetFileName(ByVal FileName As String, ByVal PathName As
String) As String
Const XLS_EXTENSION As String = ".xls"
Dim intFileIndex As Integer
Dim blnAlreadyExist As Boolean
Dim strTempFileName As String

blnAlreadyExist = True
strTempFileName = FileName & XLS_EXTENSION
Do
If Dir(PathName & strTempFileName) = strTempFileName Then
intFileIndex = intFileIndex + 1
strTempFileName = FileName & intFileIndex & XLS_EXTENSION
Else
blnAlreadyExist = False
End If
Loop Until blnAlreadyExist = False
GetFileName = PathName & strTempFileName
End Function


Sub TEST()
Dim strFilename As String
Dim strPathName As String

strFilename = "Classeur"
strPathName = "C:_Tests"

ActiveWorkbook.SaveAs GetFileName(strFilename, strPathName)
End Sub
--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on
obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour,
J'ai une macro qui ouvre en boucle des fichiers, pour chaque fichier, je
récupère des données qui sont copiées dans un nouveau classeur.
Le nouveau classeur que je viens de créer, je l'enregistre sous un nom :
(toto.xls par exemple).
De temps en temps, la macro se bloque car le nom de fichier toto.xls
existe
déjà.
Je souhaiterai que la macro ne se bloque pas et au lieu de m'afficher
que
le nom existe déjà, enregistre dans ce cas là sous un autre nom :
(toto1.xls
par exemple)

Merci d'avance







Avatar
Argyronet
Merci Argyronet...C'est exactement ce que je cherchais.
Il n'y a pas de quoi. Ma plus grande satisfaction est la votre ;o)

Comment faites-vous pour répondre aussi vite et aussi juste ?
Votre question est une situation à laquelle j'ai déjà été personnellement

confronté, donc, facile, une fois qu'on l'a déjà mis en place.
--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour,
Merci Argyronet, pour la réponse.
C'est super, cela marche à merveille,
C'est exactement ce que je cherchais. Comment faites-vous pour répondre
aussi vite et aussi juste ?
Encore merci.