Renommer répertoires

Bonsoir a tous et toutes

Voilà, j ai des répertoires dont le nom est un numéro a 4 chiffres .... Et chaque numéro correspond a un de mes agents.... Comment faire pour renommer les répertoires avec le nom de l agent correspondant?

Je suppose que je dois avoir quelque chose du style

If ..... Then....

C est ça?

Merci pour ceux qui ont une idée

Bonne soirée

Bonsoir

En utilisant l'instruction Name

Extrait de l'aide

Name, instruction

Renomme un fichier, un répertoire ou un dossier sur un disque.

Syntaxe

Name oldpathname As newpathname

Name, instruction, exemple

Cet exemple utilise l'instruction Name pour renommer un fichier. Dans le cadre de cet exemple, supposez que les dossiers indiqués existent déjà

Dim OldName, NewName

OldName = "ANCFICH": NewName = "NOUVFICH" ' Définit les noms de fichiers.

Name OldName As NewName ' Renomme le fichier.

OldName = "C:\MONREP\ANCFICH":NewName = "C:\VOTREREP\NOUVFICH"

Name OldName As NewName ' Déplace et renomme le fichier.

bonjour et merci bcp,

voici le code modifié.... ça fonctionne superbien.....merci banzai......!!!

j'en profite un peu, mais......aurais tu une idée pour déplacer des fichiers "mp3" contenus dans des sous repertoires (dont le nom change toujours)..... copier uniquement les fichiers sans les noms de sous repertoires....??

bonne journée à tous

Sub Renommer ()

Dim OldName, NewName

OldName = "C:\MONREP\1001":NewName = "C:\VOTREREP\agent A"

OldName = "C:\MONREP\1002":NewName = "C:\VOTREREP\agent B"

Name OldName As NewName ' Déplace et renomme le fichier.

End Sub

re,

ah ben non......

ça marche pas....

ça bloque sur la dernière ligne .....

Name OldName As NewName ' Déplace et renomme le fichier.

c'est parce qu'il trouve pas certianes lignes ????

merci

re,

j'ai essayé ça en mettant mes N° dans la colonne A et les noms dans la colonne B de la feuil2

mais ça marche pas non plus ....

ça m'énerve un peu là....

Option Explicit

Sub RenommerDossiersCS()

Dim LastRow As Long

Dim i As Long

Dim sDir As String, sOld As String, sNew As String

With Feuil2

LastRow = .Range("A" & .Rows.Count).End(xlUp).Row

sDir = "F:\services\Appels\serveur MANAGEMENT V2.2014\SUIVI CENTRE\APPELS\Classement des appels enregistrés\"

For i = 1 To LastRow

sOld = sDir & .Range("A" & i)

If ExistenceFichier(sOld) Then

sNew = sDir & .Range("B" & i)

Name rep$ & sOld As rep$ & sNew

End If

Next i

End With

End Sub

Private Function ExistenceFichier(sFichier As String) As Boolean

ExistenceFichier = Dir$(sFichier) <> ""

End Function

Bonjour

Je ne comprends pas cette ligne

Name rep$ & sOld As rep$ & sNew

D'où tu trouves rep$

Je verrai comme ça (non testé)

Name sOld As sNew

oui j'ai essayé aussi mais ça marche pas.....

peut être parce que je veux renommer des noms de répertoire et pas des noms de fichiers....

qu'en penses tu?

bon je teste encore,

si je reprends ton code plus haut ...(remis ci dessous) si je met plusieurs lignes .... il me corrige le nom que de la dernière.....

il doit me manquer un truc du style "boucle" ou "passer si pas de N° untel"....

non?

Sub Renommer ()

Dim OldName, NewName

OldName = "C:\MONREP\1001":NewName = "C:\VOTREREP\agent A"

OldName = "C:\MONREP\1002":NewName = "C:\VOTREREP\agent B"

OldName = "C:\MONREP\1003":NewName = "C:\VOTREREP\agent C"

Name OldName As NewName ' Déplace et renomme le fichier.

End Sub

Bonjour

Tu présentes 2 codes différents

Une fois les noms des répertoires est dans des cellules et une fois les noms sont dans le code

C'est sur que si ton code est semblable au dernier

La modification n'a lieu que sur le dernier répertoire

nanadoudou a écrit :

il doit me manquer un truc du style "boucle"

Exact

Pour avancer fournis ton fichier avec la macro

re,

je te joint mon fichier excel avec les différentes macro que je travaille !!!

ce post correspond à mon 4ème bouton......

