OVH Cloud OVH Cloud

Fonction insertion image

8 réponses
Avatar
Michel
Bonjour,

J'ai dans des cellules un chemin en clair (par ex:
A1 contient D:\SYLOB\PRECIX\ECL\SPE\IMG\CO312772.JPG)

Je souhaiterais avoir une formule qui me permette d'afficher cette
photo à l'emplacement de la formule (ex: =IMG(A1) affiche l'image CO31277 )

J'ai esquissé quelques lignes de codes grace au forum mais ça ne fonctionne
pas mais ça explique quand même ce que je souhaite faire (si c'est possible)


Function IMG(photo As String) As Picture

Dim nom As String

nom = photo

Set IMG = ActiveSheet.Pictures.Insert(nom)
With IMG
LockAspectRatio = msoFalse
.Height = 150
.Width = 250

End With

End Function

8 réponses

Avatar
poy-poy
Bonjour Michel,

Par excel directement, tu peux les vider par un Ctrl+H : remplacer *=* par
rien.
Par vba tu fait un rechercher sur toutes les cellules de ta colonne "=" et
chaque fois qu'il le trouve tu ajoutes la cellule à ta range que tu supprimes
à la fin.

Tu m'as l'air de savoir te débrouiller avec vba alors je te laisse faire le
code :-)

Cordialement
Benjamin



Bonjour,

J'ai dans des cellules un chemin en clair (par ex:
A1 contient D:SYLOBPRECIXECLSPEIMGCO312772.JPG)

Je souhaiterais avoir une formule qui me permette d'afficher cette
photo à l'emplacement de la formule (ex: =IMG(A1) affiche l'image CO31277 )

J'ai esquissé quelques lignes de codes grace au forum mais ça ne fonctionne
pas mais ça explique quand même ce que je souhaite faire (si c'est possible)


Function IMG(photo As String) As Picture

Dim nom As String

nom = photo

Set IMG = ActiveSheet.Pictures.Insert(nom)
With IMG
LockAspectRatio = msoFalse
..Height = 150
..Width = 250

End With

End Function





Avatar
anomymousA
bonjour,

une fonction appelée depuis une feuille par une cellule ne peut chnager la
nature de la feuille ni sa structure par construction d'Excel. Or c'est
précisement ce que tu essayes de faire dans ta fonction.
Par contre aussi bizarre que cela puisse paraitre, si tu appelles ta
fonction depuis une procédure Sub, cela fonctionnera parfaitement donc il te
reste la solution de rélaiser ton souhait de la manière suivante: ecrire une
procédure evenementielle attachée à la feuille où se situent tes données (ici
déclenchée par double click)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

set im¬tiveSheet.Pictures.Insert (target.value)
'travailler ensuite l'image incrustée comme tu le souhaites
cancel=true

End Sub

A+


Bonjour,

J'ai dans des cellules un chemin en clair (par ex:
A1 contient D:SYLOBPRECIXECLSPEIMGCO312772.JPG)

Je souhaiterais avoir une formule qui me permette d'afficher cette
photo à l'emplacement de la formule (ex: =IMG(A1) affiche l'image CO31277 )

