Exécuter un fichier cmd
Résolu/Fermé
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
-
Modifié le 27 juil. 2017 à 18:44
ivgu19 Messages postés 52 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 17 février 2018 - 17 févr. 2018 à 14:52
ivgu19 Messages postés 52 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 17 février 2018 - 17 févr. 2018 à 14:52
Bonjour le forum,
après avoir copier des bouts de code dans le forum, je sollicite votre aide afin que le fichier"renommageCommande.cmd" s’exécute automatiquement.
Je remercie par avance celui ou celle qui prendra le temps de me lire
après avoir copier des bouts de code dans le forum, je sollicite votre aide afin que le fichier"renommageCommande.cmd" s’exécute automatiquement.
Sub genererFichierDeCommande() ' Dim Repertoire As FileDialog, prefixe As String Dim lig As Long, col As Long Dim numfich As Integer Dim LigneCommande As String Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker) Repertoire.Show If Repertoire.SelectedItems.Count = 0 Then Exit Sub numfich = FreeFile Open Repertoire.SelectedItems(1) & "\" & "renommageCommande.cmd" For Output As #numfich Sheets("fichier de commande").Activate Print #numfich, "CD " & Repertoire.InitialFileName; For lig = 1 To 65000 Print #numfich, Cells(lig, 1) & vbCrLf; Next lig Close #numfich LigneCommande = Repertoire.InitialFileName & "renommageCommande.cmd" Shell "CMD /C " & """" & "cd " & Repertoire.InitialFileName & """" Shell "CMD /C " & """" & LigneCommande & """" End Sub
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
Je remercie par avance celui ou celle qui prendra le temps de me lire
A voir également:
- Executer un fichier cmd
- Fichier rar - Guide
- Cmd - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier host - Guide
19 réponses
yg_be
Messages postés
23235
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
30 septembre 2024
Ambassadeur
1 538
28 juil. 2017 à 10:12
28 juil. 2017 à 10:12
bonjour, as-tu un message d'erreur?
je pense que la ligne 24 est inutile.
je suggère /K au lieu de /C, tu verras ainsi ce que fait cmd.
je pense que la ligne 24 est inutile.
je suggère /K au lieu de /C, tu verras ainsi ce que fait cmd.
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
28 juil. 2017 à 15:10
28 juil. 2017 à 15:10
Bonjour yg (mes initiales);
pas de mieux avec ou sans lig24 et K au lieu de C.
Le fait de double cliquer pour exécuter CMD j'obtiens la création du dossier photosRenommees avec le nb de fichiers renommés moins la première ligne qui n'est pas prise en compte !! Ce qui fait 2 problèmes qui me dépassent.
Grand merci pour ton aide
Je joins fichier erreur et l'image du fichier "renommageCommande.cmd
https://img-19.ccm2.net/lVjK65XB55DF-hhpr1ZsZ60WchA=/c6c1201d3ad5490b990e5b5a544f84d7/ccm-ugc/fichier_error.jpg
https://img-19.ccm2.net/BXyVPsxRWIHmCgQR-Lda7sYyYrc=/c0f3432ac30a4119b0647322658040f8/ccm-ugc/ficrenommageCommande.jpg
pas de mieux avec ou sans lig24 et K au lieu de C.
Le fait de double cliquer pour exécuter CMD j'obtiens la création du dossier photosRenommees avec le nb de fichiers renommés moins la première ligne qui n'est pas prise en compte !! Ce qui fait 2 problèmes qui me dépassent.
Grand merci pour ton aide
Je joins fichier erreur et l'image du fichier "renommageCommande.cmd
https://img-19.ccm2.net/lVjK65XB55DF-hhpr1ZsZ60WchA=/c6c1201d3ad5490b990e5b5a544f84d7/ccm-ugc/fichier_error.jpg
https://img-19.ccm2.net/BXyVPsxRWIHmCgQR-Lda7sYyYrc=/c0f3432ac30a4119b0647322658040f8/ccm-ugc/ficrenommageCommande.jpg
yg_be
Messages postés
23235
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
30 septembre 2024
1 538
28 juil. 2017 à 15:54
28 juil. 2017 à 15:54
je ne comprends pas. que se passe-t'il quand tu exécutes le VBA?
le CMD est-il exécuté?
le CMD est-il exécuté?
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
28 juil. 2017 à 17:21
28 juil. 2017 à 17:21
1-l'explorateur s'ouvre et je sélectionne le dossier "photosOriginales"
2-le code boucle de A1:A20 sur l'onglet "fichier de commande" du classeur Excel
3-en fin de boucle, création du fichier "renommageCommande.cmd" dans ce même dossier "photosOriginales"
Jusque la tout se passe presque bien (1ière ligne non prise en compte)
4-à ce niveau, je double clique sur le fichier .cmd qui crée un dossier "photosRenommees" qui contient les fichiers renommés de l'onglet "fichier de commande"
Je souhaiterai, si possible, qu'il s’exécute automatiquement.
est ce plus clair pour toi yg_be?
2-le code boucle de A1:A20 sur l'onglet "fichier de commande" du classeur Excel
3-en fin de boucle, création du fichier "renommageCommande.cmd" dans ce même dossier "photosOriginales"
Jusque la tout se passe presque bien (1ière ligne non prise en compte)
4-à ce niveau, je double clique sur le fichier .cmd qui crée un dossier "photosRenommees" qui contient les fichiers renommés de l'onglet "fichier de commande"
Je souhaiterai, si possible, qu'il s’exécute automatiquement.
est ce plus clair pour toi yg_be?
yg_be
Messages postés
23235
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
30 septembre 2024
1 538
28 juil. 2017 à 18:06
28 juil. 2017 à 18:06
donc la commande shell fonctionne pas en VBA? message d'erreur?
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
28 juil. 2017 à 20:20
28 juil. 2017 à 20:20
pas de message d'erreur au lancement de la macro
si ça peut aider voici le pas à pas sur le shell
https://img-19.ccm2.net/EUfG1EsmnXRbQRUTUWcMsYQKEPc=/abfee67d625e4af49cd3e6deef490f4a/ccm-ugc/PaPas_detaille.jpg
si ça peut aider voici le pas à pas sur le shell
https://img-19.ccm2.net/EUfG1EsmnXRbQRUTUWcMsYQKEPc=/abfee67d625e4af49cd3e6deef490f4a/ccm-ugc/PaPas_detaille.jpg
yg_be
Messages postés
23235
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
30 septembre 2024
1 538
28 juil. 2017 à 21:05
28 juil. 2017 à 21:05
et quand tu exécutes l'instruction "shell", cela ne démarre pas une boite de commandes?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
28 juil. 2017 à 22:56
28 juil. 2017 à 22:56
ben non
la nuit porte conseil à demain yg_be
la nuit porte conseil à demain yg_be
Bonjour ivgu19,
Ce que yg_be a appelé « une boîte de commandes » est en fait une fenêtre dont
le titre est "C:\Windows\system32\cmd.exe" (avec fond noir) ; tu l'avais peut-être
déjà compris, mais je précise, au cas où ; on peut l'appeler "fenêtre d'invite de
commandes", "fenêtre de commandes", ou "fenêtre DOS".
⚠ C'est possible que cette fenêtre se soit ouverte, mais tu ne l'as pas vue car elle
est restée en arrière-plan => regarde dans ta barre des tâches si elle s'y trouve ;
si oui, tu as juste à cliquer dessus pour faire apparaître la fenêtre ; plus simple :
mets 1 en 2ème paramètre => fenêtre affichée à l'avant-plan.
Rappel : avec CMD /C, la fenêtre DOS se refermera ; avec CMD /K, la fenêtre DOS
restera affichée ; à toi de choisir selon tes préférences.
⚠ Tu as mis inutilement certains guillemets ; exemple : voir ce code VBA juste
pour changer de répertoire (celui de ton Bureau) :
Option Explicit Sub Essai() Const RépertoireX As String = "C:\Users\yves\Desktop" Shell "CMD /C cd " & RépertoireX, 1 End Sub
Mais de toute façon, je pense que ce serait mieux d'inclure la commande cd
dans ton fichier renommageCommande.cmd => une seule ligne Shell =>
une seule fenêtre DOS ; comme ceci :
Option Explicit Sub Essai() Const RépertoireX As String = "C:\Users\yves\Desktop" Dim LigneCommande As String LigneCommande = RépertoireX & "\renommageCommande.cmd" Shell "CMD /K " & LigneCommande, 1 End Sub
Dans ton message d'hier à 15:10, tu as joint 2 images ; pour la première,
la commande CD aurait dû être seulement : CD C:\Users\yves\Desktop
Tout ce que tu as ajouté à droite => erreur : "Le chemin d'accès spécifié
est introuvable." ; donc comme ça n'a pas été dans le bon répertoire,
ça ne peut pas trouver tes images : "Error: File not found - xxx.jpg".
De plus, tes commandes qui sont après la commande CD lancent
le programme EXIFTOOL avec le fichier de l'image xxx.jpg et aussi
plusieurs commutateurs ; mais attention, les commutateurs DOS
sont avec « / », pas « - » ! (il me semble que c'est avec UNIX que
les commutateurs sont des « - ») => -filename doit être remplacé
par /filename ; -XPAuthor par /XPAuthor ; -title par /title ; etc... ;
bien sûr, mêmes remarques pour ta deuxième image.
Merci de me donner ton avis, et dis-moi si tu as réussi à faire
marcher ton code (après corrections selon mes infos).
Cordialement
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
29 juil. 2017 à 18:24
29 juil. 2017 à 18:24
Bonjour et merci à tous les deux de m'apporter une solution.
Réponse à dany,
1-J'ai relevé dans ce forum CMD /C sans connaitre la finalité. à présent je sais.
2-le copier/coller dans le fichier "renommageCommande.cmd" donne ceci:
'C:\Users\yves\Desktop\renommageCommande.cmd' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
C:\Users\yves\Documents>
3-j'ai renouvelé la manip en manuel : je copie les lignes exiftool du
"fichier de commande" sur "renommageCommande.cmd" préalablement convertit en .txt pour les coller.
suite au double cliquer, j'obtiens mes fichiers renommés dans le dossier "photosRenommees".
Ça marche très bien sauf que pour 800 fichiers à faire en plusieurs étapes ce sera laborieux.
4-écriture EXIFTOOL le remplacement "-" par "/" ne marche pas chez moi même en manuel.
Ex d'un fichier 101-7331.jpg renommé en
"1972 A-PM-B 050x65 Schiaffino Ó quai BD.jpg "
où le "à" est transformé "O' " malgré "L" pour latin ?
ma formule de renommage :
(=SI(liste!J2="oui";CONCATENER("EXIFTOOL ";liste!I2;".jpg -filename=""photosRenommees\";liste!B2;" ";liste!C2;" ";liste!D2;" ";liste!E2;" ";liste!F2;" ";".jpg"" ";" -XPAuthor=""Jacques Galey""";" -title=""";liste!E2;"""";" -XPSubject=";liste!C2;" -XPComment=";liste!D2; " -XPKeywords=";liste!B2;" -L");"")
si toutefois tu as encore un peu de temps à me consacrer, peut-on le faire par étapes.
Cordiales salutations
Réponse à dany,
1-J'ai relevé dans ce forum CMD /C sans connaitre la finalité. à présent je sais.
2-le copier/coller dans le fichier "renommageCommande.cmd" donne ceci:
'C:\Users\yves\Desktop\renommageCommande.cmd' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
C:\Users\yves\Documents>
3-j'ai renouvelé la manip en manuel : je copie les lignes exiftool du
"fichier de commande" sur "renommageCommande.cmd" préalablement convertit en .txt pour les coller.
suite au double cliquer, j'obtiens mes fichiers renommés dans le dossier "photosRenommees".
Ça marche très bien sauf que pour 800 fichiers à faire en plusieurs étapes ce sera laborieux.
4-écriture EXIFTOOL le remplacement "-" par "/" ne marche pas chez moi même en manuel.
Ex d'un fichier 101-7331.jpg renommé en
"1972 A-PM-B 050x65 Schiaffino Ó quai BD.jpg "
où le "à" est transformé "O' " malgré "L" pour latin ?
ma formule de renommage :
(=SI(liste!J2="oui";CONCATENER("EXIFTOOL ";liste!I2;".jpg -filename=""photosRenommees\";liste!B2;" ";liste!C2;" ";liste!D2;" ";liste!E2;" ";liste!F2;" ";".jpg"" ";" -XPAuthor=""Jacques Galey""";" -title=""";liste!E2;"""";" -XPSubject=";liste!C2;" -XPComment=";liste!D2; " -XPKeywords=";liste!B2;" -L");"")
si toutefois tu as encore un peu de temps à me consacrer, peut-on le faire par étapes.
Cordiales salutations
Sur le disque dur de ton PC :
1) Où sont tes images *.jpg ?
a) sur le Bureau de Windows
b) C:\Users\yves\Pictures
c) C:\Users\yves\Documents
d) si autre, à indiquer
2) Quel est l'emplacement de renommageCommande.cmd ?
a) sur le Bureau de Windows
b) C:\Users\yves\Documents
c) si autre, à indiquer
Si tu tiens absolument à avoir renommageCommande.cmd sur ton Bureau,
le chemin est : "C:\Users\yves\Desktop" ; mais comme il sera lancé depuis
ton fichier Excel, je pense que c'est mieux de le mettre dans ton dossier
"Mes documents", donc avec ce chemin : "C:\Users\yves\Documents" ;
dans mon précédent code VBA, il suffit de changer ainsi la constante :
Const RépertoireX As String = "C:\Users\yves\Documents"
--------------------------------------------------
Le nom de fichier renommageCommande est bien long, et comme on sait que
c'est un fichier de commande, le mot Commande est inutile ; or dans ce sujet,
tu utilises EXIFTOOL pour renommer tes photos ; donc je te propose ce nom
plus court : renphoto.cmd ; c'est facile de s'en rappeler car la commande DOS
ren est l'abréviation de rename (pour renommer un nom de fichier) ; voici un
exemple bien concret : ren renommageCommande.cmd renphoto.cmd
ou : ren renommageCommande.cmd renphoto.* (car « .* » signifie :
renommer avec la même extension de fichier).
Mon précédent code VBA serait alors :
Option Explicit Sub Essai() Const RépertoireX As String = "C:\Users\yves\Documents" Dim LigneCommande As String LigneCommande = RépertoireX & "\renphoto.cmd" Shell "CMD /K " & LigneCommande, 1 End Sub
--------------------------------------------------
En 3-, tu as écris que ta manip en manuel marche bien : tu obtiens bien
tes fichiers renommés dans ton dossier "photosRenommees" ; dans ce
cas, ne remplace pas "-" par "/" car EXIFTOOL les comprend ; mais s'il
s'avère qu'il faudra faire ce remplacement, ce sera dans ta formule :
=SI(Liste!J2="oui";CONCATENER("EXIFTOOL ";Liste!I2;".jpg /filename=""photosRenommees\";Liste!B2;" ";Liste!C2;" ";Liste!D2;" ";Liste!E2;" ";Liste!F2;" ";".jpg"" ";" /XPAuthor=""Jacques Galey""";" /title=""";Liste!E2;"""";" /XPSubject=";Liste!C2;" /XPComment=";Liste!D2; " /XPKeywords=";Liste!B2;" /L");"")
Note que j'ai fait le remplacement uniquement pour -xxxx= ; exemple :
-filemane= est devenu /filename=
Je sais que dans une fenêtre de commandes DOS on utilise le "/"
comme commutateur, mais est-ce que EXIFTOOL comprendra ?
Pour l'instant, si ça a marché en manuel, laisse avec les "-".
--------------------------------------------------
Pour tes caractères spéciaux, tu as écris : « "à" est transformé "O" » ;
n'est-ce pas plutôt : « "Ó" est transformé "O" » ? si oui, c'est normal
car en français, on a par exemple "rôle" et pas d'autre o accentué,
ça ne peut pas deviner qu'il faut transformer "Ó" en "à".
Il faudrait faire une liste de tous les caractères spéciaux tels que "Ó",
ce à quoi ils doivent correspondre, et ajouter du code pour faire une
conversion adéquate ; liste sur 2 colonnes :
Ó à
...
...
...
Mais peut-être aussi que ça dépend de la page de code actuelle, ou du type
de codage des caractères (genre Unicode ou autre), ou de l'interprétation
qui en est faite par EXIFTOOL ?
--------------------------------------------------
À te lire.
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
>
dany
30 juil. 2017 à 10:37
30 juil. 2017 à 10:37
Bonjour dany,
réponses:
1- A partir de maintenant, le chemin est : "ordinateur>YG_TOSHIBA>MesDocuments>Suivi_France>photosOriginales"
Par la suite, elles seront sur 1 autre PC et le chemin sera du genre "ordinateur>data(E)>inventaire>photosOriginales"
2-l'emplacement du dossier "renphoto.cmd" est dans le dossier photosOriginales (cette commande faisant partie intégrante du dossier photosOriginales)
3-j'ai conservé "-" (comme précisé hier, vu que ça marche)
4-tu as raison, c'est bien 1 "à" transformé en "Ó"
copie/collé du renommage :"1972 A-PM-B 050x65 Schiaffino Ó quai BD.jpg " au lieu de "1972 A-PM-B 050x65 Schiaffino à quai BD.jpg "
ok pour faire une liste des caractères spéciaux par la suite (à; ê; ï; ù)
j'attends tes conseils pour réaliser la macro.
@+
réponses:
1- A partir de maintenant, le chemin est : "ordinateur>YG_TOSHIBA>MesDocuments>Suivi_France>photosOriginales"
Par la suite, elles seront sur 1 autre PC et le chemin sera du genre "ordinateur>data(E)>inventaire>photosOriginales"
2-l'emplacement du dossier "renphoto.cmd" est dans le dossier photosOriginales (cette commande faisant partie intégrante du dossier photosOriginales)
3-j'ai conservé "-" (comme précisé hier, vu que ça marche)
4-tu as raison, c'est bien 1 "à" transformé en "Ó"
copie/collé du renommage :"1972 A-PM-B 050x65 Schiaffino Ó quai BD.jpg " au lieu de "1972 A-PM-B 050x65 Schiaffino à quai BD.jpg "
ok pour faire une liste des caractères spéciaux par la suite (à; ê; ï; ù)
j'attends tes conseils pour réaliser la macro.
@+
dany
>
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
30 juil. 2017 à 18:05
30 juil. 2017 à 18:05
Bonjour Yves,
⚠ Le séparateur de répertoires n'est pas ">", c'est : "\".
Le début des 2 chemins n'est pas vraiment clair : "ordinateur\YG_TOSHIBA" et
"ordinateur" ? si c'est pour des chemins réseaux, je te laisse faire les modifs.
Finalement, pour le nom du fichier de commande, c'est mieux au pluriel :
renphotos.cmd ; code VBA avec des chemins non réseaux :
Option Explicit Sub genererFichierDeCommande() Worksheets("fichier de commande").Select ' ' PathPO : chemin du dossier photosOriginales ' ' a) dossier ultérieur : ' Const PathPO As String = "C:\Users\User X\Documents\data(E)\inventaire\photosOriginales" ' ' b) dossier actuel : ' Const PathPO As String = "C:\Users\yves\Documents\Suivi_France\photosOriginales" Dim dlig As Long, lig As Long ' dlig : dernière ligne dlig = Range("A" & Rows.Count).End(xlUp).Row Open PathPO & "\renphotos.cmd" For Output As #1 Print #1, vbLf & "@echo off & cls" & vbLf Print #1, "echo. & echo renphotos : renomme des photos" Print #1, "echo. & echo Veuillez patienter svp..." & vbLf Print #1, "rem va dans le dossier des photos originales :" Print #1, "cd " & PathPO & vbLf Print #1, "rem lignes EXIFTOOL :" & vbLf For lig = 1 To dlig Print #1, Cells(lig, 1) & vbLf Next lig Print #1, "echo Travail fini !" Close #1 Shell "CMD /K " & PathPO & "\renphotos.cmd", 1 End Sub
Ce code suppose que sur ta feuille "fichier de commande", colonne A,
des lignes 1 à dernière (détectée automatiquement), chaque cellule
contient une ligne entière : EXIFTOOL nomphoto.jpg -filename=...
Pour une ligne donnée, c'est bien dommage que le tout soit dans une
seule cellule ! pour ta ligne 1, ça aurait été mieux ainsi (en ligne) :
A1 : 101-7331
B1 : 1972 A-PM-B
C1 : 050×65
D1 : Schiaffino Ó quai (BD)
E1 : 101-7331
F1 : Jacques Galey
G1 : Schiaffino à quai
H1 : A-PM-B
J1 : 050×65
K1 : 1972
Tout le reste qui est constant aurait été rajouté dans le code :
"EXIFTOOL " ; extension ".jpg" (2×) ; -filename= etc... avec
bien sûr des concaténations ; seule ligne à changer dans
le code pour cela : celle qui est dans la boucle For .. Next.
Mais si tu as déjà plusieurs fichiers où c'est déjà sur une
seule colonne, ça te ferait trop de travail de changer ?
À te lire pour la suite.
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
30 juil. 2017 à 23:16
30 juil. 2017 à 23:16
Bonsoir dany,
mise à part le chemin que j'ai adapté le pas à pas renvoi "nom incorrect"
https://img-19.ccm2.net/cubcac5GKVxC1okJ2UZv-57UA-k=/01a7ccc0690b4628b6183db308cb55f4/ccm-ugc/erreur_52.jpg
mise à part le chemin que j'ai adapté le pas à pas renvoi "nom incorrect"
https://img-19.ccm2.net/cubcac5GKVxC1okJ2UZv-57UA-k=/01a7ccc0690b4628b6183db308cb55f4/ccm-ugc/erreur_52.jpg
Bonsoir Yves,
J'ai testé mon code VBA avant de le poster, donc je sais qu'il marche bien ;
si ça plante ça vient de ton adaptation ; d'ailleurs, quand j'ai vu sur ta copie
d'écran la ligne jaune, je me suis dit « ça ne peut venir que de ton PathPO »
et quand je regarde plus haut, je vois tout de suite ce que tu as mis :
"C:\YG_TOSHIBA (I:)\Mesdocuments\Suivi_France\photosOriginales"
Essaye plutôt un de ceux-là :
"C:\YG_TOSHIBA\Mes documents\Suivi_France\photosOriginales"
"C:\YG_TOSHIBA\Mesdocuments\Suivi_France\photosOriginales"
"C:\YG_TOSHIBA\Documents\Suivi_France\photosOriginales"
Pas de dossier Users ? comme avec : C:\Users\yves\Documents\...
----------------------------------------------------
Quand ça marchera, fais ceci en dehors d'Excel :
Windows r => fenêtre exécuter ; cmd Entrée => fenêtre DOS ;
comme tu connais la commande cd, va dans le répertoire
photosOriginales, où tu auras ton fichier .cmd et fais :
cls
type renphotos.cmd
Tu verras le contenu de ton fichier de commandes
tel qu'il a été écrit par ton fichier Excel.
À te lire.
Ajout :
Si ça ne marche toujours pas, tape dans une fenêtre DOS : cd \
ça va sur le répertoire racine C:\ et tu dois voir : C:\>
Ensuite, essaye d'aller sur chaque dossier du chemin, un par un ;
ci-dessous, tape les commandes à partir du texte « cd » :
C:\>cd YG_TOSHIBA
C:\YG_TOSHIBA>cd "Mes documents"
C:\YG_TOSHIBA\Mes documents>cd Suivi_France
C:\YG_TOSHIBA\Mes documents\Suivi_France>cd photosOriginales
C:\YG_TOSHIBA\Mes documents\Suivi_France\photosOriginales>
⚠ Si le nom d'un répertoire contient au moins un espace, tu dois
mettre des guillemets, comme pour la 2ème ligne ci-dessus.
Peut-être que ce sera cette commande : cd Mes_documents
(caractère souligné au lieu d'espace => guillemets inutiles)
---------------------------------------------------
À chaque niveau de répertoire, tu peux taper cette commande :
C:\>dir /ad
ça affiche tous les répertoires qui sont dans le répertoire en cours ;
s'il y en a beaucoup, tu peux taper cette commande :
C:\>dir /ad /p
avec /p ça fera une pause : tu verras le message :
Appuyez sur une touche pour continuer...
appuie par exemple sur la barre d'espace pour continuer,
ou si tu veux arrêter avant la fin de la liste, fais : Ctrl c.
---------------------------------------------------
À te lire pour la suite.
2ème ajout :
Si tu as encore ton ancien fichier renommageCommande.cmd,
alors dans une fenêtre DOS, tape cette commande :
dir c:\renommageCommande.cmd /s
⚠ La recherche peut être un peu longue, alors patience ! ;)
Si ça trouve ce fichier, ça l'affichera, ainsi que son chemin ;
et c'est ce chemin que tu devras mettre pour PathPO.
Tu peux aussi essayer avec une image du même répertoire :
dir c:\101-7331.jpg /s
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
31 juil. 2017 à 17:05
31 juil. 2017 à 17:05
Hello dany,
le chemin est parfaitement intégré à présent.
le code se déroule sans problème avec me semble-t-il l'oubli de créer le dossier "photosren" pour y mettre les photos renommées.
renphotos : renomme des photos
Veuillez patienter svp...
Error: File not found - 101-7333.jpg
0 image files updated
1 files weren't updated due to errors
Error: File not found - 101-7334.jpg
0 image files updated
1 files weren't updated due to errors
Travail fini !
C:\Users\yves\Documents>
Qu'en penses-tu
le chemin est parfaitement intégré à présent.
le code se déroule sans problème avec me semble-t-il l'oubli de créer le dossier "photosren" pour y mettre les photos renommées.
renphotos : renomme des photos
Veuillez patienter svp...
Error: File not found - 101-7333.jpg
0 image files updated
1 files weren't updated due to errors
Error: File not found - 101-7334.jpg
0 image files updated
1 files weren't updated due to errors
Travail fini !
C:\Users\yves\Documents>
Qu'en penses-tu
Hello, Yves,
⚠ "Error: File not found - 101-7333.jpg" et "Error: File not found - 101-7334.jpg"
signifient que pour tes photos originales, tu n'as pas mis le bon chemin !
Error: File not found = Erreur: Fichier non trouvé
=> ça ne trouve pas : 101-7333.jpg ; 101-7334.jpg
À moins que ce soit juste que tes fichiers "101-7333.jpg" et "101-7334.jpg"
ne soient pas dans ton dossier des photosOriginales ; mais dans ce cas,
c'est à toi de les y mettre, ou de bien indiquer les bons fichiers *.jpg dans
ton classeur Excel, feuille "fichier de commande", colonne A.
--------------------------------------------------
Dossier que tu as choisis pour :
a) tes photos originales : C:\Users\yves\Documents\photosOriginales
b) tes photos renommées : C:\Users\yves\Documents\photosren
Merci de confirmer les deux.
Si oui, PathPO : "C:\Users\yves\Documents"
--------------------------------------------------
Mais tu ne préfères pas :
C:\Users\yves\Documents\Suivi_France\photosOriginales
C:\Users\yves\Documents\Suivi_France\photosren
Si oui, PathPO : "C:\Users\yves\Documents\Suivi_France"
Mais tu as peut-être laissé tomber "Suivi_France" ?
--------------------------------------------------
C'est mieux de créer d'abord manuellement le dossier photosren
car ce sera fait une fois pour toutes, et surtout, c'est inutile de
créer ce dossier à chaque fois que renphotos.cmd est exécuté !
À te lire.
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
1 août 2017 à 18:47
1 août 2017 à 18:47
Bonsoir dany,
la soirée d'hier et ce jour pour essayer de mettre les fichiers renommés dans le dossier photosren sans résultat.j'ai lu et relu tes notes ainsi que Error: File not found où je détecte (un tiret + un espace) qui semble pas très catholique devant le n° photo ?
résultat DOS:
Veuillez patienter svp...
Error: File not found - 101-7331.jpg
Warning: FileName encoding not specified - 101-7331.jpg
0 image files updated
1 files weren't updated due to errors
Travail fini !
c/c de mon image: 101-7331.JPG
le code= c/c du 30-07 à 18:05
avec ce chemin = "E:\Documents\inventaire"
https://img-19.ccm2.net/_PZfSqOhB5kuKOPhjo2PITRHUKw=/03b59daa91bc4d389e472a3a923b40e5/ccm-ugc/chemin.jpg
peut-être dans la formule renommage: c/c du 29-07 à 23:08 avec"-"
=SI(liste!J2="oui";CONCATENER("EXIFTOOL ";liste!I2;".jpg -filename=""photosren\";liste!B2;" ";liste!C2;" ";liste!D2;" ";liste!E2;" ";liste!F2;" ";liste!I2;" ";".jpg"" ";" -XPAuthor=""Jacques Galey""";" -title=""";liste!E2;"""";" -XPSubject=";liste!C2;" -XPComment=";liste!D2; " -XPKeywords=";liste!B2;" -L");"")
A moins de découvrir la bourde, peux-tu me faire parvenir ton essai de renommage.
Amicalement
la soirée d'hier et ce jour pour essayer de mettre les fichiers renommés dans le dossier photosren sans résultat.j'ai lu et relu tes notes ainsi que Error: File not found où je détecte (un tiret + un espace) qui semble pas très catholique devant le n° photo ?
résultat DOS:
Veuillez patienter svp...
Error: File not found - 101-7331.jpg
Warning: FileName encoding not specified - 101-7331.jpg
0 image files updated
1 files weren't updated due to errors
Travail fini !
c/c de mon image: 101-7331.JPG
le code= c/c du 30-07 à 18:05
avec ce chemin = "E:\Documents\inventaire"
https://img-19.ccm2.net/_PZfSqOhB5kuKOPhjo2PITRHUKw=/03b59daa91bc4d389e472a3a923b40e5/ccm-ugc/chemin.jpg
peut-être dans la formule renommage: c/c du 29-07 à 23:08 avec"-"
=SI(liste!J2="oui";CONCATENER("EXIFTOOL ";liste!I2;".jpg -filename=""photosren\";liste!B2;" ";liste!C2;" ";liste!D2;" ";liste!E2;" ";liste!F2;" ";liste!I2;" ";".jpg"" ";" -XPAuthor=""Jacques Galey""";" -title=""";liste!E2;"""";" -XPSubject=";liste!C2;" -XPComment=";liste!D2; " -XPKeywords=";liste!B2;" -L");"")
A moins de découvrir la bourde, peux-tu me faire parvenir ton essai de renommage.
Amicalement
Pour continuer, j'ai besoin de savoir ce qu'il y a sur ta feuille Excel :
1) Y a-t-il une ligne d'en-têtes ; si oui : laquelle ? n° ligne ?
2) Quel est le contenu exact de ta 1ère ligne de données ?
Pour les emplacements, c'est bien sur une seule feuille nommée
"fichier de commande", n'est-ce pas ? et sur cette feuille, quels
sont les emplacements des données ? exemple :
A1 : "Ligne de commande"
A2 : EXIFTOOL 101-7331.jpg -filename= ... (contenu exact et complet).
S'il n'y a pas de ligne d'en-têtes, ta 1ère ligne de données est la ligne n° 1 ?
(ce n'est pas forcé, mais c'est nécessaire de connaître le n° exact).
Tu peux aussi joindre une copie d'écran de ta feuille, mais avec les lettres
de colonnes et les numéros de ligne.
Amicalement
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
2 août 2017 à 15:21
2 août 2017 à 15:21
Bonjour dany,
Impr écran "liste" (bidon)
L'utilisateur doit saisir dans une ligne vide (col I) le n° de photo puis les informations correspondantes (col B:F).
La décade se remplit automatiquement
=SI(B13="";"";GAUCHE(B13;3)*10))
si informations correctes , l'utilisateur saisit en col J "oui" pour afficher la formule corresondante dans le fichier de commande (par la suite, ce fichier est masqué pour éviter une mauvaise manip)
Impr écran "fichier de commande"
on voit que les nouvelles lignes ont été prises en compte.
le codage doit renommer et copier dans le dossier "photosren" les nouvelles photos de l'inventaire.
(réponse au 1)
il n'y a pas d'en têtes. (bien sur on peut ajouter une ligne d'en têtes pour qu'à la ligne 2 de "liste" corresponde la ligne 2 de "fichier de commande".
(réponse au 2) actuellement j'ai en A1 la formule ci dessous
=SI(liste!J13="oui";CONCATENER("EXIFTOOL ";liste!I13;".jpg -filename=""photosren\";liste!B13;" ";liste!C13;" ";liste!D13;" ";liste!E13;" ";liste!F13;" ";liste!I13;" ";".jpg"" ";" -XPAuthor=""Jacques Galey""";" -title=""";liste!E13;"""";" -XPSubject=";liste!C13;" -XPComment=";liste!D13; " -XPKeywords=";liste!B13;" -L");"")
Par la suite, l'idéal serait de les dispatcher dans des dossiers décades (en remplacement du dossier "photosren" (1970;.....; 2010) en indiquant le nb de photos renommées.
Je pense que les Impr écran parlent mieux que mon bla bla d'hier.
@+https://img-19.ccm2.net/7aIw030iaWLE_C-zz_0E-XuL1hU=/98ca67a1a0e545bea38e616dc7c533ae/ccm-ugc/fichierDeCommande.jpg
https://img-19.ccm2.net/6-mgwOtE6OfpaL-J0KoEhxsl3Bk=/f4051d78229a48a099577529632d7481/ccm-ugc/liste.jpg
J'espère avoir répondu à tes questions d'hier.
@+
Impr écran "liste" (bidon)
L'utilisateur doit saisir dans une ligne vide (col I) le n° de photo puis les informations correspondantes (col B:F).
La décade se remplit automatiquement
=SI(B13="";"";GAUCHE(B13;3)*10))
si informations correctes , l'utilisateur saisit en col J "oui" pour afficher la formule corresondante dans le fichier de commande (par la suite, ce fichier est masqué pour éviter une mauvaise manip)
Impr écran "fichier de commande"
on voit que les nouvelles lignes ont été prises en compte.
le codage doit renommer et copier dans le dossier "photosren" les nouvelles photos de l'inventaire.
(réponse au 1)
il n'y a pas d'en têtes. (bien sur on peut ajouter une ligne d'en têtes pour qu'à la ligne 2 de "liste" corresponde la ligne 2 de "fichier de commande".
(réponse au 2) actuellement j'ai en A1 la formule ci dessous
=SI(liste!J13="oui";CONCATENER("EXIFTOOL ";liste!I13;".jpg -filename=""photosren\";liste!B13;" ";liste!C13;" ";liste!D13;" ";liste!E13;" ";liste!F13;" ";liste!I13;" ";".jpg"" ";" -XPAuthor=""Jacques Galey""";" -title=""";liste!E13;"""";" -XPSubject=";liste!C13;" -XPComment=";liste!D13; " -XPKeywords=";liste!B13;" -L");"")
Par la suite, l'idéal serait de les dispatcher dans des dossiers décades (en remplacement du dossier "photosren" (1970;.....; 2010) en indiquant le nb de photos renommées.
Je pense que les Impr écran parlent mieux que mon bla bla d'hier.
@+https://img-19.ccm2.net/7aIw030iaWLE_C-zz_0E-XuL1hU=/98ca67a1a0e545bea38e616dc7c533ae/ccm-ugc/fichierDeCommande.jpg
https://img-19.ccm2.net/6-mgwOtE6OfpaL-J0KoEhxsl3Bk=/f4051d78229a48a099577529632d7481/ccm-ugc/liste.jpg
J'espère avoir répondu à tes questions d'hier.
@+
Bonjour ivgu19 (Yves),
Je ne comprends vraiment pas pourquoi quelqu'un a noté -1 ton message !
Moi, je confirme que tu as très bien répondu à mes questions de la veille,
et j'ajoute que ce sont tes infos (texte et copies d'écran) qui m'ont aidées
à élaborer une solution pour ton problème.
Pour la suite de cette conversation, je te laisse suivre ce lien :
https://forums.commentcamarche.net/forum/affich-34752983-executer-un-fichier-cmd#29
Amicalement
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
>
dany
8 août 2017 à 18:11
8 août 2017 à 18:11
dany tout marche fort bien.
1)Je voulais seulement me prémunir, pour plus tard, d'une demande de correction du renommage parce que je ne pourrai plus te joindre pour te demander par ex comment supprimer les parenthèses ==> 'chn = chn & " " & .Offset(, 4) & " " & Photo 'signé sans 2 parenthèses.
2) comment supprimer le N°Photo originale par ex ==> 1972 A-PM-B 050x65 Schiaffino à quai (BD).jpg ?
je te confirme que c'est à partir du N° Photo originale que l'on peut définir les col B,C,D, E,F. L'information I permet d'identifier la phot originale à la photo renommée. Pour moi c'est important car les photos originales sont conservées. Donc rien de changé si I est confirmé ==>renommage.
3)Décade. erreur de ma part.. le n° photo était erroné le pg créé éventuellement un sous dossier correspondant à l'année et bien sur sans photo . ce qui est fort juste. Ne rien changer.
4) exiftool est une appli bien trop complexe pour moi !!!
Latin cp1252, Latin1 Windows Latin1 (West European)
Merci dany pour toute ton aide très professionnelle.
Amicalement
Yves
1)Je voulais seulement me prémunir, pour plus tard, d'une demande de correction du renommage parce que je ne pourrai plus te joindre pour te demander par ex comment supprimer les parenthèses ==> 'chn = chn & " " & .Offset(, 4) & " " & Photo 'signé sans 2 parenthèses.
2) comment supprimer le N°Photo originale par ex ==> 1972 A-PM-B 050x65 Schiaffino à quai (BD).jpg ?
je te confirme que c'est à partir du N° Photo originale que l'on peut définir les col B,C,D, E,F. L'information I permet d'identifier la phot originale à la photo renommée. Pour moi c'est important car les photos originales sont conservées. Donc rien de changé si I est confirmé ==>renommage.
3)Décade. erreur de ma part.. le n° photo était erroné le pg créé éventuellement un sous dossier correspondant à l'année et bien sur sans photo . ce qui est fort juste. Ne rien changer.
4) exiftool est une appli bien trop complexe pour moi !!!
Latin cp1252, Latin1 Windows Latin1 (West European)
Merci dany pour toute ton aide très professionnelle.
Amicalement
Yves
dany
>
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
8 août 2017 à 21:25
8 août 2017 à 21:25
Bonsoir Yves,
1) ⚠ Si tu ne veux pas des 2 parenthèses, ce n'est pas tout à fait ce que tu as
écris : il y a un espace en trop devant, car dans la boucle juste au-dessus,
un espace est systématiquement ajouté en fin de chaîne :
chn = "": For i = 1 To 3: chn = chn & .Offset(, i) & " ": Next i
donc il y a déjà un espace devant .Offset(, 4) =>
'chn = chn & .Offset(, 4) & " " & Photo 'signé sans 2 parenthèses
mais peut-être qu'entre "Schiaffino à quai" et "BD" tu préfères
2 espaces plutôt qu'un seul ? ;)
N'oublie pas de voir ce qui se passe quand « Signé » n'est pas indiqué :
c'était le cas en ligne 5 : cellule F5 vide ; et j'ai préféré mettre un "-" ;
titre correspondant : "Z' en attente" ; Z comme Zorro ? ou Z comme
Zorglub (BD Spirou et Fantasio) ? ;) voici le lien :
https://www.bedetheque.com/media/Couvertures/Spirou&Fantasio15ZcommeZorglubC_15102003.jpg
--------------------------------------------------------
2) C'est toujours « N° Photo Canon » (colonne I) qui sert de base pour le reste
=> rien de changé : ça c'est ok ; pour enlever le N° Photo du nouveau nom,
il faut ôter Photo de la même ligne qu'au point 1) :
chn = chn & "(" & .Offset(, 4) & ").jpg"
=> "A-PM-B 050x65 Schiaffino à quai (BD).jpg"
'chn = chn & .Offset(, 4) & ".jpg" 'signé sans 2 parenthèses
=> "A-PM-B 050x65 Schiaffino à quai BD.jpg"
--------------------------------------------------------
3) ok ; tu me rassures : j'ai cru que mon code VBA se mettait à dérailler ! ;P
--------------------------------------------------------
4) Pour moi aussi, EXIFTOOL est un programme bien complexe, avec toutes
ses multiples options ; je ne le connaissais pas, et c'est toi qui me l'a fait
découvrir ; comme j'ai l'habitude des commandes DOS (dont aussi leur
syntaxe), j'ai pu me débrouiller assez facilement avec les commutateurs
de la commande EXIFTOOL, même si « - » et pas « / » devant ;)
À te lire pour la suite (complément d'info ou adaptation).
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
>
dany
9 août 2017 à 20:07
9 août 2017 à 20:07
Bonsoir dany,
1) effectivement je n'avais pas remarqué que j'avais inséré un espace de trop.
j'ai pris en compte ta formule
'chn = chn & .Offset(, 4) & " " & Photo 'signé sans 2 parenthèses.
2) je garde sous le coude ce code au cas ou cette info n'est plus nécessaire..
En revanche, je n'indique plus "année" dans le renommage de la photo comme au début
Une idée du code à modifier.
Merci dany
1) effectivement je n'avais pas remarqué que j'avais inséré un espace de trop.
j'ai pris en compte ta formule
'chn = chn & .Offset(, 4) & " " & Photo 'signé sans 2 parenthèses.
2) je garde sous le coude ce code au cas ou cette info n'est plus nécessaire..
En revanche, je n'indique plus "année" dans le renommage de la photo comme au début
Une idée du code à modifier.
Merci dany
dany
>
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
Modifié le 9 août 2017 à 20:49
Modifié le 9 août 2017 à 20:49
Bonsoir Yves,
Tu as écris :
« je n'indique plus "année" dans le renommage de la photo comme au début »
Je ne comprends pas cette demande car c'est déjà fait : le nouveau nom
d'une photo ne contient ni la décade, ni l'année ; exemple :
"A-PM-B 050x65 Schiaffino à quai (BD).jpg"
en laissant les parenthèses (qui sont pratiques si « Signé » est vide)
et sans le n° de la photo (= nom d'origine) ; alors ? ^^
Tu as bien le code VBA de mon message du 7 août, n'est-ce pas ?
https://forums.commentcamarche.net/forum/affich-34752983-executer-un-fichier-cmd#27
Mon lien vers le fichier Excel est toujours valable :
https://mon-partage.fr/f/QLda20r4/
À te lire.
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
5 août 2017 à 19:50
5 août 2017 à 19:50
Bonsoir dany,
J'ai répondu à tes questions et depuis silence complet.
aurai-je usé ta patience ou dis quelque chose qu'il ne fallait pas.
Bonne soirée
J'ai répondu à tes questions et depuis silence complet.
aurai-je usé ta patience ou dis quelque chose qu'il ne fallait pas.
Bonne soirée
Bonjour Yves,
Désolé pour le retard, mais ça a été un peu plus compliqué que prévu.
Pour ta copie d'écran de la feuille "liste" :
1) La ligne d'en-têtes est la ligne 1 : "Décade", "Année", etc...
tu as activé le mode "Filtre automatique", attention : ce filtre te donne les
résultats pour un tableau dont la dernière ligne précède une ligne vide :
le filtre "pense" donc que ton tableau se termine à la ligne n° 10 et ne
prendra pas en compte tes lignes 13 à 15 ; la ligne 2 est masquée, et je
pense qu'elle est vide => ton filtre ne "vois" même pas les lignes 3 à10 !
quand on utilise un filtre, il ne doit y avoir aucune ligne vide entre les
lignes de données ; à rectifier => ta 1ère ligne de données sera la 2.
2) Pour la décade : il n'y a pas besoin de faire de calcul dessus, donc
je propose cette formule en A2 (à tirer vers le bas) :
=SI(B2="";"";GAUCHE(B2;3) & "0")
------------------------------------------------------
Ta feuille "fichier de commande" est inutile : c'est bien mieux de s'en passer !
Tu peux la supprimer, car le code VBA ne s'en sert pas : il s'occupe de la
feuille "liste" uniquement.
Fichier Excel 2007 : https://mon-partage.fr/f/JG0VMwLh/
Dans le début du code, il y a déjà cette ligne :
Const PathInv As String = "E:\Documents\inventaire\"
Tu pourras donc commencer plus vite les tests. ;)
Fais Ctrl e pour lancer la macro.
------------------------------------------------------
Dans un de tes messages précédents, il y avait une copie d'écran qui montrait
que EXIFTOOL marque parfois des erreurs (= Errors) ou des avertissements
(= Warning) ; j'ai eu du mal à faire en sorte qu'ils ne se produisent pas ; et tu
pourras voir que parfois il n'y en a aucun, d'autres fois ça arrive quand même.
J'ai compris d'où ça vient, mais avant de te le dire, j'aimerai voir si tu arrives
à trouver l'origine du problème ; si tu trouves, chapeau ! car c'est très subtil,
et il faut bien comprendre le mécanisme qui aboutit à l'erreur.
------------------------------------------------------
N'oublie pas de me donner ton avis sur mon code VBA et le reste. ;)
Prends bien le temps de tout voir avant de me répondre !
À te lire.
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
5 août 2017 à 20:39
5 août 2017 à 20:39
merci
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
7 août 2017 à 22:47
7 août 2017 à 22:47
Bonsoir dany,
Excel lentissime ce programme.
Effectivement aucune erreur renvoyer par le Dos et tous mes souhaits exaucés : nb de photos renommées, nb de photos non trouvées, les sous dossiers "Décade" crées (même si aucune photo, c'est pas grave).
Si toutefois je dois changer le renommage des photos ( par ex ne pas prendre en compte la col F ou I) que deviendrai le code?
Je te remercie grandement pour ta patience et toute l'aide que tu m'as apporté pour exploiter ces photos.
Enfin, ta question mystère reste mystérieuse ?
Excel lentissime ce programme.
Effectivement aucune erreur renvoyer par le Dos et tous mes souhaits exaucés : nb de photos renommées, nb de photos non trouvées, les sous dossiers "Décade" crées (même si aucune photo, c'est pas grave).
Si toutefois je dois changer le renommage des photos ( par ex ne pas prendre en compte la col F ou I) que deviendrai le code?
Je te remercie grandement pour ta patience et toute l'aide que tu m'as apporté pour exploiter ces photos.
Enfin, ta question mystère reste mystérieuse ?
Bonjour Yves,
Tu as écris : « Si toutefois je dois changer le renommage des photos (par ex
ne pas prendre en compte la col F ou I) que deviendrait le code ? » ; pour la
colonne F « Signé », son contenu est juste mis comme info supplémentaire
dans le nouveau nom de la photo, entre 2 parenthèses rajoutées :
chn = chn & "(" & .Offset(, 4) & ") " & Photo
donc pour l'enlever : chn = chn & Photo
ou mieux encore, compte tenu du contexte : supprimer toute la ligne
précédente et ajouter Photo sur la ligne suivante, comme ceci :
LPhoto = "photosRen\" & DC & "\" & chn & Photo
---------------------------------------------------
Pour la colonne I « N° Photo Canon », n'oublie pas que son contenu sert
de base pour le nom de la photo originale ! exemple : I12 = "101-7340"
=> photo originale de nom "101-7340(.jpg)".
Si tu ne veux plus te servir de I, que veux-tu faire à la place ? prendre
E « Titre » => photo originale : "Seul face à la mer(.jpg)" ? dans ce cas,
le renommage servirait seulement à rajouter des infos au début et
à droite pour obtenir le même nom actuel, avec ou sans "(BD)" ;
mais peut-être voudrais-tu faire autre chose ?
=============================
Tu as écris : « les sous-dossiers "Décade" créés » : exact ; puis tu as ajouté :
« (même si aucune photo, c'est pas grave) » : là, je ne comprends plus !!?
car les photos renommées d'une décade donnée sont bien correctement
placées dans le sous-dossier de la décade correspondante.
1) Tu dois te placer dans ton dossier : E:\Documents\inventaire
2) Lance Excel, et ouvre le fichier "inventaire" du dossier ci-dessus.
3) Ctrl e : exécute la macro => la photo "101-7340(.jpg)" est copiée dans
E:\Documents\inventaire\photosRen\2010 sous son nouveau nom :
"A-C-B 020x41 Seul face à la mer (BM) 101-7340(.jpg)"
À propos, c'est mieux de garder le dossier photosRen => 2 avantages :
a) sans ce dossier, tes dossiers décades seraient alors dans le dossier
"inventaire", et quand tu en auras beaucoup, "Inventaire.xlsm" et
"renphotos.cmd" se retrouveront tout à la fin ; et si un utilisateur
veut supprimer un dossier décade dont il ne veut plus, imagine
qu'il sélectionne par erreur "Inventaire.xlsm" ! :(
b) la taille du dossier photosRen te donne la place occupée sur E:
pour toutes les photos renommées (de toutes les décades), et
cela sans inclure la taille des fichiers du dossier "inventaire".
=============================
Réponse à la question mystère :
1) Messages d'erreur, tels que « Error: File not found - 101-7332.jpg » :
ça signifie que EXIFTOOL n'a pas trouvé le fichier de la photo originale
=> solution : dans renphotos.cmd, avant de lancer EXIFTOOL, ajouter
un test d'existence du fichier : si le fichier de la photo originale existe,
faire le travail de renommage, sinon, on affiche "Photo non trouvée".
2) Si le fichier de la photo renommée existe déjà dans le dossier de
la décade de destination, EXIFTOOL met un message d'erreur avec
"already exist" (= déjà existant) => solution : dans renphotos.cmd,
avant de lancer EXIFTOOL, ajouter un test d'existence du fichier
destination : si non présent, lancer EXIFTOOL ; sinon, on affiche
"Photo existe déjà".
C'est là où j'ai découvert la complication dont je t'avais parlé : malgré ce test
d'existence du fichier de destination, parfois, EXIFTOOL continuait d'afficher
le message « already exist » ! :(
Je me suis rendu compte que ça arrivait pour les fichiers dont le nom comporte
des lettres accentuées, comme « Seul face à la mer », ou « Dauphin à Noël » ;
or EXIFTOOL est un logiciel anglais, et dans l'alphabet anglais, il n'y a aucune
lettre accentuée ; c'est pour ça qu'EXIFTOOL affiche ce genre de message :
« Warning : FileName encoding not specified - 638.jpg » ; mais pas seulement :
il a copié le fichier image sous un nom dont il a changé automatiquement les
lettres non reconnues ! voilà pourquoi mon test d'existence du fichier échouait,
et pourquoi tu as eu un nom tel que "Schiaffino Ó quai (BD)" ; j'ai failli écrire :
« dans ce cas, la seule solution est de trouver une version française du logiciel
EXIFTOOL (s'il en existe) ».
Mais en examinant plus attentivement les divers paramètres d'EXIFTOOL,
j'ai vu le paramètre -charset qui permet d'indiquer ce qu'il faut, mais aussi
à condition que pour la fenêtre DOS, la page de code soit la N° 1252 ;
donc pour régler le problème, 2 choses : a) dans la sub Début() :
Print #1, vbLf & "@echo off & cls & (chcp 1252 > nul) & echo."
Le "> nul" est pour éviter l'affichage de ce message :
"Page de codes activée : 1252".
b) dans la sub CorpsRP(), fin de la ligne EXIFTOOL : au lieu de juste " -L" :
" -L -charset filename=utf8".
Conséquence : les lettres accentuées sont reconnues => y'a plus de message
« Warning ... » et y'a plus de transformation automatique comme à en Ó =>
le test d'existence du fichier de destination n'échoue plus => pas de message
d'erreur "already exist" ; fin d'la réaction en chaîne type « boule de neige ».
rappel : j't'avais bien dit qu'c'était très subtil ! ;)
=============================
Dis-moi si tu as trouvé ou non tes images renommées dans le dossier
Décade de destination ; n'oublie pas qu'il faut "oui" en colonne J !
Je te rappelle que je les ai bien, dans les dossiers "1970" et "2010".
À te lire.
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
14 août 2017 à 18:28
14 août 2017 à 18:28
Cher Dany,
Je te remercie grandement pour toute l'aide apportée à la réalisation de ce projet. L'utilisatrice est pleinement satisfaite également en pensant au temps de saisie gagné.
Oups Mon blocage provenait du nom du dossier Inventaire (I) et fichier inventaire.xlsm (i) !!!
Enfin Ouf c'est tout bon. je note RESOLU.
Bon vent dany
Je te remercie grandement pour toute l'aide apportée à la réalisation de ce projet. L'utilisatrice est pleinement satisfaite également en pensant au temps de saisie gagné.
Oups Mon blocage provenait du nom du dossier Inventaire (I) et fichier inventaire.xlsm (i) !!!
Enfin Ouf c'est tout bon. je note RESOLU.
Bon vent dany
Cher Yves,
J'espère que tu as bien utilisé mon dernier fichier Excel, celui de ce message :
https://forums.commentcamarche.net/forum/affich-34752983-executer-un-fichier-cmd#38
Je pense que tu as remarqué que dans le code VBA, le caractère séparateur
est facilement paramétrable : il suffit de mettre " " (un espace) au lieu de "-"
(un tiret) si ton utilisatrice change d'avis et préfère l'espace (comme avant).
Si tout est réglé et que ton utilisatrice est pleinement satisfaite,
c'est impeccable ! :) merci d'avoir passé le sujet en résolu.
Je te souhaite bon vent à toi aussi, Tabarly. ;)
dany
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
14 oct. 2017 à 16:11
14 oct. 2017 à 16:11
Bonjour dany,
J'espère que tu vas bien et qu'aucun nuage n'assombrisse ton WE.
Tu as eu la gentillesse de laisser la porte ouverte et je reviens te solliciter pour mon problème de chemin.
En septembre je sauvegarde le dossier Inventaire (réalisé sur win7 et excel 2003) sur USB et depuis ce jeudi je teste en vain le renommage (sur win10 et excel 2016).
Après avoir réalisé qu'EXIFTOOL était absent et que sans (k) c'était mieux, j'ai eu l'invite "file not found n° photo" qui comme tu me l'avais dit: le chemin n'est pas bon.
Je vérifie et revérifie, j'enregistre une macro pour définir le chemin, bref je ne m'en sors pas et ne sais où regarder.
Pour lever le doute je joins le chemin du code et le résultat.
Au plaisir de te lire
J'espère que tu vas bien et qu'aucun nuage n'assombrisse ton WE.
Tu as eu la gentillesse de laisser la porte ouverte et je reviens te solliciter pour mon problème de chemin.
En septembre je sauvegarde le dossier Inventaire (réalisé sur win7 et excel 2003) sur USB et depuis ce jeudi je teste en vain le renommage (sur win10 et excel 2016).
Après avoir réalisé qu'EXIFTOOL était absent et que sans (k) c'était mieux, j'ai eu l'invite "file not found n° photo" qui comme tu me l'avais dit: le chemin n'est pas bon.
Je vérifie et revérifie, j'enregistre une macro pour définir le chemin, bref je ne m'en sors pas et ne sais où regarder.
Pour lever le doute je joins le chemin du code et le résultat.
Au plaisir de te lire
Bonjour Yves,
Je vais bien, et j'espère que toi aussi.
C'est bien d'avoir réalisé qu'EXIFTOOL était absent, et d'avoir réussi à l'installer.
Tu as écrit : « sans (k) c'était mieux » ; tu parles de l'info Signé, n'est-ce-pas ?
donc par exemple tu as remplacé "(BD)" par "BD", exact ? ou peut-être
tu me demande de le faire ?
----------------------------------------------
Pour ton problème de chemin, tu as raison : il faudrait adapter PathInv ;
mais ta copie d'écran est trop minuscule, même en utilisant la loupe
de Windows ! et pas de zoom direct sur l'image non plus. :(
Cependant, ton chemin devrait être celui-ci (ou très proche) :
Const PathInv As String = "C:\Users\Yves\Documents\inventaire\"
Si ça résout ton problème, n'oublie pas de m'en informer. ;)
Sinon, fait une copie d'écran plus grande et joins-la via
mon-partage.fr
À te lire.
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
>
dany
15 oct. 2017 à 11:09
15 oct. 2017 à 11:09
https://mon-partage.fr/f/7AplljUX/
le même en plus lisible
Bon dimanche
le même en plus lisible
Bon dimanche
dany
>
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
15 oct. 2017 à 11:22
15 oct. 2017 à 11:22
Dans ce cas, ça devrait marcher avec :
Const PathInv As String = "C:\Users\ygu\Inventaire\"
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
15 oct. 2017 à 14:53
15 oct. 2017 à 14:53
tout à fait d'accord. C'est ce qui est défini dans:ma réponse plus lisible
" ton code fichier 2-invite et code"
Const PathInv As String = "C:\Users\ygu\Inventaire\"
Donc mon chemin est bon
que peux-tu dire sur le renphotos.cmd fichier ci joint
.cmd reconnait les 3 décades des 3 photos
.cmd reconnait les 2 premières mais pas IMG_5028.jpg (normal elle n'existe pas)
peut être un souci sur EXIFTOOL? c'est le seul élément ajouté hormis le dossier Inventaire dans ce pc.
peut-être win 10
et certainement tu auras une suggestion de recherche
" ton code fichier 2-invite et code"
Const PathInv As String = "C:\Users\ygu\Inventaire\"
Donc mon chemin est bon
que peux-tu dire sur le renphotos.cmd fichier ci joint
.cmd reconnait les 3 décades des 3 photos
.cmd reconnait les 2 premières mais pas IMG_5028.jpg (normal elle n'existe pas)
peut être un souci sur EXIFTOOL? c'est le seul élément ajouté hormis le dossier Inventaire dans ce pc.
peut-être win 10
et certainement tu auras une suggestion de recherche
En fait, pour ton lien précédent, bien que le nom du fichier commence par "3-"
je n'ai trouvé qu'une seule image (et pas 3) ; les chiffres 1 2 3 en haut de ton
image ne signifient pas que tu as mis 3 images : ce sont des raccourcis clavier
pour des commandes, comme F pour Fichier ou H pour Accueil. ;)
---------------------------------------------------
La constante PathInv est définie correctement : ok ; mais ensuite, je ne vois
pas bien ce que tu demandes :
a) Les 3 décades 1950, 1960, 1970 ont été reconnues, donc les répertoires
correspondants ont bien été créés.
b) Les 2 photos IMG_4026.jpg et IMG_4027.jpg ont été bien reconnues :
normal, puisqu'elles existent bien.
c) La photo IMG_5028.jpg n'a pas été trouvée : normal aussi puisqu'elle
n'existe pas, ce que tu as confirmé.
---------------------------------------------------
Alors quel est au juste ton problème ? mais je crois l'avoir deviné :
regarde les 4 dernières lignes de ta dernière copie d'écran ; il y a :
echo - Photo non trouv,e : IMG_5028.jpg
echo.
echo 1 photo non trouv,e
echo 2 photos renomm,es
Les lettre « é » apparaissent ainsi : « , » => c'est encore un problème
d'accents ; ça doit être dû à une différence de pages de codes entre
Windows 7 et Windows 10 ; ou à une différence de codes caractères
code ascii / code Windows ; comme je n'ai pas Windows 10, je ne
peux pas faire de tests puis corriger, mais cherche de ces 2 côtés.
Peut-être que pour Windows 10, la page de code à utiliser est 1250
au lieu de 1252 ? si oui, essaye avec cette ligne :
@echo off & cls & (chcp 1250 > nul) & echo.
---------------------------------------------------
Il y a aussi une bizarrerie : le nom du fichier de commandes doit
normalement être : "renphotos.cmd" ; or regarde la barre de titre
de ta copie d'écran : devant le nom du programme « - Bloc-notes »
le nom est "renphotos.cmd.txt" !
Tu devrais renommer ton fichier correctement, et éviter ainsi
cette double extension.
---------------------------------------------------
J'espère que mes infos vont pouvoir te dépanner ;
si oui, merci de m'en informer. ;)
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
16 oct. 2017 à 14:34
16 oct. 2017 à 14:34
Un petit pas mais le principal n'est pas atteint.
l'importation des sous dossiers avec ses photos dans le dossier "renphotos" ne se réalise pas depuis mon pc. le dossier reste obstinément vide. C'était ma relance du 14/10 pour confirmation du chemin. le renphotos est vide de chez vide et le chemin est correct!
Si tu as la possibilité de me renvoyer le code https://mon-partage.fr/f/73TPHFeY/ de cet été pour comparaison sachant que j'ai fait un copié/collé.
Réponses à ton dernier message;
1- nom de fichier 3 était en rapport avec le précédent envoi illisible.
2- a,b,c c'est le résultat du cmd. En réalité le dossier renphotos reste vide.
3-accentuation: ta remarque sur le chcp a résolu ce point (voir reconnaissance caract) .
4- bizard, tu as dit pour le renphotos.cmd. C'est uniquement pour te montrer le contenu ( le .cmd est recréé à chaque exécution de ton code)
@+
l'importation des sous dossiers avec ses photos dans le dossier "renphotos" ne se réalise pas depuis mon pc. le dossier reste obstinément vide. C'était ma relance du 14/10 pour confirmation du chemin. le renphotos est vide de chez vide et le chemin est correct!
Si tu as la possibilité de me renvoyer le code https://mon-partage.fr/f/73TPHFeY/ de cet été pour comparaison sachant que j'ai fait un copié/collé.
Réponses à ton dernier message;
1- nom de fichier 3 était en rapport avec le précédent envoi illisible.
2- a,b,c c'est le résultat du cmd. En réalité le dossier renphotos reste vide.
3-accentuation: ta remarque sur le chcp a résolu ce point (voir reconnaissance caract) .
4- bizard, tu as dit pour le renphotos.cmd. C'est uniquement pour te montrer le contenu ( le .cmd est recréé à chaque exécution de ton code)
@+
1) chcp=850 (au lieu de 1252) a résolu le problème des accents : ok
2) Dans ton message d'hier à 14:53, tu as écrit :
Const PathInv As String = "C:\Users\ygu\Inventaire\"
Donc mon chemin est bon
Mais selon le problème que tu décris, ne serait-ce pas plutôt :
Const PathInv As String = "C:\Users\ygu\Inventaire\"
sur ton PC avec Windows 10, et sur ton PC portable un de ceux-ci :
Const PathInv As String = "C:\Users\ygvu\Inventaire\"
ou :
Const PathInv As String = "C:\Users\yves\Inventaire\"
3) C'est inutile de copier / coller un ancien lien : il était valable du 10/08/2017
au 15/08/2017 => le fichier n'est plus disponible depuis le 16 août. ;)
nouveau lien stp, sauf si ce qui précède a déjà résolu le problème.
Et si c'est bien l'ancien fichier auquel je pense, il devait y avoir :
Const PathInv As String = "E:\Documents\inventaire\" =>
c'est sur ta clé USB ou un disque dur externe, pas sur C:
Si ces infos n'ont pas résolu ton problème, joins ton fichier Excel actuel
et aussi ton fichier renphotos.cmd (celui qui cause le problème).
A+
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
18 oct. 2017 à 17:40
18 oct. 2017 à 17:40
Bonjour dany,
J'ai un onglet "MesCommandes" qui regroupe 3 boutons pour activer le renommage, réinitialiser la feuille inventaire et trier par dim en fonction d'1 ou plusieurs décades (tcd).
Enfin tout marche parfaitement bien à présent!
Pour l'heure, je cherche, d'une part,
à insérer une macro dans Sub genererFichierDeCommande() qui vérifierait l'égalité " n°photo" col I et les "oui" col J sanctionnée par msgbox.
NBVAL(I2:IdLig)-((NB.SI(I2:IdLig;"en attente")+(NB.SI(I2:IdLig;"renommée")))) = NBVAL(J2:JdLig)
et d'autre part, faire un tri AZ en fin du renommage au niveau "Année" col B et "titre" col E.
Merci pour ton aide constante
J'ai un onglet "MesCommandes" qui regroupe 3 boutons pour activer le renommage, réinitialiser la feuille inventaire et trier par dim en fonction d'1 ou plusieurs décades (tcd).
Enfin tout marche parfaitement bien à présent!
Pour l'heure, je cherche, d'une part,
à insérer une macro dans Sub genererFichierDeCommande() qui vérifierait l'égalité " n°photo" col I et les "oui" col J sanctionnée par msgbox.
NBVAL(I2:IdLig)-((NB.SI(I2:IdLig;"en attente")+(NB.SI(I2:IdLig;"renommée")))) = NBVAL(J2:JdLig)
et d'autre part, faire un tri AZ en fin du renommage au niveau "Année" col B et "titre" col E.
Merci pour ton aide constante
Bonjour Yves,
Remplace NBVAL(I2:IdLig) par NBVAL(Range("I2:I" & dLig)
idem pour les autres =>
NBVAL(Range("I2:I" & dLig)-((NB.SI(Range("I2:I" & dLig);"en attente")+(NB.SI(Range("I2:I" & dLig);"renommée")))) = NBVAL(Range("J2:J" & dLig))
Pour le tri, c'est avec .Sort (regarde l'aide VBA correspondante).
ivgu19
Messages postés
52
Date d'inscription
vendredi 1 décembre 2006
Statut
Membre
Dernière intervention
17 février 2018
17 févr. 2018 à 14:52
17 févr. 2018 à 14:52
Bonjour dany,
Puis-je solliciter ton aide sur cette discussion déjà fort longue à propos de la macro renommagePhotos.
Amicalement
Puis-je solliciter ton aide sur cette discussion déjà fort longue à propos de la macro renommagePhotos.
Amicalement