j'ai en effet testé 2 méthodes....

  • une où je modifie direct le nom dans la macro
  • une où j'appelle les données de ma Feuil2

ce qui est important c'est que quand je veux modifier les noms .... j'aurais pas forcement des dossiers pour tous mes agents, mais seulement pour ceux qui ont des enregistrements......

mon bouton N°3 .... marche ..... il me crée des dossiers et y met les appels de l'agent dedans..... et pour les créer c'est le N° que je récupère..... (N° noté dans les "noms" donnés aux appels).... c'est ce N° de dossier que je veux changer par le nom de l'agent.

j'espère avoir été clair......

merci de l'aide en tout cas et du temps accordé !!

83macro2.zip (43.09 Ko)

Bonjour

Modifies ta fonction

Private Function ExistenceFichier(sFichier As String) As Boolean
    ExistenceFichier = Dir$(sFichier, vbDirectory) <> ""
End Function

Pour ta macro "Renommer"

il te faut l'instruction Name entre chaque ligne

Sub Renommer()

Dim OldName, NewName

OldName = "F:\....\1011": NewName = "F:\....\Agent 1"
Name OldName As NewName ' Déplace et renomme le fichier.
OldName = "F:\....\1012": NewName = "F:\....\Agent 2"
Name OldName As NewName ' Déplace et renomme le fichier.
OldName = "F:\....\1013": NewName = "F:\....\Agent 3"
Name OldName As NewName ' Déplace et renomme le fichier.
OldName = "F:\.....\1014": NewName = "F:\....\Agent 4"
Name OldName As NewName ' Déplace et renomme le fichier.
' 
' Etc ...
'

Même si on la simplifie c'est une méthode non souple il faut mieux que tu utilises la macro "RenommerDossiersCS"

Super merci.....

Je teste ça demain et je te tiens au jus...

Merci et bonne soirée !!!

bonjour Banzai.....

alors j'ai fait les modif.....

1/ pour la méthode "Renommer"....... ça bloque sur la ligne "Name OldName as NewName" du premier agent..... car je suppose que c'est le fait que c'est agent n'a pas de dossier à son N° ce jour là.....

2/ pour la méthode 2: j'ai modifié la fonction que tu me l'a marqué mais du coup au premier clic sur le bouton il m'a modifié le dernier dossier de la ligne c'est tout.... et quand j'ai voulu recliquer sur le bouton, il m'affiche en jaune la ligne "Name sOld As sNew"....

je comprends pas tout là.....

32macro-3.zip (49.41 Ko)

Bonjour

Dans la macro renommer il faut tester chaque fois la présence du répertoire

Sub Renommer()

Dim OldName, NewName

OldName = "F:\....\1011": NewName = "F:\....\Agent 1"
If ExistenceFichier(OldName) Then
  Name OldName As NewName ' Déplace et renomme le fichier.
End If
OldName = "F:\....\1012": NewName = "F:\....\Agent 2"
If ExistenceFichier(OldName) Then
  Name OldName As NewName ' Déplace et renomme le fichier.
End If
OldName = "F:\....\1013": NewName = "F:\....\Agent 3"
If ExistenceFichier(OldName) Then
  Name OldName As NewName ' Déplace et renomme le fichier.
End If
OldName = "F:\.....\1014": NewName = "F:\....\Agent 4"
If ExistenceFichier(OldName) Then
  Name OldName As NewName ' Déplace et renomme le fichier.
End If
'
' Etc ...
'

Un nom de répertoire (ou fichier) ne doit pas comporter les caractères suivants

Sinon la macro "RenommerDossiersCS" fonctionne bien

ah ok.... bon je teste et te tiens au courant

merci encore pour tout

bonjour banzai !!!!

et merciiiii ça marche nickel avec la formule RenommerDossierCS....

j'ai bien supprimé les * aux noms et ça marche parfait.

merci encore.......

si j'ose abuser, aurais tu une idée pour copier mes fichiers sans tenir compte des sous répertoires?

en te remerciant

bonne journée

Bonjour

nanadoudou a écrit :

aurais tu une idée pour copier mes fichiers sans tenir compte des sous répertoires?

Pas d'idée car pas cherché

Il vaut mieux clôturer ce post et en ouvrir un autre

Tu y expliques exactement ce que tu veux obtenir

RE, ok sujet CLOS....

j'ai reposté un nouveau sujet pour la copie entre dossier.

autre manip pour cloturer?

Rechercher des sujets similaires à "renommer repertoires"