Le 21/03/2020 à 12:19
m
max6971
- Messages
- 12
- Excel
- 2013
- Inscrit
- 21/07/2019
TELECHARGEMENTS
Plus de 300 applications Excel sont disponibles gratuitement en téléchargement !
- Budget, gestion de comptes
- Gestion commerciale, personnel
- Plannings, calendriers
- Etc.
Voir les applications ...
Bonjour à tous,
j'ai besoin de vos lumières.
J'ai un fichier excel qui contient une ligne par boite poser par mes équipes avec toutes les informations techniques correspondante à cette boite. j'ai également toutes les photos de la mise en place, installation et mis en fonctionnement.
J'aimerai pouvoir soritr automatique les photos de ce fichier excel en jpeg et qu'elles aient le nom de la boite + la nature de l'action faite.
Merci d'avance de votre aide.
Le 21/03/2020 à 13:57
Invité
Bonjour,
Voici une démo simplette : un fichier contenant une liste avec 2 images et 2 intitulés.
Un bouton "Export" à cliquer => création d'un sous-dossier contenant les 2 images individuelles nommées avec les 2 _intitulés correspondants
rq : les images sont exportées en png (en jpg je sais pas faire)
Pierre
91export-images.zip
Le 21/03/2020 à 14:02
m
max6971
- Messages
- 12
- Excel
- 2013
- Inscrit
- 21/07/2019
Bonjour,
merci de ton retour.
tu penses savoir faire la même choses avec plusieurs photo par ligne et qu'elle porte en nom le nom de la ligne + intitulé de colonne ?
Merci d'avance
Le 21/03/2020 à 14:05
Invité
Même pas peur ... mais à partir d'un fichier exemple que tu vas nous fournir ...
Le 21/03/2020 à 14:29
Invité
En attendant, 2ème démo avec nom de la ligne + intitulé de colonne
28export-images-v2.zip
Le 21/03/2020 à 14:36
m
max6971
- Messages
- 12
- Excel
- 2013
- Inscrit
- 21/07/2019
Bonjour,
voici un fichier exemple
l'idée est la suivante :
Avoir un dossier par numéros de boite
dans chaque dossier avoir des photos portant comme nom :
71306/TUM/PT 500225 (PBO) - PHOTO CASETTE 1
71306/TUM/PT 500225 (PBO) - PHOTO CASETTE 2
16fiche-pose-de-point-de-branchement-20200321.xlsx
Le 21/03/2020 à 15:47
Invité
Mouais,
Tel qu'il a été conçu et complété, ça va être difficile de faire qqchose de correct.
Il y a des décalages, ... c'est moisi ...
Voici un résultat (pourri), pas sûr que j'arrive à mieux sur ce coup là
Pierre
4fiche-pose-de-point-de-branchement-20200321.zip
Le 21/03/2020 à 18:02
Invité
Ouf!
En utilisant une méthode un peu plus complexe, il me semble qu'on arrive à un résultat plus convenable.
Est-ce que c'est mieux?
Pierre
41fiche-pose-de-point-de-branchement-20200321.zip
Le 22/03/2020 à 08:40
m
max6971
- Messages
- 12
- Excel
- 2013
- Inscrit
- 21/07/2019
Bonjour
Nickel
peux tu m'expliquer ton code stp car j'ai plein d'autre fichier du même style
Merci d'avance
Le 22/03/2020 à 09:13
m
max6971
- Messages
- 12
- Excel
- 2013
- Inscrit
- 21/07/2019
et ceci ne marche plus si les photos sont de plus grosse tailles et si il y a plus de ligne dans le fichier
Le 22/03/2020 à 09:42
Invité
Bonjour,
Alors le principe général c'est d'enregistrer le fichier au format web.
Ça permet d'avoir un dossier contenant l'ensemble des images contenues dans le fichier excel.
Mais ces images sont nommées image001.png, image002.png, ...
Il faut donc récupérer :
* la liste des image001.png, image002.png, ... contenues dans le dossier
* la liste des noms des images contenus dans la feuille Excel
* une table de correspondance du genre :
- image001.png correspond à c41030f379455pu380975_20200309150147_000.jpg
- image002.png correspond à etc ...
Les 2 premières listes sont faciles à récupérer, il suffit de boucler sur le dossier pour l'une et boucler sur la feuille pour l'autre.
Pour la table de correspondance : l'enregistrement au format web nous donne un fichier "sheet001.htm".
C'est un fichier html dans lequel il suffit de pointer sur les .png et les .jpg immédiatement placés à la suite. Ce qui nous donne les couples de valeurs recherchées.
Avec tous ces éléments, il ne reste plus qu'à boucler sur la liste des png et pour chacune on cherche dans la table de correspondance pour y trouver le nom du jpg, ce qui nous donne l'emplacement sur la feuille (TopLeftCell.Address), donc la ligne et la colonne.
On a plus qu'à renommer le png avec "entête de ligne + entête de colonne"
(au passage on remplace les / par des _ car Windows n'autorise pas les / dans les noms des fichiers)
Une fois les fichiers renommés, on fait du ménage en effaçant les autres fichiers qui ne servent plus
Et on ré-enregistre le fichier au format xlsm (ce qu'on pourrait d'ailleurs faire avant traitement des .png)
Et voilà!
Ceci étant dit, la limite de la méthode est d'obtenir des images peu lisibles car ce sont des miniatures des jpg d'origine.
Et j'ai vu que le sheet001.htm contient les adresses http de ces images qu'il est tout à fait possible de télécharger.
Du genre :
https://www.kizeoforms.com/data/medias/secure/R3pWYk0yaWFzNko2ZndHcWl0Rm5qWU14cDlyOTV0QkxuTDVQM0ZpYXVXZk1sUEtkOE81eDJ1OVFHNVBTNm9oKythUHhXeGZqdEMyY2JVY0xJMzMrWU9wd2xpSE9ZZVpFL3o2dlh6NnRnWWs9
Je suis donc en train de voir :
1/ comment récupérer l'ensemble de ces adresses
2/ comment relier ces adresses à un nom de fichier du type : c41030f379455pu380975_20200309150147_000.jpg
3/ et enfin comment les télécharger, les copier dans un dossier et les renommer
A suivre donc ... peut être ... à moins que les miniatures suffisent?
Et vive le confinement!!
Pierre
Le 22/03/2020 à 09:46
Invité
max6971 a écrit :
et ceci ne marche plus si les photos sont de plus grosse tailles et si il y a plus de ligne dans le fichier
Le code de la démo proposée est écrit pour les spécificités du fichier exemple indiqué. Pour d'autres fichiers il faut probablement adapter la méthode ...
Et c'est pas gagné d'avance ...
Bon courage pour la suite
Pierre
Le 22/03/2020 à 10:15
Invité
ACCES PREMIUM
Soutenez le site en devenant membre Premium et profitez de plusieurs options exclusives :
- Navigation sans publicités
- Option "No Tracking"
- Option "Mode Incognito"
- Option "Dark Mode"
Plus d'informations ...
Voici un code pour récupérer un tableau de correspondance "lien http<=>nom de jpg"
Function Corresp_Liens()Dim S As String, S2 As VariantDim T As Variant, idx As Integer, i As Integer idx = 1 ReDim T(1 To 2, 1 To idx) S = Lire_Txt(ThisWorkbook.Path & "\Img_fichiers\sheet001.htm") S2 = Split(S, "href=""") For i = 1 To UBound(S2) If InStr(S2(i), "kizeoforms") > 0 Then T(1, idx) = Split(S2(i), """")(0) On Error Resume Next T(2, idx) = Split(Split(S2(i), ">")(2), "<")(0) On Error GoTo 0 idx = idx + 1 ReDim Preserve T(1 To 2, 1 To idx) End If Next i Corresp_Liens = Application.Transpose(T)End Function