Macro pour Fichier Photo sous excel
Résolu/Fermé
cesam69
-
18 mars 2011 à 17:02
AniSal Messages postés 2 Date d'inscription samedi 5 octobre 2013 Statut Membre Dernière intervention 6 octobre 2013 - 6 oct. 2013 à 18:31
AniSal Messages postés 2 Date d'inscription samedi 5 octobre 2013 Statut Membre Dernière intervention 6 octobre 2013 - 6 oct. 2013 à 18:31
A voir également:
- Macro pour Fichier Photo sous excel
- Fichier rar - Guide
- Liste déroulante excel - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Traduction photo gratuit - Guide
8 réponses
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
20 mars 2011 à 01:09
20 mars 2011 à 01:09
Tu peu reprendre le classeur ci-dessus, il est modifié.
Ne se pause plus de question :D, plus de demande d'effacer, de répertoire etc..
Tu peu modifier le nombre de colonnes les textes suivront.
La feuille data ne sera pas régénérée.
J'espère que cette fois c'est la bonne.
A+
Ne se pause plus de question :D, plus de demande d'effacer, de répertoire etc..
Tu peu modifier le nombre de colonnes les textes suivront.
La feuille data ne sera pas régénérée.
J'espère que cette fois c'est la bonne.
A+
eriiic
Messages postés
24571
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
8 mai 2024
7 216
18 mars 2011 à 19:09
18 mars 2011 à 19:09
Bonjour,
Un fichier que j'avais réalisé pour une demande similaire : AffImage.xls
Les explications sont dedans.
eric
Un fichier que j'avais réalisé pour une demande similaire : AffImage.xls
Les explications sont dedans.
eric
eriiic
Messages postés
24571
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
8 mai 2024
7 216
18 mars 2011 à 20:14
18 mars 2011 à 20:14
Re,
Bien sûr que tu peux, mais lermite serait plus à même de te répondre où insérer le code.
Il connait son programme...
En regardant vite fait je dirait que c'est dans le Sub insere_image_ratio du module Images où tu retrouves Cells(Lig, Col).Select
En dessous ajoute Cells(Lig, Col).value= "ton_texte" (ou une variable ou une cellule contenant ton texte).
Ajoute le format de cellule désiré (surtout le positionnement du texte), et il faudra sans doute que tu modifies la hauteur de la cellule (après son calcul) pour que ton image ne masque pas le texte.
eric
Bien sûr que tu peux, mais lermite serait plus à même de te répondre où insérer le code.
Il connait son programme...
En regardant vite fait je dirait que c'est dans le Sub insere_image_ratio du module Images où tu retrouves Cells(Lig, Col).Select
En dessous ajoute Cells(Lig, Col).value= "ton_texte" (ou une variable ou une cellule contenant ton texte).
Ajoute le format de cellule désiré (surtout le positionnement du texte), et il faudra sans doute que tu modifies la hauteur de la cellule (après son calcul) pour que ton image ne masque pas le texte.
eric
OK, je suis vraiment un débutant sur le sujet :
Aussi est il possible de faire en sorte que le choix de la liste puisse être à partir d'une liste de référence sous excel comme pour la macro ci dessous:
Sélection du chemin en colonne C
Sub machin()
Dim Sh As Shape
For Each Sh In Worksheets("Feuil1").Shapes
If Sh.Type = msoPicture Then Sh.Delete
Next
Application.Goto Reference:="Image_Bt"
For Each c In Selection
fich = c.Offset(0, 2).Value
ligne = c.Row
ActiveSheet.Pictures.Insert(fich).Select 'ouverture Image_Bt
With Selection.ShapeRange
.LockAspectRatio = msoTrue 'conserver les proportion
.Height = 60 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
.Left = 40 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
.Top = c.Top + 1 'et positionner verticalement
End With
Next c
End Sub
Pour le Texte il serait en colonne D et comment ajouter le format de Cellule pour le positionnement du texte et comment modifies la hauteur de la cellule (après son calcul) pour que ton image ne masque pas le texte
J'en demande beaucoup, je sais
Merci de ta précieuse aide
Aussi est il possible de faire en sorte que le choix de la liste puisse être à partir d'une liste de référence sous excel comme pour la macro ci dessous:
Sélection du chemin en colonne C
Sub machin()
Dim Sh As Shape
For Each Sh In Worksheets("Feuil1").Shapes
If Sh.Type = msoPicture Then Sh.Delete
Next
Application.Goto Reference:="Image_Bt"
For Each c In Selection
fich = c.Offset(0, 2).Value
ligne = c.Row
ActiveSheet.Pictures.Insert(fich).Select 'ouverture Image_Bt
With Selection.ShapeRange
.LockAspectRatio = msoTrue 'conserver les proportion
.Height = 60 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
.Left = 40 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
.Top = c.Top + 1 'et positionner verticalement
End With
Next c
End Sub
Pour le Texte il serait en colonne D et comment ajouter le format de Cellule pour le positionnement du texte et comment modifies la hauteur de la cellule (après son calcul) pour que ton image ne masque pas le texte
J'en demande beaucoup, je sais
Merci de ta précieuse aide
eriiic
Messages postés
24571
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
8 mai 2024
7 216
18 mars 2011 à 21:44
18 mars 2011 à 21:44
Désolé mais par respect pour le travail de lermite c'est à lui de faire évoluer son programme dans le sens où il l'entend.
C'est plus qu'une adaptation à un cas particulier que tu demandes, tes idées et propositions d'évolutions l'intéresseront probablement.
Ne t'inquiète pas, il vient très régulièrement... ;-)
eric
C'est plus qu'une adaptation à un cas particulier que tu demandes, tes idées et propositions d'évolutions l'intéresseront probablement.
Ne t'inquiète pas, il vient très régulièrement... ;-)
eric
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
18 mars 2011 à 19:28
18 mars 2011 à 19:28
Bonjour,
Tu peu aussi voir ce tuto
A+
Tu peu aussi voir ce tuto
A+
OK, je suis vraiment un débutant sur le sujet :
Aussi est il possible de faire en sorte que le choix de la liste puisse être à partir d'une liste de référence sous excel comme pour la macro ci dessous:
Sélection du chemin en colonne C
Sub machin()
Dim Sh As Shape
For Each Sh In Worksheets("Feuil1").Shapes
If Sh.Type = msoPicture Then Sh.Delete
Next
Application.Goto Reference:="Image_Bt"
For Each c In Selection
fich = c.Offset(0, 2).Value
ligne = c.Row
ActiveSheet.Pictures.Insert(fich).Select 'ouverture Image_Bt
With Selection.ShapeRange
.LockAspectRatio = msoTrue 'conserver les proportion
.Height = 60 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
.Left = 40 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
.Top = c.Top + 1 'et positionner verticalement
End With
Next c
End Sub
Pour le Texte il serait en colonne D et comment ajouter le format de Cellule pour le positionnement du texte et comment modifies la hauteur de la cellule (après son calcul) pour que ton image ne masque pas le texte
J'en demande beaucoup, je sais
Merci de ta précieuse aide
Aussi est il possible de faire en sorte que le choix de la liste puisse être à partir d'une liste de référence sous excel comme pour la macro ci dessous:
Sélection du chemin en colonne C
Sub machin()
Dim Sh As Shape
For Each Sh In Worksheets("Feuil1").Shapes
If Sh.Type = msoPicture Then Sh.Delete
Next
Application.Goto Reference:="Image_Bt"
For Each c In Selection
fich = c.Offset(0, 2).Value
ligne = c.Row
ActiveSheet.Pictures.Insert(fich).Select 'ouverture Image_Bt
With Selection.ShapeRange
.LockAspectRatio = msoTrue 'conserver les proportion
.Height = 60 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
.Left = 40 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
.Top = c.Top + 1 'et positionner verticalement
End With
Next c
End Sub
Pour le Texte il serait en colonne D et comment ajouter le format de Cellule pour le positionnement du texte et comment modifies la hauteur de la cellule (après son calcul) pour que ton image ne masque pas le texte
J'en demande beaucoup, je sais
Merci de ta précieuse aide
Merci c'est exactement ce que je recherche.
Par contre est il possible de mettre du texte sous les photos en automatique à partir d'un Fichier ? comme une référence ou un prix par exemple?
Merci encore pour ton aide
Par contre est il possible de mettre du texte sous les photos en automatique à partir d'un Fichier ? comme une référence ou un prix par exemple?
Merci encore pour ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 18/03/2011 à 23:32
Modifié par lermite222 le 18/03/2011 à 23:32
A part le texte sur l'image, je ne comprend pas ta question, tout est paramétrable, la feuille la/les colonnes, la grandeur, le ratio...
Je regarde demain pour ajouter le texte sous l'image.
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Je regarde demain pour ajouter le texte sous l'image.
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Bonjour,
Je m'explique:
J'extrais sur une feuille excel des informations d'un AS400 ( ref, designation, prix) en fonction de certains paramètres ex typologie produit. ( ex: 20 lignes: Produit 1, Produit 2.......)
J'ai donc en Colonne A ( Plage_ref) les références des produits , en Colonne C (plage_chemin_photo) les chemins grâce à une formule (="z:\"&SUBSTITUE((SUBSTITUE((SUBSTITUE(plage_ref;" ";"_";1));" ";"_";1));" ";"_";1)&".jpg") pour trouver les photos dans un dossier de 10000 photos et en colonne D (Plage_prix) les prix des produits.
Je souhaiterais pouvoir utiliser ta macro en la couplant avec mon extraction en automatique pour que les photos ne soient pas un Fichier sélectionné mais plutôt les références qui ont été extraites de l'AS400 ( Plage_ref).
J'aurai également besoin que l'annulation des anciennes photos dans le fichier image soit automatique sans qu'il y ait un bouton de Demande.
Et enfin pouvoir mettre les prix (Plage_prix) sous les photos correspondante à mes références.
J'en demande beaucoup,
Mais vraiment cela serait super.
Merci pour ton aide
CESAM69
Je m'explique:
J'extrais sur une feuille excel des informations d'un AS400 ( ref, designation, prix) en fonction de certains paramètres ex typologie produit. ( ex: 20 lignes: Produit 1, Produit 2.......)
J'ai donc en Colonne A ( Plage_ref) les références des produits , en Colonne C (plage_chemin_photo) les chemins grâce à une formule (="z:\"&SUBSTITUE((SUBSTITUE((SUBSTITUE(plage_ref;" ";"_";1));" ";"_";1));" ";"_";1)&".jpg") pour trouver les photos dans un dossier de 10000 photos et en colonne D (Plage_prix) les prix des produits.
Je souhaiterais pouvoir utiliser ta macro en la couplant avec mon extraction en automatique pour que les photos ne soient pas un Fichier sélectionné mais plutôt les références qui ont été extraites de l'AS400 ( Plage_ref).
J'aurai également besoin que l'annulation des anciennes photos dans le fichier image soit automatique sans qu'il y ait un bouton de Demande.
Et enfin pouvoir mettre les prix (Plage_prix) sous les photos correspondante à mes références.
J'en demande beaucoup,
Mais vraiment cela serait super.
Merci pour ton aide
CESAM69
eriiic
Messages postés
24571
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
8 mai 2024
7 216
19 mars 2011 à 10:12
19 mars 2011 à 10:12
RE,
J'ai l'impression que tu n'as même pas ouvert le fichier que j'ai mis au post 1...
eric
J'ai l'impression que tu n'as même pas ouvert le fichier que j'ai mis au post 1...
eric
re,
Si j'ai bien vu ta macro , mais je ne peux pas avec sortir plusieurs photos en automatique ou alors je n'ai pas compris le fonctionnement, désolé,
La macro de lermite est très adapté pour moi, sauf que je ne peux pas la mixer avec la tienne car je n'ai pas les connaissances suffisantes.
Si lermite le permet, tu peux me donner un coup de main?
On est pas loin de la solution finale.
Si j'ai bien vu ta macro , mais je ne peux pas avec sortir plusieurs photos en automatique ou alors je n'ai pas compris le fonctionnement, désolé,
La macro de lermite est très adapté pour moi, sauf que je ne peux pas la mixer avec la tienne car je n'ai pas les connaissances suffisantes.
Si lermite le permet, tu peux me donner un coup de main?
On est pas loin de la solution finale.
eriiic
Messages postés
24571
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
8 mai 2024
7 216
20 mars 2011 à 11:33
20 mars 2011 à 11:33
Bonjour,
Si j'ai bien vu ta macro , mais je ne peux pas avec sortir plusieurs photos en automatique ou alors je n'ai pas compris le fonctionnement, désolé,
Il suffit de savoir lire :
' Sélectionner les cellules contenant un lien vers une image et appeler la macro
' AffImage les affichera sur le lien ou dans la colonne de gauche ou de droite
eric
Si j'ai bien vu ta macro , mais je ne peux pas avec sortir plusieurs photos en automatique ou alors je n'ai pas compris le fonctionnement, désolé,
Il suffit de savoir lire :
' Sélectionner les cellules contenant un lien vers une image et appeler la macro
' AffImage les affichera sur le lien ou dans la colonne de gauche ou de droite
eric
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 19/03/2011 à 13:35
Modifié par lermite222 le 19/03/2011 à 13:35
Re,
J'ai adapter le classeur pour afficher du texte sous l'image.
Télécharger
Pour le reste... c'est maintenant à toi de combiner l'exemple d'Eric avec le mien, quand à moi je ne compte pas te faire ton appli en entier.
Eric : dans ton exemple, tu a oublié de mettre un test sur l'InputBox, si pour une raison quelconque ont abandonne le code plante.
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
J'ai adapter le classeur pour afficher du texte sous l'image.
Télécharger
Pour le reste... c'est maintenant à toi de combiner l'exemple d'Eric avec le mien, quand à moi je ne compte pas te faire ton appli en entier.
Eric : dans ton exemple, tu a oublié de mettre un test sur l'InputBox, si pour une raison quelconque ont abandonne le code plante.
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
eriiic
Messages postés
24571
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
8 mai 2024
7 216
Modifié par eriiic le 19/03/2011 à 13:42
Modifié par eriiic le 19/03/2011 à 13:42
Ca fait très longtemps que je me dis que je devrais la reprendre tout remplacer par un formulaire.
Et aussi remplacer les objets images par des rectangles (il y a un bug sur 2007 pour les images récupérées par un lien internet)
Au début c'était un truc tout simple, mais au fur et à mesure des ajouts pour les demandes successives elle commence à ne plus ressembler à rien :-s
Reste à trouver le temps, bientôt peut-être.. ;-)
Je regarderai pour la partie que tu me signales
eric
Et aussi remplacer les objets images par des rectangles (il y a un bug sur 2007 pour les images récupérées par un lien internet)
Au début c'était un truc tout simple, mais au fur et à mesure des ajouts pour les demandes successives elle commence à ne plus ressembler à rien :-s
Reste à trouver le temps, bientôt peut-être.. ;-)
Je regarderai pour la partie que tu me signales
eric
Merci pour ton aide, vraiment,
J'arrive donc a mettre du texte sous les photos, mais cela fonctionne uniquement si j'ai une seul colonne. Si j'ai plusieurs colonne les textes ne suivent plus, il y a le même texte sur toute la colonne.
Tu peux y jeter un Coup d'oeil,
Merci
De plus Comme j'ai dit à Eric Je n'ai pas les compétence pour mixer son Fichier avec le tien aussi cela te gêne si il accepte d'y jeter un coup d'oeil également?
Merci pour ton aide, cette appli va me faire gagner beaucoup de temps, et c'est ce qui manque chez les petits artisans
J'arrive donc a mettre du texte sous les photos, mais cela fonctionne uniquement si j'ai une seul colonne. Si j'ai plusieurs colonne les textes ne suivent plus, il y a le même texte sur toute la colonne.
Tu peux y jeter un Coup d'oeil,
Merci
De plus Comme j'ai dit à Eric Je n'ai pas les compétence pour mixer son Fichier avec le tien aussi cela te gêne si il accepte d'y jeter un coup d'oeil également?
Merci pour ton aide, cette appli va me faire gagner beaucoup de temps, et c'est ce qui manque chez les petits artisans
RE,
En ouvrant ta Macro j'ai vu que tu as laissé des indices, Non?
Il est donc possible de ce servir de la liste qui est sur la feuille data, c'est exactement ce dont j'ai besoin,
J'ai besoin que ta macro ne génère pas la liste sur la feuille data, car je peux la remplir par extraction. J'ai donc besoin que ton appli puisse utiliser cette feuille data remplis par moi et extraire les photos selon ta macro sous image ( qui est super)
Pour moi le langage VBA est du chinois alors comment faire? ou mettre exit fonction?
En ouvrant ta Macro j'ai vu que tu as laissé des indices, Non?
Il est donc possible de ce servir de la liste qui est sur la feuille data, c'est exactement ce dont j'ai besoin,
J'ai besoin que ta macro ne génère pas la liste sur la feuille data, car je peux la remplir par extraction. J'ai donc besoin que ton appli puisse utiliser cette feuille data remplis par moi et extraire les photos selon ta macro sous image ( qui est super)
Pour moi le langage VBA est du chinois alors comment faire? ou mettre exit fonction?
Mike-31
Messages postés
18318
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 avril 2024
5 078
19 mars 2011 à 14:27
19 mars 2011 à 14:27
Salut le fil,
Ci joint un fichier sans VBA que j'avais écrit pour une discussion, il suffit de sélectionner un exercice cellule jaune, cellule verte le nom de l'exercice s'affiche et au dessous le détail, à tester
http://cjoint.com/?1dtoyQjvnOR
Ci joint un fichier sans VBA que j'avais écrit pour une discussion, il suffit de sélectionner un exercice cellule jaune, cellule verte le nom de l'exercice s'affiche et au dessous le détail, à tester
http://cjoint.com/?1dtoyQjvnOR
20 mars 2011 à 21:07
6 oct. 2013 à 00:53
désolé de remonter un vieux sujet
lermite222, bravo pour votre appli,
ça fait un moment que je cherche comment créer un catalogue d'images à partir d'un répertoire
je ne connait pas la programmation VBA mais j'ai réussi à combiner la version V3 (avec zoom) et la version modifié avec l'ajout de texte
mon souci, c'est que le texte que je veux ajouter en bas de l'image, correspond au nom du fichier
exple mon chemin est : c:\....\nomimage.jpg donc je veux que le texte à insérer soit "nomimage"
est ce que vous pouvez m'aider ?
merci d'avance
Modifié par lermite222 le 6/10/2013 à 15:39
J'ai dû un peu me replonger dans l'appli, c'était plus tout frais à ma mémoire :-)
Dans le module Images tu recherche la fonction insere_image_ratio()
Dans le bas de la sub, modifie l'affichage du texte comme suit...
A+
...
Modifié par baladur13 le 6/10/2013 à 16:01
6 oct. 2013 à 18:31
j'y suis arrivé en fin de compte
ci dessous ce que j'ai fait (je sais ça fait trop amateur)
j'ai copié le chemin dans une une autre colonne et j'ai effectué dessus une formule (trouvé sur le net) pour extraire le nom de l'image. ça marche parfaitement
mais votre solution est plus pro
merci pour votre aide
If AffiTexte Then
With Cells(Lig, Col)
.Font.Size = SizeTexte
.Font.Color = ColorTexte
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.ShrinkToFit = True
End With
Sheets("Data").Cells(NumImage, 6) = Split((Left((Sheets("Data").Cells(NumImage, 1).Value), Len((Sheets("Data").Cells(NumImage, 1).Value)) - 4)), "\")(UBound(Split((Left((Sheets("Data").Cells(NumImage, 1).Value), Len((Sheets("Data").Cells(NumImage, 1).Value)) - 4)), "\")))
ActiveSheet.Cells(Lig, Col).Value = Sheets("Data").Cells(NumImage, 6)
Incr LigText
End If
pourquoi vous ne publiez pas une version 4 de votre appli avec ce rajout ?