Renommage de dossiers à partir d'un fichier Excel

Bonjour,

J'ai une problématique absolument insoluble pour mon faible niveau de VBA. Je souhaite renommer des dossiers en fonction des infos contenus dans mon fichier excel.

Pour faire simple,

  • j'ai un fichier excel contenant plusieurs colonnes (28) mais seules 3 sont intéressantes : ID_METIER, NUM_DRONE et NUM_ENVOI.
  • j'ai un dossier comprenant plusieurs sous dossiers intitulés : NXX_Y avec XX = 01,02, .... 90 et Y : un numéro de 0 à 20...

Je dois renommer chaque sous dossier avec le numéro ID_METIER. Ce numéro ID_METIER est sous la forme X/Y dans le fichier excel. Je veux renommer les dossiers sous la forme X-Y (et non pas X/Y).

Je vais vous citer un exemple que vous pouvez retrouver sur le fichier excel joint.

  • J'ai le robot N13 qui a été envoyé sur 2 éléments : 200892/200893 (envoi 1) et 165749/74252 (envoi 2). Je vais avoir 2 dossiers s'appellant N13_0 et N13_1. Je vais donc renommer N13_0 par 200892-200893 et N13_1 par 165749-74252.
  • J'ai le robot N42 qui a été envoyé sur 2 élements : 200893/200894 (envoi 1) et 165750/165749 (envoi 2). Je vais avoir 2 dossiers s'appellant N42_1 et N42_3. Je vais donc renommer N42_1 par 200893-200894 et N42_3 par 165750-165749

Ce qu'il faut comprendre, c'est que pour un même robot : mon numéro de dossier le plus petit correspond à l'envoi 1, mon numéro de dossier le second plus petit correspond à l'envoi 2 etc

Je ne sais pas si je suis hyper clair mais je vous transmets en PJ mon fichier excel que j'utilise.

Pour être honnête, je ne sais pas du tout comment m'y prendre pour arriver à cela .... Si vous avez des pistes, je suis preneur !

Pascal

Bonjour,

Ci-joint une proposition à tester et adapter.

Indiquer le nom du répertoire principal (contenant tous les sous-dossiers) et Go.

Les dossiers renommés sont listés en-dessous.

renommagedossiers

Bonne journée

Bouben

Bonjour,

Merci de ton retour.

Je viens de faire un test sur 4 dossiers dans le bon répertoire, le tableau se remplit mais pas de modification du nom des dossiers dans le répertoire en question.

test fichier bouben v0 1

De plus, il y a une subtilité supplémentaire qui complexifie la tache.

Pour un robot, exemple N13, je vais avoir des dossiers dans l'ordre numérique : N13_0, N13_1, N13_2 etc... ces dossiers correspondent dans l'ordre au numéro d'envoi (1, 2, 3). Par contre, je peux avoir un décalage entre le numéro d'envoi et le numéro du dossier.

2 exemples :

Le N49 a fait 3 envois :

Dans l'ordre :

  • 72394/72395
  • 74427/74428
  • 74246/74247

Par contre, je vais me retrouver avec 4 dossiers correspondants :

  • N49_0, N49_1, N49_2 et N49_3

Il s'avère que le dossier N49_1 est un artefact et je le supprime manuellement. (on aurait pu prendre l'exemple du dossier N49_0 ou autre)

Vu que les dossiers sont créés dans l'ordre d'envoi la correspondance est la suivante

  • 72394/72395 ---> N49_0
  • 74427/74428 --> N49_2
  • 74246/74247 --> N49_3

Comment gérer cette petite subtilité supplémentaire ?

Re-bonjour

Pourrais-tu ré-essayer en ajoutant un "\" à la fin dans le nom du répertoire

Les lignes apparaissent en orange, signifiant en effet que le dossier n'a pas été renommé.

Ou alors il y a 2 niveaux d'arborescence ?

...\2402\N49\N49_1

...\2402\N49\N49_2

...\2402\N50\N50_1

...\2402\N50\N50_2

Pour la problématique que tu exposes, pourrais-tu préciser davantage stp ?

Le nom du répertoire à modifier est déterminé à partir des informations contenues dans le fichier, notamment le n° d'envoi.

N49, 1 => N49_1

N49, 2 => N49_2

N49, 3 => N49_3

Si le n° indiqué ne correspond pas au n° réel, quel critère permettrait d'identifier que le dossier N49, 2 correspond en réalité au dossier N49_3 ?

Peut-on définir une règle précise ? Ou c'est aléatoire, dans ce cas difficilement automatisable ...

Ah, si ça fonctionne en rajoutant \ en fin de répertoire. Super !