J'ai esquissé quelques lignes de codes grace au forum mais ça ne fonctionne
pas mais ça explique quand même ce que je souhaite faire (si c'est possible)


Function IMG(photo As String) As Picture

Dim nom As String

nom = photo

Set IMG = ActiveSheet.Pictures.Insert(nom)
With IMG
LockAspectRatio = msoFalse
..Height = 150
..Width = 250

End With

End Function





Avatar
Michel
Merci pour ta réponse, ça m'ouvre d'autres horizons...

En suivant tes conseils, j'ai saisi le code suivant dans ma feuille de
données mais quand je double-click, il me met qu'il ne pas lire la propriété
insert de la classe pictures : ou est l'erreur ?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

Set IMG = ActiveSheet.Pictures.Insert(Target.Value)
With IMG
LockAspectRatio = msoFalse
.Height = 150
.Width = 250

End With

Cancel = True

End Sub


Je pensais sinon utiliser une autre solution : est-ce qu'il ne serait pas
plus simple de définir un certain nombre de formes (j'en aurais besoin de
20) et d'y afficher les photos ?




"anomymousA" a écrit dans le message
de news:
bonjour,

une fonction appelée depuis une feuille par une cellule ne peut chnager la
nature de la feuille ni sa structure par construction d'Excel. Or c'est
précisement ce que tu essayes de faire dans ta fonction.
Par contre aussi bizarre que cela puisse paraitre, si tu appelles ta
fonction depuis une procédure Sub, cela fonctionnera parfaitement donc il
te
reste la solution de rélaiser ton souhait de la manière suivante: ecrire
une
procédure evenementielle attachée à la feuille où se situent tes données
(ici
déclenchée par double click)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

set im¬tiveSheet.Pictures.Insert (target.value)
'travailler ensuite l'image incrustée comme tu le souhaites
cancel=true

End Sub

A+


Bonjour,

J'ai dans des cellules un chemin en clair (par ex:
A1 contient D:SYLOBPRECIXECLSPEIMGCO312772.JPG)

Je souhaiterais avoir une formule qui me permette d'afficher cette
photo à l'emplacement de la formule (ex: =IMG(A1) affiche l'image
CO31277 )

J'ai esquissé quelques lignes de codes grace au forum mais ça ne
fonctionne
pas mais ça explique quand même ce que je souhaite faire (si c'est
possible)


Function IMG(photo As String) As Picture

Dim nom As String

nom = photo

Set IMG = ActiveSheet.Pictures.Insert(nom)
With IMG
LockAspectRatio = msoFalse
..Height = 150
..Width = 250

End With

End Function







Avatar
Michel
Merci de ta réponse mais je ne compends pas quel signe = supprimer : ceux de
la formule ?

Et pourquoi faire ça ?

A+

"poy-poy" a écrit dans le message de
news:
Bonjour Michel,

Par excel directement, tu peux les vider par un Ctrl+H : remplacer *=* par
rien.
Par vba tu fait un rechercher sur toutes les cellules de ta colonne "=" et
chaque fois qu'il le trouve tu ajoutes la cellule à ta range que tu
supprimes
à la fin.

Tu m'as l'air de savoir te débrouiller avec vba alors je te laisse faire
le
code :-)

Cordialement
Benjamin



Bonjour,

J'ai dans des cellules un chemin en clair (par ex:
A1 contient D:SYLOBPRECIXECLSPEIMGCO312772.JPG)

Je souhaiterais avoir une formule qui me permette d'afficher cette
photo à l'emplacement de la formule (ex: =IMG(A1) affiche l'image
CO31277 )

J'ai esquissé quelques lignes de codes grace au forum mais ça ne
fonctionne
pas mais ça explique quand même ce que je souhaite faire (si c'est
possible)


Function IMG(photo As String) As Picture

Dim nom As String

nom = photo

Set IMG = ActiveSheet.Pictures.Insert(nom)
With IMG
LockAspectRatio = msoFalse
..Height = 150
..Width = 250

End With

End Function







Avatar
Michel
Merci pour ta réponse, ça m'ouvre d'autres horizons...

En suivant tes conseils, j'ai saisi le code suivant dans ma feuille de
données mais quand je double-click, il me met qu'il ne pas lire la propriété
insert de la classe pictures : ou est l'erreur ?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

Set IMG = ActiveSheet.Pictures.Insert(Target.Value)
With IMG
LockAspectRatio = msoFalse
.Height = 150
.Width = 250

End With

Cancel = True

End Sub


Je pensais sinon utiliser une autre solution : est-ce qu'il ne serait pas
plus simple de définir un certain nombre de formes (j'en aurais besoin de
20) et d'y afficher les photos ?

"anomymousA" a écrit dans le message
de news:
bonjour,

