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

Autres Copie de répertoire (mais avec son icone)

  • Initiateur de la discussion Initiateur de la discussion Michou9
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Michou9

XLDnaute Occasionnel
Bonjour à tous
J'utilise une macro pour copier des dossiers
Mais bizarrement lors de cette copie je perds son icone
Je ne comprends pas d'où cela peut venir
Et je viens chercher de l'aide sur le Forum
J'utilise Excel 2007

Sub CopieDossier()
Dim fs As Object, copie As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Set copie = fs.GetFolder _
("C:\M\MonDossier")
copie.Copy "F:\Repertoire\A\1\"
End Sub
 
Dernière édition:
bonjour,
et avec robocopy ?
VB:
Sub CopieDossier()

    Dim cmd As String
  
    cmd = "robocopy ""C:\M\MonDossier"" ""F:\Repertoire\A\1\MonDossier"" /E /COPYALL /R:0 /W:0"
  
    Shell cmd, vbHide

End Sub
Bonjour job75, dysorthographie, re patricktoulon

Job785
Bien sûr, si il ne s’agissait juste de copier un répertoire avec ses sous-répertoires et ses icones
Je n’aurai pas demandé tout cela

Ce code est destiné à être intégré dans un autre code que j’ai déjà réalisé sur Excel
Et qui va permettre de mettre des données dans des dossiers
Pour pouvoir faire cela il faut que les dossiers soient réalisés pendant l’exécution de mon code

dysorthographie
Je viens de faire plusieurs essais,
Je n’ai pas d’erreur, mais il ne se copie rien du tout ?
 
Dernière édition:
re
VB:
Sub test()
    Dim Source As String, NewName As String, Destination As String, copie As Boolean
    Source = "C:\Users\patricktoulon\Desktop\dossiertesticon"
    NewName = "toto"
    Destination = "F:\Repertoire\A\1\" & NewName
    'copie = CopyFolderAddAttrSystem2(Destination, Source)
    copie = CopyFolderAddAttrSystem2(Destination, Source, True) 'avec pause sur la fenêtre cmd pour lire le log
    MsgBox copie
End Sub

Function CopyFolderAddAttrSystem2(ByVal Destination As String, ByVal Source As String, Optional ByVal Log As Boolean = False) As Boolean
    Dim cmd$, Wshell As Object, returnBool
    Set Wshell = CreateObject("WScript.Shell")
    ' mkdir sans test (puisque n'écrase pas )
    Wshell.Run "cmd /c mkdir """ & Destination & """", 0, True
    'commande  robocopy [DAT]
    '   D = Data :le contenu du fichier
    '   A  :Attributes les  attributs (lecture seule, caché, système, archive…)
    '   T : Timestamps les dates (création, modification, accès)
    cmd = "cmd /c robocopy """ & Source & """ """ & Destination & """ /E /COPY:DAT /R:0 /W:0" & IIf(Log, " & pause", "")
    returnBool = Wshell.Run(cmd, 1, True)
    CopyFolderAddAttrSystem2 = (returnBool < 8) ' return de robocopy
End Function
 
Qu'est-ce qui vous empêche de créer les dossiers par copier-coller manuel et de les traiter ensuite par VBA ?
 
job75 TooFatBoy

Il y a une première action qui traite les données sur Excel donc
Une 2ème action qui enregistre ce travail dans des dossiers
Une 3ème action toujours sur excel

La copie des dossiers se fait donc dans une étape intermédiaire
Le plus logique en gain de temps et en simplicité c’est de tout faire sur Excel
 
Bien sur que faire une copie sous dos c'est extrêmement facile et rapide
Mais c'est plus rapide de faire tout sur Excel

Se mettre sur Excel
Passer sur Windows
Revenir sur Excel
Pour l'avoir fait, c'est bien plus long, illogique et source d'erreur
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

V
Réponses
3
Affichages
986
S
Réponses
1
Affichages
1 K
S
M
Réponses
39
Affichages
4 K
R
Réponses
1
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…