Pour la problématique, et répondre à ta question : Si le n° indiqué ne correspond pas au n° réel, quel critère permettrait d'identifier que le dossier N49, 2 correspond en réalité au dossier N49_3 ? (même si elle est pas simple à expliquer)

Seule la numérotation des dossiers permet de faire le lien avec le numéro d'envoi.

En fait notre robot créé un dossier à chaque fois qu'on l'allume. Il se peut qu'on l'allume juste pour test d'allumage et pas pour l'envoyer.

Exemple du robot N49 :

  1. Envoi n°1 (sur élément 72394/72395)--> création de N49_0
  • Test d'allumage--> création de N49_1
  • Test d'allumage--> création de N49_2
  • Envoi n°2 (sur élément 74427/74428)--> création de N49_3
  • Envoi n°3 (sur élément 74246/74247)--> création de N49_4

Je me retrouve avec 5 dossiers et je vais supprimer après vérification les 2 dossiers N49_1 et N49_2.

Il me reste N49_0 ; N49_2 3 et N49_4 qui correspondent respectivement à l'envoi 1, l'envoi 2 et l'envoi 3

Une parade pourrait être de numéroter automatiquement les dossiers restants à partir de 1 en conservant l'ordre.

N49_0 devient N49_1

N49_3 devient N49_2

N49_4 devient N49_3.

Pareil pour les autres robots .....

C'est plus clair ...

Toutefois, cela me semble toujours difficile de déterminer une règle.

Exemple :

Jour 1, on traite une liste de dossiers à partir du fichier fourni.

On pourrait imaginer la mise en place de la règle suivante :

Recherche de tous les dossiers N49_xx

On trouve 3 dossiers N49_0, N49_3 et N49_4.

Dans le fichier, on a N49_1, N49_2 et N49_3

On renomme dans l'ordre, c'est jouable.

Problème pour le jour 2 (si le cas est possible) :

On trouve 3 nouveaux dossiers N49_10, N49_13 et N49_14.

Dans le fichier, on a N49_1, N49_2 et N49_3 (les mêmes)

Cela entraînera de la confusion.

Autre piste : dans le cas d'un test d'allumage, le contenu du dossier est peut-être différent (dossier vide) par rapport à un envoi réel. En analysant le contenu du dossier ?

Le contenu du dossier est identique, uniquement des photos. L'horodatage des photos n'est pas fiable du tout. (on a régulièrement des photos datées de 01/2000).

Après on efface le contenu chaque jour.

Donc

Jour 1, on a 3 dossiers :

N49_0, N49_3 et N49_4.

On importe le contenu de ses dossiers et on supprime l'existant sur le robot.

On a donc le contenu vierge

Jour 2, on a 2 dossiers

N49_0 et N49_1.

On fait ensuite un renommage des dossiers par jour.

Ca ne devrait donc pas poser problème.

Bonjour,

Un vrai casse-tête

Ci-joint une nouvelle proposition à tester.

Postulats de base

Dans le fichier, pour un drône donné, la numération commence toujours à 1 et les numéros se suivent (1,2,3) sans discontinuité (cas 1,2,4 impossible)

Sur le serveur :

La numérotation est aléatoire, il peut y avoir des trous, et peut commencer à 0 (peu importe).

Principe :

Dans le fichier, si on a 3 envois pour le drône N49 (envois 1, 2 et 3)

Sur le serveur, on a 3 répertoires N49_X (peu importe le n° derrière) : exemple : N49_0, N49_3 et N49_4.

On associe l'envoi 1 (N49_1) au répertoire N49_0

On associe l'envoi 2 (N49_2) au répertoire N49_3

On associe l'envoi 3 (N49_3) au répertoire N49_4

Et on renomme selon ces règles.

Pour bien comprendre, le nom de dossier attendu est précisé dans la liste de résultats

renommagedossiers2

A tester avec la réalité. Si cela ne colle pas, je risque de jeter l'éponge

Bon après-midi

Bouben

Bonjour,

Ouah, super, ça marche du tonnerre ! Mille mercis ! Je l'ai adapté sur mon fichier excel et ça fonctionne.

Par contre, gros questionnement :

  • lorsque je mets à une adresse en local : ex D:\Users\Desktop\Robot\ ... le fichier fonctionne parfaitement
  • lorsque je mets une adresse sur un serveur NAS : ex \\Itv\robot\PHOTOS\A TRAITER\2020_03\0203\ j'ai l'erreur suivante :
erreur 457 erreur 457 console

Pourquoi une adresse distante fait bugger le programme ?

Evidemment, mes dossiers sont stockées sur le serveur NAS et pas en local ! Ca m'oblige à tout passer en local puis tout remettre sur mon serveur NAS. Je t'avoue que je comprends pas ...

Rechercher des sujets similaires à "renommage dossiers partir fichier"