Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Transfert de fichiers photos

37 réponses
Avatar
Olivier
Bonjour,
mon APN transfère mes photos dans un dossier dont le nom est la date du
transfert.
Or je rentre de vacances et dans ce dossier, il y a des photos de 15 jours.
Je souhaiterais copier ces photos à l'aide d'Excel et VBA dans des dossiers
dont le nom est la date de prise de vue.
Est-ce possible ?
Mon problème est que j'ai déjà vu comment on récupère la liste des jpg dans
un dossier, comment on les copie,...
Mais je ne sais pas comment on peut récupérer la date du cliché (Ensuite je
suppose qu'on nomme le dossier avec pour nom la date du cliché et on copie)
Quelqu'un a une idée ?
Merci

PS: J'ai tenté d'aller voir le site Excelabo.net. On me répond page
introuvable : simple bug ou c'est plus grave ?

10 réponses

1 2 3 4
Avatar
Daniel.C
Non, pas besoin, puisque, quand elles sont transférées, les photos ont pour
date de création, la date de prise des photos.
Daniel
"michdenis" a écrit dans le message de news:

| Dans ce cas, il faut, comme le dit Jacques93, aller
| fouiller dans les exifs.

Je suppose que tu as télécharger le fichier de Michel P.
et que tu l'as testé sur un fichier créé de la manière dont
j'ai expliqué pour mon test sur ce fil.

Pour l'avoir fait, j'obtiens un message d'erreur !

Message : Error while loading file
"c:exceltodaytest.jpg"

As-tu rencontré la même difficulté ?

Est-ce que toi ou Jacques connaît la source du problème ?

Est-ce la même chose avec un fichier créé par une application
"dessin" plus élaborée que "Paint" ?



"Daniel.C" a écrit dans le message de news:

La différence entre une copie de fichier et un transfert de photos (par
l'utilitaire XP, au moins) est que ce dernier recopie les attributs
originaux de la photo, dont la date de créationque l'on obtient avec
DateCreated. Cette méthode reste donc valable tant qu'on ne fait ni copier
ni couper de la photo. Dans ce cas, il faut, comme le dit Jacques93, aller
fouiller dans les exifs.
Daniel
"michdenis" a écrit dans le message de news:

Dans mon petit test, j'ai utilisé l'application Paint.exe et
j'ai créé un dessin quelconque enregistré avec l'extension JPG
Par la suite, j'ai copié ce fichier vers un autre répertoire

J'ai obtenu (en se basant sur la date et l'heure du fichier créé)

DateCreated = Moment où j'ai effectué la copie dans le nouveau
répertoire
DateLastModified = Moment où j'ai enregistrer le fichier pour la
première
fois
FileDateTime = donne aussi le moment où j'ai enregistrer le fichier pour
la
première fois.

Tu as une explication ? Je n'ai pas vraiment de temps à y consacrer !

Le demandeur est pour le moins averti ! ;-)










"Daniel.C" a écrit dans le message de news:

J'obtiens bien :
Date de création utilisant "FileDateTime" : 19/07/2008... (date de copie
de
l'appareil photo à l'ordi)
Created: 29/06/2008...
Last accessed 03/08/2008...
Daniel
"michdenis" a écrit dans le message de news:
ueDZk$
Je ne suis pas d'accord avec toi et l'utilisation
que tu fais de DateCreated dans l'expression
Dat = fso.GetFile(Source & Fich).DateCreated

Prends un fichier JPG et copie le dans un nouveau
répertoire et utilise cette procédure.... ça devrait
suffire comme démonstration ....

'------------------------------------------
Sub Test_Pour_Daniel()

Dim MonFichier As String, S As String
Dim Dcreation As String, Fs As Object, F As Object

'à déterminer
MonFichier = "C:Exceltoday3-08-2008test.jpg"
Dcreation = FileDateTime(MonFichier)

Set Fs = CreateObject("Scripting.FileSystemObject")
Set F = Fs.GetFile(MonFichier)

S = "Date de création utilisant ""FileDateTime"" : " & Dcreation
S = S & vbCrLf + vbCrLf
S = S & "Created: " & F.DateCreated & vbCrLf
S = S & "Last Accessed: " & F.DateLastAccessed & vbCrLf
S = S & "Last Modified: " & F.DateLastModified
MsgBox S, 0, "File Access Info"

End Sub
'------------------------------------------

Correction : ma procédure devrait être ceci :

J'avais omis d'utiliser les variables dans cette
ligne de code :
X = Format(FileDateTime(RépertoireSource & File), "dd-MM-YYYY")

'---------------------------------------------
Sub test()
Dim RépertoireSource As String
Dim File As String, X As String
Dim Vers As String

'**** à déterminer*****
'Où sont les images
RépertoireSource = "C:Exceltoday"

'Où seront créés les nouveaux répertoires
'dans lesquels seront les fichiers aboutiront.
Vers = "C:Exceltoday"
'****************************