une fonction appelée depuis une feuille par une cellule ne peut chnager la
nature de la feuille ni sa structure par construction d'Excel. Or c'est
précisement ce que tu essayes de faire dans ta fonction.
Par contre aussi bizarre que cela puisse paraitre, si tu appelles ta
fonction depuis une procédure Sub, cela fonctionnera parfaitement donc il
te
reste la solution de rélaiser ton souhait de la manière suivante: ecrire
une
procédure evenementielle attachée à la feuille où se situent tes données
(ici
déclenchée par double click)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

set im¬tiveSheet.Pictures.Insert (target.value)
'travailler ensuite l'image incrustée comme tu le souhaites
cancel=true

End Sub

A+


Bonjour,

J'ai dans des cellules un chemin en clair (par ex:
A1 contient D:SYLOBPRECIXECLSPEIMGCO312772.JPG)

Je souhaiterais avoir une formule qui me permette d'afficher cette
photo à l'emplacement de la formule (ex: =IMG(A1) affiche l'image
CO31277 )

J'ai esquissé quelques lignes de codes grace au forum mais ça ne
fonctionne
pas mais ça explique quand même ce que je souhaite faire (si c'est
possible)


Function IMG(photo As String) As Picture

Dim nom As String

nom = photo

Set IMG = ActiveSheet.Pictures.Insert(nom)
With IMG
LockAspectRatio = msoFalse
..Height = 150
..Width = 250

End With

End Function







Avatar
anonymousA
re,

je suis surpris car ca ne pose aucun probleme sur mon micro.
Es-tu certain d'avoir tapé le chemein complet de ta photo dans la
cellule cocernée.
Par ailleurs, Si tu cliques sur une cellule où il n'y a pas de données
qui sont des chemins complets de photos, c'est normal que ca se plante.

A+


Merci pour ta réponse, ça m'ouvre d'autres horizons...

En suivant tes conseils, j'ai saisi le code suivant dans ma feuille de
données mais quand je double-click, il me met qu'il ne pas lire la propriété
insert de la classe pictures : ou est l'erreur ?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

Set IMG = ActiveSheet.Pictures.Insert(Target.Value)
With IMG
LockAspectRatio = msoFalse
.Height = 150
.Width = 250

End With

Cancel = True

End Sub


Je pensais sinon utiliser une autre solution : est-ce qu'il ne serait pas
plus simple de définir un certain nombre de formes (j'en aurais besoin de
20) et d'y afficher les photos ?




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

bonjour,

une fonction appelée depuis une feuille par une cellule ne peut chnager la
nature de la feuille ni sa structure par construction d'Excel. Or c'est
précisement ce que tu essayes de faire dans ta fonction.
Par contre aussi bizarre que cela puisse paraitre, si tu appelles ta
fonction depuis une procédure Sub, cela fonctionnera parfaitement donc il
te
reste la solution de rélaiser ton souhait de la manière suivante: ecrire
une
procédure evenementielle attachée à la feuille où se situent tes données
(ici
déclenchée par double click)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

set im¬tiveSheet.Pictures.Insert (target.value)
'travailler ensuite l'image incrustée comme tu le souhaites
cancel=true

End Sub

A+



Bonjour,

J'ai dans des cellules un chemin en clair (par ex:
A1 contient D:SYLOBPRECIXECLSPEIMGCO312772.JPG)

Je souhaiterais avoir une formule qui me permette d'afficher cette
photo à l'emplacement de la formule (ex: =IMG(A1) affiche l'image
CO31277 )

J'ai esquissé quelques lignes de codes grace au forum mais ça ne
fonctionne
pas mais ça explique quand même ce que je souhaite faire (si c'est
possible)


Function IMG(photo As String) As Picture

Dim nom As String

nom = photo

Set IMG = ActiveSheet.Pictures.Insert(nom)
With IMG
LockAspectRatio = msoFalse
..Height = 150
..Width = 250

End With

End Function












