Insertion image jpg a partir d'une reference

zeshooter

XLDnaute Nouveau
Bonjour à tous,

Aprés 3 jours à déambuler sur le forum je pete les plombs car je n'ai pas trouvé ce que je cherche et maintenant j'embetes tout le monde avec ma question de newbies.

En fait, j'importe sur excel (depuis une base access) une liste
reference - designation - prix etc...

Et il faut qu'aparaisse automatiquement une image qui à le même nom(+.jpg) et stocké sur mon disque dans une cellule.

C'est pour créer un catalogue. De plus, il me faut la meme fonction mais pas en liste : du genre photo (cachant la reference) et en dessous le titre et le prix.

J'ai essayé plein de script VBA dont un qui m'apporte un semblant de réponse mais dont on ne peut afficher qu'une seule image.

C'est pour mon boulot et je suis peu rentable depuis 3 jours alors svp help me...

Merci d'avance à tous et bonne soirée.
 
C

Compte Supprimé 979

Guest
Re : Insertion image jpg a partir d'une reference

Salut Tatiak,

Punaise, je ne savais pas que dans un commentaire on pouvait intégrer une image !?

On ne peut faire ça que par macro, apparemment ?

Je dormirais moins bête ce soir ;)
 

DIGGERJACK

XLDnaute Occasionnel
Re : Insertion image jpg a partir d'une reference

Bonsoir le forum
on peut insérer une image dans un commentaire sans macro

inserer commentaire / cliquer sur les barres grises à l'extérieur /format commentaire / couleurs et trait / couleur / motif et texture / image / selectionner une image
le chemin est long mais très plaisant

Bonne soirée
Diggerjack
 
C

Compte Supprimé 979

Guest
Re : Insertion image jpg a partir d'une reference

Merci à vous deux DiggerJack et Tatiak :)

Effectivement en passant par -> motif -> image
Bien vue, merci, merci ..... J'essaierais d'y penser la prochaine fois.

A+
 

zeshooter

XLDnaute Nouveau
Re : Insertion image jpg a partir d'une reference

Bonjour à tous,

Merci pour cela. C'est effectivement cela qu'il me faut et je vous en remercie mais il faudrait que l'image se place dans un cadre image à une réference précise (genre F1, F2 etc), ce qui pourrait me permettre de sortir un catalogue de mes références.

En plus, je viens de visualiser le script : c'est ce que j'appelles de la programmation "propre", j'avais pas vu ça depuis longtemps.

Je vais joindre un fichier qui fonctionne dans ce sens mais je n'arrive pas à rajouter plusieurs images et je ne vois pas dans le script VBA ce qui me le permettrait.

Merci d'avance à tous.
 

Pièces jointes

  • image_20060112200844.zip
    16.6 KB · Affichages: 140
  • image_20060112200844.zip
    16.6 KB · Affichages: 133
  • image_20060112200844.zip
    16.6 KB · Affichages: 135

mericc

XLDnaute Nouveau
Re : Insertion image jpg a partir d'une reference

Hello "All!"

Chaaaaaaaaaaaaaaaaaaapeau bas pour votre travail!

"Risssssssspekt"! "Total Risssssssspekt".

Je découvre depuis une semaine Excel et son monde "pas si impitoyable"
que cela vu le niveau du Forum et de l'entraide.

Et encore plus newbie que newbie dans le monde des macros, on va dire
supernewbie, j'ai réussi avec vos posts, à intégrer votre macro dans mon
fichier où j ai la même problématique...

Eh bien, c'est du caaaaaaaaviar...

J'ai réussi à intégrer tout cela..

Bien sûr, j'ai pas tout tout compris dans les diverses appellations (objets, etc)
que l'on trouve lorsque une macro est créée..
J'ai encore de longues heures d'apprentissage....:p ou :(

Mais pour avoir réussi à faire tourner la macro, j'ai tout bonnement sauté
de joie! Ahhhh il n y a pas de petits plaisirs!

BRAVO A VOUS TOUS!

Bravo aux "artistes" de l'Excel-VBA.

Merci! (bon, j arrête là, sinon je vais faire fondre mon clavier) lol

Eric

:)


ps: euhhhh, sans vouloir vous obliger, mais comment pourrait on faire
pour "automatiser" cela quand on a à la fois des fichiers JPG et des fichiers GIF???
 

zeshooter

XLDnaute Nouveau
Re : Insertion image jpg a partir d'une reference

Bonjour à tous,

En effet Tatiak : respect total ! (comme dises les d'jeuns).

L'intégration s'est correctement bien passé mais comme tu peux t'en douter, je vais quand même te poser la question qui tue !!!

Et là j'avoue que mon côté faienant ressort quand je me trouves en présence d'un grand 'sacheur' : est ce qu'il est possible que l'image prenne la dimension de la cellule ou elle doit se positionner ?

En tout cas merci bcp bcp cas par ta contribution tu as fait avancer mon travail et ca c'est énorme. De plus, quand j'aurais finit ce boulot je t'enverrais le résultat car je te réserve une petite surprise.

Merci encore.
 

zeshooter

XLDnaute Nouveau
Re : Insertion image jpg a partir d'une reference

Rebonjour,

Bon ben là la messe est dite ! J'ai tout ce qu'il me faut pour finir mon boulot correctement.

Tatiak comme promis je finis mon boulot (au moins une semaine) et je te l'envois : tu comprendras à la reception (je gardes ton blog en favoris).

Et pour être généraliste je pense sincerement que beaucoup de monde auront besoin de ton script pour un besoin professionnel d'automatisation de tâches.

Merci à tous et @ bientôt
 

mericc

XLDnaute Nouveau
Re : Insertion image jpg a partir d'une reference

Bonjour à tous!

Comme moi je débute..j'ai pas tout capté..:(

comment fait on quand :

> le nom de la feuille est différent de feuil1
(là, on me dit d effectuer un "dim")

> le nom des fichiers photo sont différents de tatiak1 etc, ex: 22Z-AAB4, ou toute autre combinaison???


>et quand on a 5 colonnes où en A j'ai la référence article, et où c'est dans la colonne E où apparaissent les photos (car de la colonne B à la colonne D, j'ai d autres infos à rapatrier)

Merci!

Eric

ps: si je laisse le nom tel quel (feuil1) la macro bloque avec un code erreur
1004, impossible de lire la propriété pictures (insert) et se positionne sur la
ligne set tatiak = activesheet.pictures.insert (chemin) :confused:
 

mericc

XLDnaute Nouveau
Re : Insertion image jpg a partir d'une reference

Ch'alut l'artiste!

"Chat" doit répondre à ma question...et disons que je viens
de lire à l'instant ta réponse et je vais de ce pas..

ouvrir mon excel...et faire "suer" un peu mes neurones..LOL

Je te tiens au courant! (avant la fin de l'après midi si mes
neurones me lâchent pas d'ici là, :eek: )

Eric
 

mericc

XLDnaute Nouveau
Re : Insertion image jpg a partir d'une reference

Hello Tatiak

J'ai juste renommé l'appellation en Catalogue,voici un copier/coller ci après, mais ca bloque au niveau de "ExisteGIF" (voir plus bas, merci, j ai mis la ligne entre des >>> ET <<<<):

Sub Catalogue()
Dim derligne As Integer, i As Integer
Dim chemin As String
Dim tatiak As Object
Dim Col As Byte
Dim FeuilleMericc As String
FeuilleMericc = "Feuil1" ' traitement dans l'onglet nommé Feuil1
Col = 5 ' affichage des photos en colonne E (5ème colonne)
For Each tatiak In Sheets(FeuilleMericc).Shapes
If tatiak.Name <> "Bouton" Then tatiak.Delete
Next tatiak
derligne = Range(FeuilleMericc & "!A65536").End(xlUp).Row
For i = 2 To derligne
With Sheets(FeuilleMericc).Range("A" & i)
If Not .Value = "" Then 'gestion cellule vide
chemin = ActiveWorkbook.Path & "\" & .Text & ".gif"
' si le gif n'existe pas, test de l'existence d'un jpg :

>>>>> If Not ExisteGIF(chemin) Then chemin = ActiveWorkbook.Path & "\" & .Text & ".JPG" <<<<<

' si le jpg n'existe pas, test de l'existence d'un bitmap :
If Not ExisteGIF(chemin) Then chemin = ActiveWorkbook.Path & "\" & .Text & ".BMP"
' s'il existe un jgp ou un gif on l'importe :
If ExisteGIF(chemin) Then
Set tatiak = Sheets(FeuilleMericc).Pictures.Insert(chemin)
tatiak.Left = .Offset(0, Col).Left + (.Offset(0, Col + 1).Left - .Offset(0, Col).Left - tatiak.Width) / 2
tatiak.Top = .Top + (.Offset(1, 0).Top - .Top - tatiak.Height) / 2
End If
End If
End With
Next i
End Sub

ET DONC: VB me met un message d erreur:

Erreur de compilation: Sub ou Function non définie?

Où ai je merdooooyé?? :eek: :confused:

Merci pour ton aide,

Eric

ps: là, j ai juste fait un copier/coller...pour voir rapidement
ce que cela donne, je ne pense pas avoir supprimé des codes, chiffres ou lettres
de ta programmation??? sauf erreur...
 

mericc

XLDnaute Nouveau
Re : Insertion image jpg a partir d'une reference

Re!

Eh bien ca commence à marcher :cool: ..

Je dis cela commence car j'ai un reliquat de 2 soucis :( qui sont les suivants:

> les photos sont plutot un peu trop hautes et larges, ca varie
entre 20 cm par 20 cm ou moins ou un peu plus..
comment puis je corriger le tir à ce niveau là...

et..dans un même temps, la hauteur des lignes ne bougent pas ce qui fait
que les photos sont pas totalement superposées mais presque....les lignes
ont la hauteur par défaut, celle définie par excel. :confused:

J ai regardé la taille des photos dans le répertoire:
ca varie entre 32 Ko jusqu à 125 ko en passant par 59 ko...

Par exemple:

j'ai une photo de 303 X 400 qui fait 32,3 ko, qui s'affiche en une taille
"gérable" (3 cm par 4 cm), par contre, pour les formats et Ko suivants,
c'est vraiment trop gros, exemples:
photo de 344 x 359 de 69,1 ko qui fait pratiquement 12 cm x 20 cm
photo de 640 x 400 de 125 ko qui fait pratiquement 20 cm x 25 cm
photo de 500 x 897 de 60,8 ko , 15 cm par 15cm...


et pour ce souci, il y a un "problémo" sous-jacent, c est que je ne peux pas repérer la référence de la photo....


> Et les photos apparemment s'affichent dans la colonne F et non E, je pense
que là, faut ptêtre changer le 5 par un 4??? col = 4??


Voilà

Encore merci pour ton aide ô combien précieuse :)

Eric


ps: 1000 "exkiouzes" pour la fonction qui fallait ajouter à la fin.
je viens seulement de lire aujourd'hui que tu l'avais déjà mentionnée
dans un de tes posts hier
 

mericc

XLDnaute Nouveau
Re : Insertion image jpg a partir d'une reference

C'est reMoi!

Voilà ce que j'ai "en boutique" comme code que j'ai repris dans tes
posts (<<<Tatiak).

Sub Catalogue()
Dim derligne As Integer, i As Integer
Dim chemin As String
Dim tatiak As Object
Dim Col As Byte
Dim FeuilleMericc As String
FeuilleMericc = "Feuil1" ' traitement dans l'onglet nommé Feuil1
Col = 4 ' affichage des photos en colonne E (5ème colonne)
For Each tatiak In Sheets(FeuilleMericc).Shapes
If tatiak.Name <> "Bouton" Then tatiak.Delete
Next tatiak
derligne = Range(FeuilleMericc & "!A65536").End(xlUp).Row
For i = 2 To derligne
With Sheets(FeuilleMericc).Range("A" & i)
If Not .Value = "" Then 'gestion cellule vide
chemin = ActiveWorkbook.Path & "\" & .Text & ".gif"
' si le gif n'existe pas, test de l'existence d'un jpg :
If Not ExisteGIF(chemin) Then chemin = ActiveWorkbook.Path & "\" & .Text & ".JPG"
' si le jpg n'existe pas, test de l'existence d'un bitmap :
If Not ExisteGIF(chemin) Then chemin = ActiveWorkbook.Path & "\" & .Text & ".BMP"
' s'il existe un jgp ou un gif on l'importe :
If ExisteGIF(chemin) Then
Set tatiak = Sheets(FeuilleMericc).Pictures.Insert(chemin)
tatiak.Left = .Offset(0, 1).Left '+ (.Offset(0, 2).Left - .Offset(0, 1).Left - tatiak.Width) / 2
tatiak.Top = .Top '+ (.Offset(1, 0).Top - .Top - tatiak.Height) / 2
tatiak.Width = .Offset(0, 1).Width
tatiak.Height = .Offset(0, 1).Height
End If
End If
End With
Next i
End Sub
Public Function ExisteGIF(Image As String) As Boolean
Dim Mericc As Object
Set Mericc = CreateObject("Scripting.FileSystemObject")
ExisteGIF = Mericc.FileExists(Image)
End Function


Pour les tailles photos, ca y est, c est bon.

Par contre, je comprends pas, les photos apparaissent toujours
dans la colonne B et non pas la E????

Et là, le dernier problème, rien à voir avec ta programmation,
quand j affecte ta macro à un bouton, juste après avoir cliqué
sur le bouton et lorsque la macro a terminé son travail...le
bouton de la macro a .............. disparu??
c est "kouillon", je l avoue, mais bon "supernewbie" est de
retour! LOL :eek:

Voilà mes dernières interrogations du jour!

Merciiiiiii encore pour les réponses attendues comme le "messie"
(mais si, mais si! ;) )

Eric

ps: franchement, c est vraiment du sacré beau boulot ca..
le site devrait faire un chti concours pour élire par exemple
les 3 meilleures solutions trouvées ....du mois...
 

mericc

XLDnaute Nouveau
Re : Insertion image jpg a partir d'une reference

Bonsoir,

Eh bien voilà mon code "pré-final" (je m explique ensuite):

Sub Catalogue()
Dim derligne As Integer, i As Integer
Dim chemin As String
Dim tatiak As Object
Dim Col As Byte
Dim FeuilleMericc As String
Dim Proportion As Single
FeuilleMericc = "Feuil1" ' traitement dans la feuille nommée Feuil1
Col = 4 ' affichage des photos en colonne E
For Each tatiak In Sheets(FeuilleMericc).Shapes
If Left(tatiak.Name, 6) <> "Bouton" Then tatiak.Delete
Next tatiak
derligne = Range(FeuilleMericc & "!A65536").End(xlUp).Row
For i = 2 To derligne
With Sheets(FeuilleMericc).Range("A" & i)
If Not .Value = "" Then 'gestion cellule vide
chemin = ActiveWorkbook.Path & "\" & .Text & ".gif"
' si le gif n'existe pas, test de l'existence d'un jpg :
If Not ExisteGIF(chemin) Then chemin = ActiveWorkbook.Path & "\" & .Text & ".JPG"
' si le jpg n'existe pas, test de l'existence d'un bitmap :
If Not ExisteGIF(chemin) Then chemin = ActiveWorkbook.Path & "\" & .Text & ".BMP"
' s'il existe un jgp ou un gif on l'importe :
If ExisteGIF(chemin) Then
Set tatiak = Sheets(FeuilleMericc).Pictures.Insert(chemin)
tatiak.Left = .Offset(0, Col).Left
tatiak.Top = .Top
tatiak.Width = .Offset(0, Col).Width
tatiak.Height = .Offset(0, Col).Height
End If
End If
End With
Next i
End Sub


Tout est impec..taille de la photo, photo dans la bonne colonne ..
bref du beau travail de pro (<<<< Tatiak) ! Risssspekt

Par contre, j'ai pô compris pour garder mon bouton de macro
que je positionne juste dans la cellule E1 nommée photo...

Ton post de 19h13 (d'aujourd'hui donc), j 'ai bien lu ton code suivant:
Code:
For Each tatiak In Sheets(FeuilleMericc).Shapes
If left(tatiak.Name,6) <> "Bouton" Then tatiak.Delete
Next tatiak

Je dois le positionner où? et quelle modification faire pour avoir un
bouton que je nomme tout simplement "photo" ??:confused:

et bien sur que le bouton ne "disparaisse pas"! lol...

Merci encore!:)

Eric
 

Discussions similaires

Statistiques des forums

Discussions
312 333
Messages
2 087 378
Membres
103 529
dernier inscrit
gonzi