'Attribution du premier fichier à traiter
File = Dir(RépertoireSource & "*.jpg")

'boucle sur tous les fichiers images du
'répertoire source
Do While File <> ""
'Extraire la date de créaition du fichier
X = Format(FileDateTime(RépertoireSource & File), "dd-MM-YYYY")
'création du fichier X si absent
Shell Environ("comspec") & " /c mkdir " & Vers & X & "", 0
'Déplacement du fichier répertoire source
'vers nouveau répertoire
Shell Environ("comspec") & _
" /c Move " & RépertoireSource & File & _
" " & Vers & X, 0
'Traitement du nouveau fichier
File = Dir
Loop

End Sub
'---------------------------------------------




"Daniel.C" a écrit dans le message de news:

Bonjour et bon dimanche.
J'ai d'abord suivi cette piste, mais "FileDateTime" renvoie la date à
laquelle les photos ont été copiées sur l'ordinateur.
Cordialement.
Daniel
"michdenis" a écrit dans le message de news:
eZ8$
Tu as aussi ceci :

Tous les fichiers ayant été créés à une date
donnée seront déplacés vers un répertoire
ayant cette date.

'-----------------------------------------
Sub test()
Dim RépertoireSource As String
Dim File As String, X As String
Dim Vers As String

'**** à déterminer*****
'Où sont les images
RépertoireSource = "C:Exceltoday"

'Où seront créés les nouveaux répertoires
'dans lesquels seront les fichiers aboutiront.
Vers = "C:Exceltoday"
'****************************

'Attribution du premier fichier à traiter
File = Dir(RépertoireSource & "*.jpg")

'boucle sur tous les fichiers images du
'répertoire source
Do While File <> ""
'Extraire la date de créaition du fichier
X = Format(FileDateTime("C:Exceltodaytest.jpg"), "dd-MM-YYYY")
'création du fichier X si absent
Shell Environ("comspec") & " /c mkdir " & Vers & X & "", 0
'Déplacement du fichier répertoire source
'vers nouveau répertoire
Shell Environ("comspec") & _
" /c Move " & RépertoireSource & File & _
" " & Vers & X, 0
'Traitement du nouveau fichier
File = Dir
Loop

End Sub
'-----------------------------------------





"Olivier" a écrit dans le message de
news:
489567a3$0$294$
Bonjour,
mon APN transfère mes photos dans un dossier dont le nom est la date du
transfert.
Or je rentre de vacances et dans ce dossier, il y a des photos de 15
jours.
Je souhaiterais copier ces photos à l'aide d'Excel et VBA dans des
dossiers
dont le nom est la date de prise de vue.
Est-ce possible ?
Mon problème est que j'ai déjà vu comment on récupère la liste des jpg
dans
un dossier, comment on les copie,...
Mais je ne sais pas comment on peut récupérer la date du cliché
(Ensuite
je
suppose qu'on nomme le dossier avec pour nom la date du cliché et on
copie)
Quelqu'un a une idée ?
Merci

PS: J'ai tenté d'aller voir le site Excelabo.net. On me répond page
introuvable : simple bug ou c'est plus grave ?

















Avatar
michdenis
Toi, tu parles de photo -> copié sur disque sur en fichier JPG

Moi, d'un fichier image JPG créé par une application comme Paint ...

À cette adresse, tu peux télécharger un freeware Opanda (anglais)
http://www.nemodus.com/fz30/logiciels/util_tutoriaux_fz30.php#opanda

Si tu essaies de lire les exifs d'un fichier image comme proposé,
le logiciel retourne comme message : "No Exif information in the image"

Cela expliquerait le message reçu du fichier de Michel P. lors de mes tests.
sur une image JPG.

Reste à voir comment se comporte un fichier issu d'un appareil photo au
format JPG ?
Et qu'est-ce qui se passe pour que lors d'une copie ou d'un déplacement du
fichier
sur le disque dur, pour que la date de création se modifie ?




"Daniel.C" a écrit dans le message de news:

Non, pas besoin, puisque, quand elles sont transférées, les photos ont pour
date de création, la date de prise des photos.
Daniel
"michdenis" a écrit dans le message de news:

| Dans ce cas, il faut, comme le dit Jacques93, aller
| fouiller dans les exifs.

Je suppose que tu as télécharger le fichier de Michel P.
et que tu l'as testé sur un fichier créé de la manière dont
j'ai expliqué pour mon test sur ce fil.

Pour l'avoir fait, j'obtiens un message d'erreur !

Message : Error while loading file
"c:exceltodaytest.jpg"

As-tu rencontré la même difficulté ?

Est-ce que toi ou Jacques connaît la source du problème ?

Est-ce la même chose avec un fichier créé par une application
"dessin" plus élaborée que "Paint" ?



"Daniel.C" a écrit dans le message de news:

La différence entre une copie de fichier et un transfert de photos (par
l'utilitaire XP, au moins) est que ce dernier recopie les attributs
originaux de la photo, dont la date de créationque l'on obtient avec
DateCreated. Cette méthode reste donc valable tant qu'on ne fait ni copier
ni couper de la photo. Dans ce cas, il faut, comme le dit Jacques93, aller
fouiller dans les exifs.
Daniel
"michdenis" a écrit dans le message de news:

Dans mon petit test, j'ai utilisé l'application Paint.exe et
j'ai créé un dessin quelconque enregistré avec l'extension JPG
Par la suite, j'ai copié ce fichier vers un autre répertoire

J'ai obtenu (en se basant sur la date et l'heure du fichier créé)

DateCreated = Moment où j'ai effectué la copie dans le nouveau
répertoire
DateLastModified = Moment où j'ai enregistrer le fichier pour la
première
fois
FileDateTime = donne aussi le moment où j'ai enregistrer le fichier pour
la
première fois.

Tu as une explication ? Je n'ai pas vraiment de temps à y consacrer !

Le demandeur est pour le moins averti ! ;-)










"Daniel.C" a écrit dans le message de news:

J'obtiens bien :
Date de création utilisant "FileDateTime" : 19/07/2008... (date de copie
de
l'appareil photo à l'ordi)
Created: 29/06/2008...
Last accessed 03/08/2008...
Daniel
"michdenis" a écrit dans le message de news:
ueDZk$
Je ne suis pas d'accord avec toi et l'utilisation
que tu fais de DateCreated dans l'expression
Dat = fso.GetFile(Source & Fich).DateCreated

Prends un fichier JPG et copie le dans un nouveau
répertoire et utilise cette procédure.... ça devrait
suffire comme démonstration ....

'------------------------------------------
Sub Test_Pour_Daniel()

Dim MonFichier As String, S As String
Dim Dcreation As String, Fs As Object, F As Object

'à déterminer
MonFichier = "C:Exceltoday3-08-2008test.jpg"
Dcreation = FileDateTime(MonFichier)

Set Fs = CreateObject("Scripting.FileSystemObject")
Set F = Fs.GetFile(MonFichier)

S = "Date de création utilisant ""FileDateTime"" : " & Dcreation
S = S & vbCrLf + vbCrLf
S = S & "Created: " & F.DateCreated & vbCrLf
S = S & "Last Accessed: " & F.DateLastAccessed & vbCrLf
S = S & "Last Modified: " & F.DateLastModified
MsgBox S, 0, "File Access Info"

End Sub
'------------------------------------------

Correction : ma procédure devrait être ceci :

J'avais omis d'utiliser les variables dans cette
ligne de code :
X = Format(FileDateTime(RépertoireSource & File), "dd-MM-YYYY")

'---------------------------------------------
Sub test()
Dim RépertoireSource As String
Dim File As String, X As String
Dim Vers As String

'**** à déterminer*****
'Où sont les images
RépertoireSource = "C:Exceltoday"

'Où seront créés les nouveaux répertoires
'dans lesquels seront les fichiers aboutiront.
Vers = "C:Exceltoday"
'****************************

'Attribution du premier fichier à traiter
File = Dir(RépertoireSource & "*.jpg")

'boucle sur tous les fichiers images du
'répertoire source
Do While File <> ""
'Extraire la date de créaition du fichier
X = Format(FileDateTime(RépertoireSource & File), "dd-MM-YYYY")
'création du fichier X si absent
Shell Environ("comspec") & " /c mkdir " & Vers & X & "", 0
'Déplacement du fichier répertoire source
'vers nouveau répertoire
Shell Environ("comspec") & _
" /c Move " & RépertoireSource & File & _
" " & Vers & X, 0
'Traitement du nouveau fichier
File = Dir
Loop

End Sub
'---------------------------------------------




"Daniel.C" a écrit dans le message de news:

Bonjour et bon dimanche.
J'ai d'abord suivi cette piste, mais "FileDateTime" renvoie la date à
laquelle les photos ont été copiées sur l'ordinateur.
Cordialement.
Daniel
"michdenis" a écrit dans le message de news:
eZ8$
Tu as aussi ceci :

Tous les fichiers ayant été créés à une date
donnée seront déplacés vers un répertoire
ayant cette date.

'-----------------------------------------
Sub test()
Dim RépertoireSource As String
Dim File As String, X As String
Dim Vers As String

'**** à déterminer*****
'Où sont les images
RépertoireSource = "C:Exceltoday"

'Où seront créés les nouveaux répertoires
'dans lesquels seront les fichiers aboutiront.
Vers = "C:Exceltoday"
'****************************

'Attribution du premier fichier à traiter
File = Dir(RépertoireSource & "*.jpg")

