Trier les fichiers dans des répertoires différents selon leur nom

  • Initiateur de la discussion Initiateur de la discussion Moulinois
  • 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 !

Moulinois

XLDnaute Occasionnel
Bonjour,

J'ai une macro qui travaille sur un fichier pour le découper en petits bouts (un petit bout par produit) et "je" voudrais rassembler ces petits bouts pas familles (il y en a une vingtaine) dans des répertoires.
Leur nom (les 2 ou 3 premiers caractères) me permettra de savoir où les ranger (et m'obligera à créer le répertoire si ce n'est pas déjà fait).

Ca m'a l'air relativement laborieux et je me demandais comment vous feriez.

Avec des tests du type if(left(nom_fichier,2)) then Repertoire = XXX ?
(Ou existe-t-il un moyen de regrouper ces tests, avec une boucle For et un liste de valeurs par exemple ?)

Merci.
 
Dernière édition:
Re : Trier les fichiers dans des répertoires différents selon leur nom

Essaye cela, A insérer dans la feuille:

code appartenant a tototiti2008

Code:
=> excel 2003 => merci à tototiti2008
'2008 ------------ Rangeur de igc ------------------
Private Sub CommandButton1_Click()
DeplaceFichiers ("CHEMIN ABSOLU ou se trouve les fichiers")
End Sub

'--------------------------------------------
Sub DeplaceFichiers(DossierSource As String)
'--------------------------------------------
Dim FS As FileSearch, i As Long, DernieresLettres As String
    Set FS = Application.FileSearch
    With FS
    .Filename = "*.igc"
    .LookIn = DossierSource
    '.SearchSubFolders=True 'Seulement si on veut rechercher dans les sous-dossiers
    .Execute
        For i = 1 To .FoundFiles.Count
            DernieresLettres = UCase(Mid(.FoundFiles(i), Len(.FoundFiles(i)) - 0, 2))
            NomFichier = Right(.FoundFiles(i), Len(.FoundFiles(i)) - InStrRev(.FoundFiles(i), "\"))
                Select Case DernieresLettres
                    Case "12"
                    Name (.FoundFiles(i)) As ("CHEMIN DU DOSSIER" & NomFichier)
                    Case "A2"
                    Name (.FoundFiles(i)) As ("CHEMIN DU DOSSIER SUIVANT" & NomFichier)
                    '... autant de case que d'immat planeur
                    Case Else
                    'MsgBox "Cas pas prévu " & DernieresLettres
                End Select
        Next i
    End With
End Sub
 
Re : Trier les fichiers dans des répertoires différents selon leur nom

Merci youki.

Ce n'est pas exactement ce à quoi je pensais mais je peux peut-être utiliser des "Case "xx"" à la place de mes ElseIf.

Comment ça fonctionne les Case ? 😀
 
- 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

Retour