Couper Coller des fichiers d'un répertoire à un autre sur mon pc

Bonjour

Je voudrais couper coller une série de fichiers "factures.xlsm" d'un dossier "facture" dans un dossier" Archivage_facture".

Est il possible de faire cela en vba

J'ai chercher sur le net j'ai vu qu'il fallait activer filesSystemObjet , mais après je suis un peu perdu

J'ai commencé à écrire cela :
Sub couper_coller_fichier
Dim procedure
as Object

Dim chemin_source as string
Dim chemin_destination as string

chemin_source = "E:\Mes Documents\Documents administratifs ValentinRossano\Archive_Facturation_Pdf_Xlsx\"

chemin destination ="E:\Mes Documents\Documents administratifs ValentinRossano\Archive_Facturation_Pdf_Xlsx\Archi_2024\"

set procedure =createObject

et après je sèche.. Je précise qu'il y a une trentaine de fichiers à déplacer. Est ce que le *.xlsm " fonctionne pour copier tous les fichiers

Quelqu'un pourrait il me donner un petit coup de main.

Merci à vous

cordialement

Bonjour,

Je vous suggère de vous reporter vers la suggestion de DAN

https://forum.excel-pratique.com/excel/vba-copie-colle-fichier-d-un-repertoire-vers-un-autre-177187

Bonne journée

Bonjour,

Quels fichiers voulez-vous déplacer ? Tous ou seulement certains, ayant un nom/une extension spécifique ?

Si oui, quels sont ces critères ?

Le dossier de destination est-il amené à changer ?

EDIT : essayez la proposition de @Jacky/@Dan d'abord.

Je regarde chez dan

Pour réponse à vos questions, tous les fichiers du dossier facture sont à transférer dans le dossier archi_année

>Cordialement

Je viens de voir chez DAN.. Je ne comprends pas la boucle i=2

Voilà mes fichiers. Le nombre peut varier d'une année sur l'autre. je voudrais une proc comme *.* dans le dossier pour tout couper coller.. Surtout COUPER COLLER

Cordialement

image

Bonjour,

Le code de dan se réfère au fichier joint de l'OP dans le post en question. Il doit y avoir un tableau qui commence en ligne 2 pour sauter les en-tetes.

Le plus efficace serait d'utiliser un script Shell, comme celui-ci :

Option Explicit

Sub test()
  Dim srcDir As String: srcDir = "E:\Mes Documents\Documents administratifs ValentinRossano\Archive_Facturation_Pdf_Xlsx"
  Dim destDir As String: destDir = "E:\Mes Documents\Documents administratifs ValentinRossano\Archive_Facturation_Pdf_Xlsx\Archi_2024"

  Dim cmd As String
  cmd = "POWERSHELL.exe Get-ChildItem -Path '" & srcDir & "' -Recurse -File | Move-Item -Destination '" & destDir & "'"

  Call Shell(cmd, 1)

End Sub

Cependant, il est possible que Windows Defender vous bloque en l'exécution (il y aura une erreur lors de l'instruction Call Shell), car les nouvelles mesures de sécurité bloquent l'accès des macros à shell pour des raisons évidentes… Auquel cas je vais vous fournir un autre code utilisant le FileSystemObject, beaucoup plus lent mais autorisé.

je vous remercie, c'est hyper gentil et sympathique.. J'apprends au fur et à mesure que j'avance dans les problèmes. Mille mercis

Re,

Pour finir, voici le code equivalent en utilisant le FileSystemObject object | Microsoft Learn

Sub DeplacementFSO()
  Dim srcDir As String: srcDir = "E:\Mes Documents\Documents administratifs ValentinRossano\Archive_Facturation_Pdf_Xlsx\"
  Dim destDir As String: destDir = "E:\Mes Documents\Documents administratifs ValentinRossano\Archive_Facturation_Pdf_Xlsx\Archi_2024\"

  Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")

  If Not (fso.FolderExists(srcDir) Or fso.FolderExists(destDir)) Then
    MsgBox "L'un des dossiers spécifiés est invalide", vbCritical, "Erreur"
    Exit Sub
  End If

  Dim fileI As String
  fileI = Dir(srcDir)
  Do
    fso.MoveFile srcDir & fileI, destDir & fileI
    fileI = Dir()
  Loop While fileI <> vbNullString

End Sub

un grand merci, cela fonctionne

Rechercher des sujets similaires à "couper coller fichiers repertoire mon"