'boucle sur tous les fichiers images du
'répertoire source
Do While File <> ""
'Extraire la date de créaition du fichier
X = Format(FileDateTime("C:Exceltodaytest.jpg"), "dd-MM-YYYY")
'création du fichier X si absent
Shell Environ("comspec") & " /c mkdir " & Vers & X & "", 0
'Déplacement du fichier répertoire source
'vers nouveau répertoire
Shell Environ("comspec") & _
" /c Move " & RépertoireSource & File & _
" " & Vers & X, 0
'Traitement du nouveau fichier
File = Dir
Loop

End Sub
'-----------------------------------------





"Olivier" a écrit dans le message de
news:
489567a3$0$294$
Bonjour,
mon APN transfère mes photos dans un dossier dont le nom est la date du
transfert.
Or je rentre de vacances et dans ce dossier, il y a des photos de 15
jours.
Je souhaiterais copier ces photos à l'aide d'Excel et VBA dans des
dossiers
dont le nom est la date de prise de vue.
Est-ce possible ?
Mon problème est que j'ai déjà vu comment on récupère la liste des jpg
dans
un dossier, comment on les copie,...
Mais je ne sais pas comment on peut récupérer la date du cliché
(Ensuite
je
suppose qu'on nomme le dossier avec pour nom la date du cliché et on
copie)
Quelqu'un a une idée ?
Merci

PS: J'ai tenté d'aller voir le site Excelabo.net. On me répond page
introuvable : simple bug ou c'est plus grave ?

















Avatar
Modeste
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :

Dans ce cas, il faut, comme
le dit Jacques93, aller fouiller dans les exifs.



et surtout comprendre comment ça marche,
savoir que c'est un "standard" avec lequel les constructeurs d'appareils numériques se donne beaucoup de lattitude ;o)))

le standard :
http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandar d2.pdf

un outil :
http://owl.phy.queensu.ca/~phil/exiftool/index.html
http://owl.phy.queensu.ca/~phil/exiftool/exiftool-7.39.zip

et puis la mise en oeuvre :
http://owl.phy.queensu.ca/~phil/exiftool/TagNames/

--
@+
;o)))
Avatar
LSteph
Bonjour,

La date de création du cliché sera dans la 5ème colonne:

'''''****code Module1*******
Sub LireInfosJpg(chemin)
'Dans outil réferences cocher Microsoft Shell Controls and Automation


Dim myShell As Shell
Dim myFolder As Folder
Dim myfile As FolderItem
Dim i As Byte, f As String, lig As Long


ActiveWorkbook.Sheets.Add after:=Sheets(Sheets.Count)


Set myShell = CreateObject("Shell.Application")
Set myFolder = myShell.Namespace(chemin)
Set myfile = myFolder.Items.Item(f)
Application.ScreenUpdating = False
[a:ah].ClearContents
For i = 0 To 34
If myFolder.GetDetailsOf(myfile, i) <> "" Then _
Cells(1, i + 1) = myFolder.GetDetailsOf(myfile, i)
Next
f = Dir(chemin & "*.jpg")
Do While Len(f) > 0
Set myfile = myFolder.Items.Item(f)
lig = [a65536].End(xlUp)(2).Row
For i = 0 To 34
If myFolder.GetDetailsOf(myfile, i) <> "" Then _
Cells(lig, i + 1) = myFolder.GetDetailsOf(myfile, i)
Next
f = Dir
Loop
Set myShell = Nothing
Set myFolder = Nothing
Set myfile = Nothing
End Sub

'lSteph

Olivier a écrit :
Bonjour,
mon APN transfère mes photos dans un dossier dont le nom est la date du
transfert.
Or je rentre de vacances et dans ce dossier, il y a des photos de 15 jours.
Je souhaiterais copier ces photos à l'aide d'Excel et VBA dans des dossiers
dont le nom est la date de prise de vue.
Est-ce possible ?
Mon problème est que j'ai déjà vu comment on récupère la liste des jpg dans
un dossier, comment on les copie,...
Mais je ne sais pas comment on peut récupérer la date du cliché (Ensuite je
suppose qu'on nomme le dossier avec pour nom la date du cliché et on copie)
Quelqu'un a une idée ?
Merci

PS: J'ai tenté d'aller voir le site Excelabo.net. On me répond page
introuvable : simple bug ou c'est plus grave ?





Avatar
Daniel.C
Désolé, pas trop le temps en ce moment. Je ne peux même pas poster une photo
: trop volumineuse. Si je les redimensionne, je perds tous les attributs.
;-((
Daniel

"michdenis" a écrit dans le message de news:

Toi, tu parles de photo -> copié sur disque sur en fichier JPG

Moi, d'un fichier image JPG créé par une application comme Paint ...

À cette adresse, tu peux télécharger un freeware Opanda (anglais)
http://www.nemodus.com/fz30/logiciels/util_tutoriaux_fz30.php#opanda

Si tu essaies de lire les exifs d'un fichier image comme proposé,
le logiciel retourne comme message : "No Exif information in the image"

Cela expliquerait le message reçu du fichier de Michel P. lors de mes
tests.
sur une image JPG.

Reste à voir comment se comporte un fichier issu d'un appareil photo au
format JPG ?
Et qu'est-ce qui se passe pour que lors d'une copie ou d'un déplacement du
fichier
sur le disque dur, pour que la date de création se modifie ?




"Daniel.C" a écrit dans le message de news:

Non, pas besoin, puisque, quand elles sont transférées, les photos ont
pour
date de création, la date de prise des photos.
Daniel
"michdenis" a écrit dans le message de news:

| Dans ce cas, il faut, comme le dit Jacques93, aller
| fouiller dans les exifs.

Je suppose que tu as télécharger le fichier de Michel P.
et que tu l'as testé sur un fichier créé de la manière dont
j'ai expliqué pour mon test sur ce fil.

Pour l'avoir fait, j'obtiens un message d'erreur !

Message : Error while loading file
"c:exceltodaytest.jpg"

As-tu rencontré la même difficulté ?

Est-ce que toi ou Jacques connaît la source du problème ?

Est-ce la même chose avec un fichier créé par une application
"dessin" plus élaborée que "Paint" ?



"Daniel.C" a écrit dans le message de news:

La différence entre une copie de fichier et un transfert de photos (par
l'utilitaire XP, au moins) est que ce dernier recopie les attributs
originaux de la photo, dont la date de créationque l'on obtient avec
DateCreated. Cette méthode reste donc valable tant qu'on ne fait ni
copier
ni couper de la photo. Dans ce cas, il faut, comme le dit Jacques93,
aller
fouiller dans les exifs.
Daniel
"michdenis" a écrit dans le message de news:

Dans mon petit test, j'ai utilisé l'application Paint.exe et
j'ai créé un dessin quelconque enregistré avec l'extension JPG
Par la suite, j'ai copié ce fichier vers un autre répertoire

J'ai obtenu (en se basant sur la date et l'heure du fichier créé)

DateCreated = Moment où j'ai effectué la copie dans le nouveau
répertoire
DateLastModified = Moment où j'ai enregistrer le fichier pour la
première
fois
FileDateTime = donne aussi le moment où j'ai enregistrer le fichier pour
la
première fois.

Tu as une explication ? Je n'ai pas vraiment de temps à y consacrer !

Le demandeur est pour le moins averti ! ;-)










"Daniel.C" a écrit dans le message de news:

J'obtiens bien :
Date de création utilisant "FileDateTime" : 19/07/2008... (date de copie
de
l'appareil photo à l'ordi)
Created: 29/06/2008...
Last accessed 03/08/2008...
Daniel
"michdenis" a écrit dans le message de news:
ueDZk$
Je ne suis pas d'accord avec toi et l'utilisation
que tu fais de DateCreated dans l'expression
Dat = fso.GetFile(Source & Fich).DateCreated

Prends un fichier JPG et copie le dans un nouveau
répertoire et utilise cette procédure.... ça devrait
suffire comme démonstration ....

'------------------------------------------
Sub Test_Pour_Daniel()

Dim MonFichier As String, S As String
Dim Dcreation As String, Fs As Object, F As Object

'à déterminer
MonFichier = "C:Exceltoday3-08-2008test.jpg"
Dcreation = FileDateTime(MonFichier)

Set Fs = CreateObject("Scripting.FileSystemObject")
Set F = Fs.GetFile(MonFichier)

S = "Date de création utilisant ""FileDateTime"" : " & Dcreation
S = S & vbCrLf + vbCrLf
S = S & "Created: " & F.DateCreated & vbCrLf
S = S & "Last Accessed: " & F.DateLastAccessed & vbCrLf
S = S & "Last Modified: " & F.DateLastModified
MsgBox S, 0, "File Access Info"

End Sub
'------------------------------------------

Correction : ma procédure devrait être ceci :

J'avais omis d'utiliser les variables dans cette
ligne de code :
X = Format(FileDateTime(RépertoireSource & File), "dd-MM-YYYY")

'---------------------------------------------
Sub test()
Dim RépertoireSource As String
Dim File As String, X As String
Dim Vers As String

'**** à déterminer*****
'Où sont les images
RépertoireSource = "C:Exceltoday"

'Où seront créés les nouveaux répertoires
'dans lesquels seront les fichiers aboutiront.
Vers = "C:Exceltoday"
'****************************

'Attribution du premier fichier à traiter
File = Dir(RépertoireSource & "*.jpg")

'boucle sur tous les fichiers images du
'répertoire source
Do While File <> ""
'Extraire la date de créaition du fichier
X = Format(FileDateTime(RépertoireSource & File), "dd-MM-YYYY")
'création du fichier X si absent
Shell Environ("comspec") & " /c mkdir " & Vers & X & "", 0
'Déplacement du fichier répertoire source
'vers nouveau répertoire
Shell Environ("comspec") & _
" /c Move " & RépertoireSource & File & _
" " & Vers & X, 0
'Traitement du nouveau fichier
File = Dir
Loop

End Sub
'---------------------------------------------




"Daniel.C" a écrit dans le message de news:

Bonjour et bon dimanche.
J'ai d'abord suivi cette piste, mais "FileDateTime" renvoie la date à
laquelle les photos ont été copiées sur l'ordinateur.
Cordialement.
Daniel
"michdenis" a écrit dans le message de news:
eZ8$
Tu as aussi ceci :

Tous les fichiers ayant été créés à une date
donnée seront déplacés vers un répertoire
ayant cette date.

'-----------------------------------------
Sub test()
Dim RépertoireSource As String
Dim File As String, X As String
Dim Vers As String

'**** à déterminer*****
'Où sont les images
RépertoireSource = "C:Exceltoday"

'Où seront créés les nouveaux répertoires
'dans lesquels seront les fichiers aboutiront.
Vers = "C:Exceltoday"
'****************************

'Attribution du premier fichier à traiter
File = Dir(RépertoireSource & "*.jpg")

'boucle sur tous les fichiers images du
'répertoire source
Do While File <> ""
'Extraire la date de créaition du fichier
X = Format(FileDateTime("C:Exceltodaytest.jpg"), "dd-MM-YYYY")
'création du fichier X si absent
Shell Environ("comspec") & " /c mkdir " & Vers & X & "", 0
'Déplacement du fichier répertoire source
'vers nouveau répertoire
Shell Environ("comspec") & _
" /c Move " & RépertoireSource & File & _
" " & Vers & X, 0
'Traitement du nouveau fichier
File = Dir
Loop

End Sub
'-----------------------------------------





"Olivier" a écrit dans le message de
news:
489567a3$0$294$
Bonjour,
mon APN transfère mes photos dans un dossier dont le nom est la date
du
transfert.
Or je rentre de vacances et dans ce dossier, il y a des photos de 15
jours.
Je souhaiterais copier ces photos à l'aide d'Excel et VBA dans des
dossiers
dont le nom est la date de prise de vue.
Est-ce possible ?
Mon problème est que j'ai déjà vu comment on récupère la liste des jpg
dans
un dossier, comment on les copie,...
Mais je ne sais pas comment on peut récupérer la date du cliché
(Ensuite
je
suppose qu'on nomme le dossier avec pour nom la date du cliché et on
copie)
Quelqu'un a une idée ?
Merci

PS: J'ai tenté d'aller voir le site Excelabo.net. On me répond page
introuvable : simple bug ou c'est plus grave ?





















Avatar
michdenis
| Je ne peux même pas poster une photo trop volumineuse

Tu peux envoyer ta photo directement à mon adresse Hotmail !.
Avatar
michdenis
Avec la procédure que tu as publiée :

lorsque le fichier est créé avec Paint, comme j'expliquai
sur ce fil, j'obtiens ceci :

DateCreated = Moment où j'ai effectué la copie dans le nouveau répertoire
DateLastModified = Moment où j'ai enregistrer le fichier pour la première
fois
FileDateTime = donne aussi le moment où j'ai enregistrer le fichier pour la
première fois.






"LSteph" a écrit dans le message de news:

Bonjour,

La date de création du cliché sera dans la 5ème colonne:

'''''****code Module1*******
Sub LireInfosJpg(chemin)
'Dans outil réferences cocher Microsoft Shell Controls and Automation


Dim myShell As Shell
Dim myFolder As Folder
Dim myfile As FolderItem
Dim i As Byte, f As String, lig As Long


ActiveWorkbook.Sheets.Add after:=Sheets(Sheets.Count)


Set myShell = CreateObject("Shell.Application")
Set myFolder = myShell.Namespace(chemin)
Set myfile = myFolder.Items.Item(f)
Application.ScreenUpdating = False
[a:ah].ClearContents
For i = 0 To 34
If myFolder.GetDetailsOf(myfile, i) <> "" Then _
Cells(1, i + 1) = myFolder.GetDetailsOf(myfile, i)
Next
f = Dir(chemin & "*.jpg")
Do While Len(f) > 0
Set myfile = myFolder.Items.Item(f)
lig = [a65536].End(xlUp)(2).Row
For i = 0 To 34
If myFolder.GetDetailsOf(myfile, i) <> "" Then _
Cells(lig, i + 1) = myFolder.GetDetailsOf(myfile, i)
Next
f = Dir
Loop
Set myShell = Nothing
Set myFolder = Nothing
Set myfile = Nothing
End Sub

'lSteph

Olivier a écrit :
Bonjour,
mon APN transfère mes photos dans un dossier dont le nom est la date du
transfert.
Or je rentre de vacances et dans ce dossier, il y a des photos de 15
jours.
Je souhaiterais copier ces photos à l'aide d'Excel et VBA dans des
dossiers
dont le nom est la date de prise de vue.
Est-ce possible ?
Mon problème est que j'ai déjà vu comment on récupère la liste des jpg
dans
un dossier, comment on les copie,...
Mais je ne sais pas comment on peut récupérer la date du cliché (Ensuite
je
suppose qu'on nomme le dossier avec pour nom la date du cliché et on
copie)
Quelqu'un a une idée ?
Merci

PS: J'ai tenté d'aller voir le site Excelabo.net. On me répond page
introuvable : simple bug ou c'est plus grave ?





Avatar
LSteph
Bonjour MD,

je comprends , c'est logique selon ce que tu décris mais
s'agissant de photos ce n'est pas avec paint
mais selon la date de prise de vue, avec un appareil photo!

Il y a 34 éléments, essaie avec un rep qui contient des vraies photos.

Cordialement.

--
lSteph


michdenis a écrit :
Avec la procédure que tu as publiée :

lorsque le fichier est créé avec Paint, comme j'expliquai
sur ce fil, j'obtiens ceci :

DateCreated = Moment où j'ai effectué la copie dans le nouveau répertoire
DateLastModified = Moment où j'ai enregistrer le fichier pour la première
fois
FileDateTime = donne aussi le moment où j'ai enregistrer le fichier pour la
première fois.






"LSteph" a écrit dans le message de news:

Bonjour,

La date de création du cliché sera dans la 5ème colonne:

'''''****code Module1*******
Sub LireInfosJpg(chemin)
'Dans outil réferences cocher Microsoft Shell Controls and Automation


Dim myShell As Shell
Dim myFolder As Folder
Dim myfile As FolderItem
Dim i As Byte, f As String, lig As Long


ActiveWorkbook.Sheets.Add after:=Sheets(Sheets.Count)


Set myShell = CreateObject("Shell.Application")
Set myFolder = myShell.Namespace(chemin)
Set myfile = myFolder.Items.Item(f)
Application.ScreenUpdating = False
[a:ah].ClearContents
For i = 0 To 34
If myFolder.GetDetailsOf(myfile, i) <> "" Then _
Cells(1, i + 1) = myFolder.GetDetailsOf(myfile, i)
Next
f = Dir(chemin & "*.jpg")
Do While Len(f) > 0
Set myfile = myFolder.Items.Item(f)
lig = [a65536].End(xlUp)(2).Row
For i = 0 To 34
If myFolder.GetDetailsOf(myfile, i) <> "" Then _
Cells(lig, i + 1) = myFolder.GetDetailsOf(myfile, i)
Next
f = Dir
Loop
Set myShell = Nothing
Set myFolder = Nothing
Set myfile = Nothing
End Sub

'lSteph

Olivier a écrit :
Bonjour,
mon APN transfère mes photos dans un dossier dont le nom est la date du
transfert.
Or je rentre de vacances et dans ce dossier, il y a des photos de 15
jours.
Je souhaiterais copier ces photos à l'aide d'Excel et VBA dans des
dossiers
dont le nom est la date de prise de vue.
Est-ce possible ?
Mon problème est que j'ai déjà vu comment on récupère la liste des jpg
dans
un dossier, comment on les copie,...
Mais je ne sais pas comment on peut récupérer la date du cliché (Ensuite
je
suppose qu'on nomme le dossier avec pour nom la date du cliché et on
copie)
Quelqu'un a une idée ?
Merci

PS: J'ai tenté d'aller voir le site Excelabo.net. On me répond page
introuvable : simple bug ou c'est plus grave ?








Avatar
Daniel.C
Bonsoir.
J'ai une erreur de compil sur la ligne :
Set myfile = myFolder.Items.Item(f)
".Items" est en reverse video et le message "Membre de méthode ou de donnée
introuvable". Votre avis, docteur ?
Cordialement.
Daniel
"LSteph" a écrit dans le message de news:

Bonjour,

La date de création du cliché sera dans la 5ème colonne:

'''''****code Module1*******
Sub LireInfosJpg(chemin)
'Dans outil réferences cocher Microsoft Shell Controls and Automation


Dim myShell As Shell
Dim myFolder As Folder
Dim myfile As FolderItem
Dim i As Byte, f As String, lig As Long


ActiveWorkbook.Sheets.Add after:=Sheets(Sheets.Count)


Set myShell = CreateObject("Shell.Application")
Set myFolder = myShell.Namespace(chemin)
Set myfile = myFolder.Items.Item(f)
Application.ScreenUpdating = False
[a:ah].ClearContents
For i = 0 To 34
If myFolder.GetDetailsOf(myfile, i) <> "" Then _
Cells(1, i + 1) = myFolder.GetDetailsOf(myfile, i)
Next
f = Dir(chemin & "*.jpg")
Do While Len(f) > 0
Set myfile = myFolder.Items.Item(f)
lig = [a65536].End(xlUp)(2).Row
For i = 0 To 34
If myFolder.GetDetailsOf(myfile, i) <> "" Then _
Cells(lig, i + 1) = myFolder.GetDetailsOf(myfile, i)
Next
f = Dir
Loop
Set myShell = Nothing
Set myFolder = Nothing
Set myfile = Nothing
End Sub

'lSteph

Olivier a écrit :
Bonjour,
mon APN transfère mes photos dans un dossier dont le nom est la date du
transfert.
Or je rentre de vacances et dans ce dossier, il y a des photos de 15
jours.
Je souhaiterais copier ces photos à l'aide d'Excel et VBA dans des
dossiers dont le nom est la date de prise de vue.
Est-ce possible ?
Mon problème est que j'ai déjà vu comment on récupère la liste des jpg
dans un dossier, comment on les copie,...
Mais je ne sais pas comment on peut récupérer la date du cliché (Ensuite
je suppose qu'on nomme le dossier avec pour nom la date du cliché et on
copie)
Quelqu'un a une idée ?
Merci

PS: J'ai tenté d'aller voir le site Excelabo.net. On me répond page
introuvable : simple bug ou c'est plus grave ?






Avatar
michdenis
On peut utiliser ceci pour n'obtenir que le nom des fichiers et leur date de
création.

'--------------------------------------------
Sub test()
LireInfosJpg "c:Exceltoday"
End Sub
'--------------------------------------------

Sub LireInfosJpg(chemin)
'Dans outil réferences cocher
' "Microsoft Shell Controls and Automation"

Dim MyShell As Shell, MyFolder As Folder
Dim MyFile As FolderItem
Dim F As String, Lig As Long

ActiveWorkbook.Sheets.Add after:=Sheets(Sheets.Count)

Set MyShell = CreateObject("Shell.Application")
Set MyFolder = MyShell.Namespace(chemin)
Range("A1") = "Nom du Fichier"
Range("B1") = "Date de création"
Range("A1:B1").Font.Bold = True

F = Dir(chemin & "*.jpg")
Lig = 2
Do While Len(F) > 0
Set MyFile = MyFolder.Items.Item(F)
If MyFolder.GetDetailsOf(MyFile, 0) <> "" Then
Range("A" & Lig) = MyFolder.GetDetailsOf(MyFile, 0)
Range("B" & Lig) = MyFolder.GetDetailsOf(MyFile, 4)
Lig = Lig + 1
End If
F = Dir
Loop
Range("A:B").EntireColumn.AutoFit
Set MyShell = Nothing: Set MyFolder = Nothing: Set MyFile = Nothing

End Sub
'---------------------------------------------




"LSteph" a écrit dans le message de news:

Bonjour,

La date de création du cliché sera dans la 5ème colonne:

'''''****code Module1*******
Sub LireInfosJpg(chemin)
'Dans outil réferences cocher Microsoft Shell Controls and Automation


Dim myShell As Shell
Dim myFolder As Folder
Dim myfile As FolderItem
Dim i As Byte, f As String, lig As Long


ActiveWorkbook.Sheets.Add after:=Sheets(Sheets.Count)


Set myShell = CreateObject("Shell.Application")
Set myFolder = myShell.Namespace(chemin)
Set myfile = myFolder.Items.Item(f)
Application.ScreenUpdating = False
[a:ah].ClearContents
For i = 0 To 34
If myFolder.GetDetailsOf(myfile, i) <> "" Then _
Cells(1, i + 1) = myFolder.GetDetailsOf(myfile, i)
Next
f = Dir(chemin & "*.jpg")
Do While Len(f) > 0
Set myfile = myFolder.Items.Item(f)
lig = [a65536].End(xlUp)(2).Row
For i = 0 To 34
If myFolder.GetDetailsOf(myfile, i) <> "" Then _
Cells(lig, i + 1) = myFolder.GetDetailsOf(myfile, i)
Next
f = Dir
Loop
Set myShell = Nothing
Set myFolder = Nothing
Set myfile = Nothing
End Sub

'lSteph

Olivier a écrit :
Bonjour,
mon APN transfère mes photos dans un dossier dont le nom est la date du
transfert.
Or je rentre de vacances et dans ce dossier, il y a des photos de 15
jours.
Je souhaiterais copier ces photos à l'aide d'Excel et VBA dans des
dossiers
dont le nom est la date de prise de vue.
Est-ce possible ?
Mon problème est que j'ai déjà vu comment on récupère la liste des jpg
dans
un dossier, comment on les copie,...
Mais je ne sais pas comment on peut récupérer la date du cliché (Ensuite
je
suppose qu'on nomme le dossier avec pour nom la date du cliché et on
copie)
Quelqu'un a une idée ?
Merci

PS: J'ai tenté d'aller voir le site Excelabo.net. On me répond page
introuvable : simple bug ou c'est plus grave ?





1 2 3 4