Avatar
LSteph
Bonsoir,
Essaie ainsi:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Dim img
ActiveCell.Offset(0.1).Select
Set img = ActiveSheet.Pictures.Insert( _
ActiveWorkbook.Path & Target)
With img
LockAspectRatio = msoFalse
.Height = 250
.Width = 250

End With

Cancel = True

End Sub

'lSteph

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

Merci pour ta réponse, ça m'ouvre d'autres horizons...

En suivant tes conseils, j'ai saisi le code suivant dans ma feuille de
données mais quand je double-click, il me met qu'il ne pas lire la
propriété
insert de la classe pictures : ou est l'erreur ?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

Set IMG = ActiveSheet.Pictures.Insert(Target.Value)
With IMG
LockAspectRatio = msoFalse
.Height = 150
.Width = 250

End With

Cancel = True

End Sub


Je pensais sinon utiliser une autre solution : est-ce qu'il ne serait pas
plus simple de définir un certain nombre de formes (j'en aurais besoin de
20) et d'y afficher les photos ?

"anomymousA" a écrit dans le
message de news:
bonjour,

une fonction appelée depuis une feuille par une cellule ne peut chnager
la
nature de la feuille ni sa structure par construction d'Excel. Or c'est
précisement ce que tu essayes de faire dans ta fonction.
Par contre aussi bizarre que cela puisse paraitre, si tu appelles ta
fonction depuis une procédure Sub, cela fonctionnera parfaitement donc il
te
reste la solution de rélaiser ton souhait de la manière suivante: ecrire
une
procédure evenementielle attachée à la feuille où se situent tes données
(ici
déclenchée par double click)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

set im¬tiveSheet.Pictures.Insert (target.value)
'travailler ensuite l'image incrustée comme tu le souhaites
cancel=true

End Sub

A+


Bonjour,

J'ai dans des cellules un chemin en clair (par ex:
A1 contient D:SYLOBPRECIXECLSPEIMGCO312772.JPG)

Je souhaiterais avoir une formule qui me permette d'afficher cette
photo à l'emplacement de la formule (ex: =IMG(A1) affiche l'image
CO31277 )

J'ai esquissé quelques lignes de codes grace au forum mais ça ne
fonctionne
pas mais ça explique quand même ce que je souhaite faire (si c'est
possible)


Function IMG(photo As String) As Picture

Dim nom As String

nom = photo

Set IMG = ActiveSheet.Pictures.Insert(nom)
With IMG
LockAspectRatio = msoFalse
..Height = 150
..Width = 250

End With

End Function











Avatar
Michel
Merci à tous pour vos brillants conseils !

Ça marche mais je vais tenter une autre macro pour insérer mes photos dans
une forme afin d'éviter de cliquer x fois sur les photos à afficher. En
fait, ce que souhaite faire, c'est récupérer le chemin de mes photos, faire
un userform me permettant de sélectionner mes photos suivants différents
critères (nom, bornage sur date...) pour ensuite m'afficher des planches
contact. Si je pas perdu espoir, j'essaierais une macro permettant
d'optimiser l'impression. Mais bon, la route est longue et semée embûche.
Je suis autodidacte sur VBA et je pense que la meilleure façon d'apprendre,
c'est de mener à bien un projet !

Encore merci pour votre patience et votre compétence !


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

Bonjour,

J'ai dans des cellules un chemin en clair (par ex:
A1 contient D:SYLOBPRECIXECLSPEIMGCO312772.JPG)

Je souhaiterais avoir une formule qui me permette d'afficher cette
photo à l'emplacement de la formule (ex: =IMG(A1) affiche l'image
CO31277 )

J'ai esquissé quelques lignes de codes grace au forum mais ça ne
fonctionne pas mais ça explique quand même ce que je souhaite faire (si
c'est possible)


Function IMG(photo As String) As Picture

Dim nom As String

nom = photo

Set IMG = ActiveSheet.Pictures.Insert(nom)
With IMG
LockAspectRatio = msoFalse
.Height = 150
.Width = 250

End With

End Function