extraire fichiers extrémités de dossiers

3 réponses
Avatar
jip
Bonjour
Je recherche un moyen d'avoir la 1e et la derni=E8re image de dossiers de p=
hotos.
Je ne trouve aucun logiciel pour le faire, ce qui m'=E9tonne.
J'essaye donc autrement :
Avec repprinter je peux avoir sous excel une arborescence de ce type :

17B1_01=09
17B1_01_001.jpg
17B1_01_002.jpg
17B1_01_003.jpg
17B1_01_004.jpg
17B1_01_005.jpg
17B1_01_006.jpg
=09
17B1_02=09
17B1_02_001.jpg
17B1_02_002.jpg
17B1_02_003.jpg
17B1_02_004.jpg
17B1_02_005.jpg
=09
17B1_03=09
17B1_03_001.jpg
17B1_03_002.jpg
17B1_03_003.jpg
17B1_03_004.jpg
etc...
Nom de dossier en colonne A et fichiers en colonne B

Je souhaiterais obtenir en colonne C le nom de la 1e image 17B1_01_001.jpg =
et en colonne D le nom de la derni=E8re 17B1_01_006.jpg, pour le dossier 17=
B1_01, et ce en face de chaque nom de dossiers.
Les vues sont toutes bien num=E9rot=E9es.
Le but est de reporter ces donn=E9es dans un autre fichier excel.
Une astuce ?
Merci

3 réponses

Avatar
DanielCo
Bonjour,
Sub test()
Dim C As Range, Ligne As Long
For Each C In Range("B2", Cells(Rows.Count, 2).End(xlUp))
If C.Offset(-1, -1).Value <> "" Then
Ligne = Ligne + 1
Cells(Ligne, 3).Value = C.Value
End If
If C.Offset(1, -1).Value <> "" Then
Ligne = Ligne + 1
Cells(Ligne, 3).Value = C.Value
End If
Next C
Ligne = Ligne + 1
Cells(Ligne, 3).Value = Cells(Rows.Count, 2).End(xlUp).Value
End Sub
Daniel
jip a formulé ce mercredi :
Bonjour
Je recherche un moyen d'avoir la 1e et la dernière image de dossiers de
photos. Je ne trouve aucun logiciel pour le faire, ce qui m'étonne.
J'essaye donc autrement :
Avec repprinter je peux avoir sous excel une arborescence de ce type :

17B1_01
17B1_01_001.jpg
17B1_01_002.jpg
17B1_01_003.jpg
17B1_01_004.jpg
17B1_01_005.jpg
17B1_01_006.jpg

17B1_02
17B1_02_001.jpg
17B1_02_002.jpg
17B1_02_003.jpg
17B1_02_004.jpg
17B1_02_005.jpg

17B1_03
17B1_03_001.jpg
17B1_03_002.jpg
17B1_03_003.jpg
17B1_03_004.jpg
etc...
Nom de dossier en colonne A et fichiers en colonne B

Je souhaiterais obtenir en colonne C le nom de la 1e image 17B1_01_001.jpg et
en colonne D le nom de la dernière 17B1_01_006.jpg, pour le dossier 17B1_01,
et ce en face de chaque nom de dossiers. Les vues sont toutes bien
numérotées. Le but est de reporter ces données dans un autre fichier excel.
Une astuce ? Merci
Avatar
jip
Le mercredi 13 janvier 2016 11:33:47 UTC+1, DanielCo a écrit :
Bonjour,
Sub test()
Dim C As Range, Ligne As Long
For Each C In Range("B2", Cells(Rows.Count, 2).End(xlUp))
If C.Offset(-1, -1).Value <> "" Then
Ligne = Ligne + 1
Cells(Ligne, 3).Value = C.Value
End If
If C.Offset(1, -1).Value <> "" Then
Ligne = Ligne + 1
Cells(Ligne, 3).Value = C.Value
End If
Next C
Ligne = Ligne + 1
Cells(Ligne, 3).Value = Cells(Rows.Count, 2).End(xlUp).Valu e
End Sub
Daniel



Merci ça fonctionne mais me reporte les résultats en colonne C l'un en dessous de l'autre :

FRAD027_17B1_01_001.jpg
FRAD027_17B1_01_006.jpg


FRAD027_17B1_02_001.jpg
FRAD027_17B1_02_047.jpg


FRAD027_17B1_03_001.jpg
FRAD027_17B1_03_039.jpg

Pas moyen d'avoir
FRAD027_17B1_01_001.jpg en colonne D et FRAD027_17B1_01_006.jpg en colonne C et suivantes ?
la cerise serait en face de colonne A contenant 17B1_01 par exemple, en fai t avoir pour chaque dossier en face le nom de la 1e image et apres colonne suivante le nom de la dernière.
Merci
Avatar
DanielCo
Merci ça fonctionne mais me reporte les résultats en colonne C l'un en
dessous de l'autre :

FRAD027_17B1_01_001.jpg
FRAD027_17B1_01_006.jpg


FRAD027_17B1_02_001.jpg
FRAD027_17B1_02_047.jpg


FRAD027_17B1_03_001.jpg
FRAD027_17B1_03_039.jpg

Pas moyen d'avoir
FRAD027_17B1_01_001.jpg en colonne D et FRAD027_17B1_01_006.jpg en colonne C
et suivantes ? la cerise serait en face de colonne A contenant 17B1_01 par
exemple, en fait avoir pour chaque dossier en face le nom de la 1e image et
apres colonne suivante le nom de la dernière. Merci



Sub test()
Dim C As Range, Ligne As Long
For Each C In Range("B2", Cells(Rows.Count, 2).End(xlUp))
If C.Offset(-1, -1).Value <> "" Then
Ligne = C.Row - 1
Cells(Ligne, 3).Value = C.Value
End If
If C.Offset(1, -1).Value <> "" Then
Cells(Ligne, 4).Value = C.Value
End If
Next C
Cells(Ligne, 4).Value = Cells(Rows.Count, 2).End(xlUp).Value
End Sub
Daniel