Chères amies, chers amis du forum
Je souhaites copier puis renommer un classeur excel fermé comment je pourrait faire, je subodore un saveas mais je vois pas comment.
Merci
Chères amies, chers amis du forum
Je souhaites copier puis renommer un classeur excel fermé comment je pourrait faire, je subodore un saveas mais je vois pas comment.
Merci
Bonsoir,
Un petit tour dans l'aide en ligne .. voir FileCopy
Bonjour,
Teste ceci en adaptant les chemins :
Hervé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Declare Function CopyFile _ Lib "kernel32" _ Alias "CopyFileA" _ (ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String, _ ByVal bFailIfExists As Long) As Long Sub CopierFichier() CopyFile "D:\Mon Dossier\Mon Fichier.xls", "D:\Mon Autre Dossier\Mon Nouveau Nom de Fichier.xls", 0 End Sub
Bonjour These
pourrais tu S.V.P me dire qu'apporte ta solution API par rapport à la solution FileCopy intégrée, indiquée plus haut ?
: Comment copier un fichier vers un autre repertoire ?
Bonjour bbil,
La possibilité de gérer la présence d'un fichier identique dans le dossier de destination par l'argument "bFailIfExists". De façon très simple :
Hervé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Declare Function CopyFile _ Lib "kernel32" _ Alias "CopyFileA" _ (ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String, _ ByVal bFailIfExists As Long) As Long Sub CopierFichier() If CopyFile("D:\Mon Dossier\Mon Fichier.xls", "D:\Mon Autre Dossier\Mon Nouveau Nom de Fichier.xls", True) = 0 Then If MsgBox("Le fichier existe déjà dans le dossier ! Voulez-vous l'écraser ?", vbExclamation + vbYesNo) = vbYes Then CopyFile "D:\Téléchargement\Exemple de mon fichier excel.xlsx", "D:\Téléchargement\Test\Exemple de mon fichier excel.xlsx", False End If End If End Sub
Bonjour, bonjour !
Se teste aussi sans API directement via la fonction Dir ! …
C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
Re,
Nous sommes là pour aider et je pense qu'il est constructif si le demandeur (ou celui qui visionne le post) reçoit plusieurs propositions ;-)
On peut aussi utiliser FSO :
Hervé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub test() Dim Fso As Object Set Fso = CreateObject("Scripting.FileSystemObject") On Error Resume Next Fso.CopyFile "D:\Mon Dossier\Mon Fichier.xls", "D:\Mon Autre Dossier\Mon Nouveau Nom de Fichier.xls", False 'False = si existe retourne une erreur 'True = écrase If Err.Number <> 0 Then MsgBox "Fichier existant !" End Sub
Certes … J'évite FSO quand Dir suffit amplement !
Tests de recherche de fichiers sur une partition : moyenne de 20 secondes via Dir contre 2 minutes et 10 secondes via FSO ‼
S'il y a des fonctions internes à Excel ou au VBA, autant les utiliser !
C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
Merci à tous pour vos proposition, file copy semble etre la solution la plus simple et fonctionne parfaitement dans ma macro.
voici le code utilisé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 strNameCopy = gvSTRPathSave & TmpName & "_" & Format(Date, "dd_mm_yyyy") & "\" & TmpName & "_" & Format(Date, "dd_mm_yyyy") & ".xlsm" FileCopy Range("B5"), strNameCopy
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager