OVH Cloud OVH Cloud

Faire apparaître une image

15 réponses
Avatar
Poppy
Bonjour
En colonne A j'ai des noms.
en colonne B je met un "x" en face du nom au quel je veux que sa photo
apparaisse.
Je voudrais que la photo apparaisse en colonne C face au nom.
Je suppose qu'il faut que je mette toutes les images en Feuil2 par exemple ?
La formule en cellule C1....=SI(B1="x";Feuil2! image 1;"").
Cette formule là n'est pas bonne.
Quelqu'un peut-il me dire quel est la bonne formule ?
Merci de vôtre aide.
Cordialement
Poppy

10 réponses

1 2
Avatar
JB
Bonjour,

Voir onglet PhotoSi

http://boisgontierj.free.fr/fichiers/jb-shapes.zip

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Count = 1 Then
Application.EnableEvents = False
If UCase(Target) = "X" Then
rep = ActiveWorkbook.Path
'rep = "c:xyz"
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
If Dir(nomimage) <> "" Then
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
Target.Offset(0, 1).Select
monimage = ActiveSheet.Pictures.Insert(nomimage).Select
Selection.Name = Target.Offset(0, -1)
Shapes(Target.Offset(0, -1)).Left = Target.Offset(0, 1).Left
+ 2
End If
Else
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
End If
Application.EnableEvents = True
End If
End Sub

JB

On 13 fév, 09:09, "Poppy" wrote:
Bonjour
En colonne A j'ai des noms.
en colonne B je met un "x" en face du nom au quel je veux que sa photo
apparaisse.
Je voudrais que la photo apparaisse en colonne C face au nom.
Je suppose qu'il faut que je mette toutes les images en Feuil2 par exempl e ?
La formule en cellule C1....=SI(B1="x";Feuil2! image 1;"").
Cette formule là n'est pas bonne.
Quelqu'un peut-il me dire quel est la bonne formule ?
Merci de vôtre aide.
Cordialement
Poppy


Avatar
Poppy
Merci de ta réponse JB
Cordialement
Poppy

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

Bonjour,

Voir onglet PhotoSi

http://boisgontierj.free.fr/fichiers/jb-shapes.zip

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Count = 1 Then
Application.EnableEvents = False
If UCase(Target) = "X" Then
rep = ActiveWorkbook.Path
'rep = "c:xyz"
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
If Dir(nomimage) <> "" Then
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
Target.Offset(0, 1).Select
monimage = ActiveSheet.Pictures.Insert(nomimage).Select
Selection.Name = Target.Offset(0, -1)
Shapes(Target.Offset(0, -1)).Left = Target.Offset(0, 1).Left
+ 2
End If
Else
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
End If
Application.EnableEvents = True
End If
End Sub

JB

On 13 fév, 09:09, "Poppy" wrote:
Bonjour
En colonne A j'ai des noms.
en colonne B je met un "x" en face du nom au quel je veux que sa photo
apparaisse.
Je voudrais que la photo apparaisse en colonne C face au nom.
Je suppose qu'il faut que je mette toutes les images en Feuil2 par exemple
?
La formule en cellule C1....=SI(B1="x";Feuil2! image 1;"").
Cette formule là n'est pas bonne.
Quelqu'un peut-il me dire quel est la bonne formule ?
Merci de vôtre aide.
Cordialement
Poppy


Avatar
julienL
Bonjour,

Malgré la réponse de JB , je propose une solution pour afficher les
images de la feuille 2 sur la feuil 1.

Il suffit de double cliquer dans la zone afficher en face du nom de
l'image. (j'ai pris des photos au hasard).
http://cjoint.com/?cnlPE0VbpS


Par contre, je souhaiterais savoir si il est possible de "forcer" une
image insérer à prendre un nom particulier au lieu de "picture 1",
"picture 2" ...

merci d'avance

Julien.
Avatar
Poppy
Bonjour
Par contre, je voudrais apporter une modification à ce que je voulais par
exemple :
En A1 j'inscrit (Avion)
En A2 j'inscrit (Voiture)
En A3 j'inscrit (Vélo)
etc........
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"avion".
Si je met un "x" en B2 je voudrais faire apparaître une image avec une
"voiture".
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"vélo".
Si je met un "x" en B1 et "x" en B3 je voudrais faire apparaître une image
avec un "avion et un vélo".
En fait, je voudrais avoir une image différente si je met "x" dans plusieurs
cellules ?
Et aucune image si il n'y a pas de "x" ?
Cordialement
Poppy


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

Bonjour,

Voir onglet PhotoSi

http://boisgontierj.free.fr/fichiers/jb-shapes.zip

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Count = 1 Then
Application.EnableEvents = False
If UCase(Target) = "X" Then
rep = ActiveWorkbook.Path
'rep = "c:xyz"
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
If Dir(nomimage) <> "" Then
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
Target.Offset(0, 1).Select
monimage = ActiveSheet.Pictures.Insert(nomimage).Select
Selection.Name = Target.Offset(0, -1)
Shapes(Target.Offset(0, -1)).Left = Target.Offset(0, 1).Left
+ 2
End If
Else
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
End If
Application.EnableEvents = True
End If
End Sub

JB

On 13 fév, 09:09, "Poppy" wrote:
Bonjour
En colonne A j'ai des noms.
en colonne B je met un "x" en face du nom au quel je veux que sa photo
apparaisse.
Je voudrais que la photo apparaisse en colonne C face au nom.
Je suppose qu'il faut que je mette toutes les images en Feuil2 par exemple
?
La formule en cellule C1....=SI(B1="x";Feuil2! image 1;"").
Cette formule là n'est pas bonne.
Quelqu'un peut-il me dire quel est la bonne formule ?
Merci de vôtre aide.
Cordialement
Poppy


Avatar
julienL
Re bonjour

ci joint le fichier avec la gestion de plusieurs sélection.
http://cjoint.com/?cnnmnCHKTC


J'en profites pour réitérer ma question concernant la technique pour
forcer le nom des images insérer?

En espérant que la réponse convienne.

Bon courage et bonne fin de journée

Julien



On 13 fév, 12:23, "Poppy" wrote:
Bonjour
Par contre, je voudrais apporter une modification à ce que je voulais p ar
exemple :
En A1 j'inscrit (Avion)
En A2 j'inscrit (Voiture)
En A3 j'inscrit (Vélo)
etc........
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"avion".
Si je met un "x" en B2 je voudrais faire apparaître une image avec une
"voiture".
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"vélo".
Si je met un "x" en B1 et "x" en B3 je voudrais faire apparaître une im age
avec un "avion et un vélo".
En fait, je voudrais avoir une image différente si je met "x" dans plus ieurs
cellules ?
Et aucune image si il n'y a pas de "x" ?
Cordialement
Poppy

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

Bonjour,

Voir onglet PhotoSi

http://boisgontierj.free.fr/fichiers/jb-shapes.zip

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Count = 1 Then
Application.EnableEvents = False
If UCase(Target) = "X" Then
rep = ActiveWorkbook.Path
'rep = "c:xyz"
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
If Dir(nomimage) <> "" Then
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
Target.Offset(0, 1).Select
monimage = ActiveSheet.Pictures.Insert(nomimage).Select
Selection.Name = Target.Offset(0, -1)
Shapes(Target.Offset(0, -1)).Left = Target.Offset(0, 1).Left
+ 2
End If
Else
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
End If
Application.EnableEvents = True
End If
End Sub

JB

On 13 fév, 09:09, "Poppy" wrote:

Bonjour
En colonne A j'ai des noms.
en colonne B je met un "x" en face du nom au quel je veux que sa photo
apparaisse.
Je voudrais que la photo apparaisse en colonne C face au nom.
Je suppose qu'il faut que je mette toutes les images en Feuil2 par exem ple
?
La formule en cellule C1....=SI(B1="x";Feuil2! image 1;"").
Cette formule là n'est pas bonne.
Quelqu'un peut-il me dire quel est la bonne formule ?
Merci de vôtre aide.
Cordialement
Poppy




Avatar
Poppy
Bonjour Julien
Je te remercie de ton aide, je vais adapter tout ça.
Pour ta question, c'est pas moi qui vais pouvoir répondre, vaudrait mieux
que tu pose la question directement sur le forum.
Cordialement
Poppy

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

Re bonjour

ci joint le fichier avec la gestion de plusieurs sélection.
http://cjoint.com/?cnnmnCHKTC


J'en profites pour réitérer ma question concernant la technique pour
forcer le nom des images insérer?

En espérant que la réponse convienne.

Bon courage et bonne fin de journée

Julien



On 13 fév, 12:23, "Poppy" wrote:
Bonjour
Par contre, je voudrais apporter une modification à ce que je voulais par
exemple :
En A1 j'inscrit (Avion)
En A2 j'inscrit (Voiture)
En A3 j'inscrit (Vélo)
etc........
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"avion".
Si je met un "x" en B2 je voudrais faire apparaître une image avec une
"voiture".
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"vélo".
Si je met un "x" en B1 et "x" en B3 je voudrais faire apparaître une image
avec un "avion et un vélo".
En fait, je voudrais avoir une image différente si je met "x" dans
plusieurs
cellules ?
Et aucune image si il n'y a pas de "x" ?
Cordialement
Poppy

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

Bonjour,

Voir onglet PhotoSi

http://boisgontierj.free.fr/fichiers/jb-shapes.zip

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Count = 1 Then
Application.EnableEvents = False
If UCase(Target) = "X" Then
rep = ActiveWorkbook.Path
'rep = "c:xyz"
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
If Dir(nomimage) <> "" Then
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
Target.Offset(0, 1).Select
monimage = ActiveSheet.Pictures.Insert(nomimage).Select
Selection.Name = Target.Offset(0, -1)
Shapes(Target.Offset(0, -1)).Left = Target.Offset(0, 1).Left
+ 2
End If
Else
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
End If
Application.EnableEvents = True
End If
End Sub

JB

On 13 fév, 09:09, "Poppy" wrote:

Bonjour
En colonne A j'ai des noms.
en colonne B je met un "x" en face du nom au quel je veux que sa photo
apparaisse.
Je voudrais que la photo apparaisse en colonne C face au nom.
Je suppose qu'il faut que je mette toutes les images en Feuil2 par
exemple
?
La formule en cellule C1....=SI(B1="x";Feuil2! image 1;"").
Cette formule là n'est pas bonne.
Quelqu'un peut-il me dire quel est la bonne formule ?
Merci de vôtre aide.
Cordialement
Poppy




Avatar
JB
Version simple:

http://cjoint.com/?cnqGgJ2MXr

Affiche une photo si X en colonne B
Les photos sont déjà en place dans la feuille en colonne C

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Count = 1 Then
Application.EnableEvents = False
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Address = Target.Offset(0, 1).Address Then
Shapes(s.Name).Visible = IIf(UCase(Target) = "X", True, False)
End If
Next s
Application.EnableEvents = True
End If
End Sub

JB

On 13 fév, 09:09, "Poppy" wrote:
Bonjour
En colonne A j'ai des noms.
en colonne B je met un "x" en face du nom au quel je veux que sa photo
apparaisse.
Je voudrais que la photo apparaisse en colonne C face au nom.
Je suppose qu'il faut que je mette toutes les images en Feuil2 par exempl e ?
La formule en cellule C1....=SI(B1="x";Feuil2! image 1;"").
Cette formule là n'est pas bonne.
Quelqu'un peut-il me dire quel est la bonne formule ?
Merci de vôtre aide.
Cordialement
Poppy


Avatar
Poppy
Bonsoir JB
Oui je suis d'accord avec toi, je pige le truc, mais....
Par contre, je voudrais apporter une modification à ce que je voulais par
exemple :
En A1 j'inscrit (Avion)
En A2 j'inscrit (Voiture)
En A3 j'inscrit (Vélo)
etc........
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"avion".
Si je met un "x" en B2 je voudrais faire apparaître une image avec une
"voiture".
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"vélo".

Si je met un "x" en B1 et "x" en B3 je voudrais faire apparaître une image
avec un "avion et un vélo".

En fait, je voudrais avoir une image différente si je met "x" dans plusieurs
cellules ?
Et aucune image si il n'y a pas de "x" ?
Est ce possible ?????
Cordialement
Poppy


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

Version simple:

http://cjoint.com/?cnqGgJ2MXr

Affiche une photo si X en colonne B
Les photos sont déjà en place dans la feuille en colonne C

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Count = 1 Then
Application.EnableEvents = False
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Address = Target.Offset(0, 1).Address Then
Shapes(s.Name).Visible = IIf(UCase(Target) = "X", True, False)
End If
Next s
Application.EnableEvents = True
End If
End Sub

JB

On 13 fév, 09:09, "Poppy" wrote:
Bonjour
En colonne A j'ai des noms.
en colonne B je met un "x" en face du nom au quel je veux que sa photo
apparaisse.
Je voudrais que la photo apparaisse en colonne C face au nom.
Je suppose qu'il faut que je mette toutes les images en Feuil2 par exemple
?
La formule en cellule C1....=SI(B1="x";Feuil2! image 1;"").
Cette formule là n'est pas bonne.
Quelqu'un peut-il me dire quel est la bonne formule ?
Merci de vôtre aide.
Cordialement
Poppy


Avatar
anonymousA
Bonjour,

par défaut Excel affecte un nom à l'image, mais une fois créée, il est
complètement possible de changer ce nom en parcourant la collection des
shapes ou des drawingobjects ( collection masquée).

A+


Re bonjour

ci joint le fichier avec la gestion de plusieurs sélection.
http://cjoint.com/?cnnmnCHKTC


J'en profites pour réitérer ma question concernant la technique pour
forcer le nom des images insérer?

En espérant que la réponse convienne.

Bon courage et bonne fin de journée

Julien



On 13 fév, 12:23, "Poppy" wrote:
Bonjour
Par contre, je voudrais apporter une modification à ce que je voulais par
exemple :
En A1 j'inscrit (Avion)
En A2 j'inscrit (Voiture)
En A3 j'inscrit (Vélo)
etc........
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"avion".
Si je met un "x" en B2 je voudrais faire apparaître une image avec une
"voiture".
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"vélo".
Si je met un "x" en B1 et "x" en B3 je voudrais faire apparaître une image
avec un "avion et un vélo".
En fait, je voudrais avoir une image différente si je met "x" dans plusieurs
cellules ?
Et aucune image si il n'y a pas de "x" ?
Cordialement
Poppy

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

Bonjour,

Voir onglet PhotoSi

http://boisgontierj.free.fr/fichiers/jb-shapes.zip

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Count = 1 Then
Application.EnableEvents = False
If UCase(Target) = "X" Then
rep = ActiveWorkbook.Path
'rep = "c:xyz"
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
If Dir(nomimage) <> "" Then
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
Target.Offset(0, 1).Select
monimage = ActiveSheet.Pictures.Insert(nomimage).Select
Selection.Name = Target.Offset(0, -1)
Shapes(Target.Offset(0, -1)).Left = Target.Offset(0, 1).Left
+ 2
End If
Else
nomimage = rep & "" & Target.Offset(0, -1) & ".jpg"
On Error Resume Next
Shapes(Target.Offset(0, -1)).Delete
End If
Application.EnableEvents = True
End If
End Sub

JB

On 13 fév, 09:09, "Poppy" wrote:

Bonjour
En colonne A j'ai des noms.
en colonne B je met un "x" en face du nom au quel je veux que sa photo
apparaisse.
Je voudrais que la photo apparaisse en colonne C face au nom.
Je suppose qu'il faut que je mette toutes les images en Feuil2 par exemple
?
La formule en cellule C1....=SI(B1="x";Feuil2! image 1;"").
Cette formule là n'est pas bonne.
Quelqu'un peut-il me dire quel est la bonne formule ?
Merci de vôtre aide.
Cordialement
Poppy








Avatar
JB
2 nouvelles versions:

http://boisgontierj.free.fr/fichiers/PhotoVisible2.xls

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 2 And Target.Count = 1 Then
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Address = Target.Offset(0, 1).Address Then
s.Visible = IIf(UCase(Target) = "X", True, False)
End If
Next s
End If
If Target.Column = 1 And Target.Count = 1 Then
If Target = "" Then
Target.Offset(0, 1) = ""
EffaceMentShape (Target.Offset(0, 2).Address)
Else
On Error Resume Next
EffaceMentShape (Target.Offset(0, 2).Address)
Sheets("photos").Shapes(Target).Copy
Target.Offset(0, 2).Select
ActiveSheet.Paste
Selection.Left = Target.Offset(0, 2).Left + 1
Selection.Top = Target.Offset(0, 2).Top + 1
Target.Offset(0, 1) = "X"
End If
End If
Application.EnableEvents = True
End Sub
Sub EffaceMentShape(c)
On Error Resume Next
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Address = c Then
s.Delete
End If
Next s
End Sub


http://boisgontierj.free.fr/fichiers/PhotoVisible3.xls

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 2 And Target.Count = 1 Then
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Address = Target.Offset(0, 1).Address Then
s.Visible = IIf(UCase(Target) = "X", True, False)
End If
Next s
End If
If Target.Column = 1 And Target.Count = 1 Then
If Target = "" Then
Target.Offset(0, 1) = ""
EffaceMentShape (Target.Offset(0, 2).Address)
Else
On Error Resume Next
EffaceMentShape (Target.Offset(0, 2).Address)
Sheets("Photos2").Shapes(1).Copy
Target.Offset(0, 2).Select
ActiveSheet.Paste
Selection.Left = Target.Offset(0, 2).Left + 1
Selection.Top = Target.Offset(0, 2).Top + 1
p = Application.Match(Target.Value, [Noms], 0)
y = "Photos2!" & Sheets("Photos2").Cells(p + 1, 2).Address
Selection.Formula = y
Selection.Name = Target.Row
Target.Offset(0, 1) = "X"
End If
End If
Application.EnableEvents = True
End Sub
Sub EffaceMentShape(c)
On Error Resume Next
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Address = c Then
s.Delete
End If
Next s
End Sub


JB



On 13 fév, 18:46, "Poppy" wrote:
Bonsoir JB
Oui je suis d'accord avec toi, je pige le truc, mais....
Par contre, je voudrais apporter une modification à ce que je voulais p ar
exemple :
En A1 j'inscrit (Avion)
En A2 j'inscrit (Voiture)
En A3 j'inscrit (Vélo)
etc........
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"avion".
Si je met un "x" en B2 je voudrais faire apparaître une image avec une
"voiture".
Si je met un "x" en B1 je voudrais faire apparaître une image avec un
"vélo".

Si je met un "x" en B1 et "x" en B3 je voudrais faire apparaître une im age
avec un "avion et un vélo".

En fait, je voudrais avoir une image différente si je met "x" dans plus ieurs
cellules ?
Et aucune image si il n'y a pas de "x" ?
Est ce possible ?????
Cordialement
Poppy

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

Version simple:

http://cjoint.com/?cnqGgJ2MXr

Affiche une photo si X en colonne B
Les photos sont déjà en place dans la feuille en colonne C

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Count = 1 Then
Application.EnableEvents = False
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Address = Target.Offset(0, 1).Address Then
Shapes(s.Name).Visible = IIf(UCase(Target) = "X", True, False)
End If
Next s
Application.EnableEvents = True
End If
End Sub

JB

On 13 fév, 09:09, "Poppy" wrote:



Bonjour
En colonne A j'ai des noms.
en colonne B je met un "x" en face du nom au quel je veux que sa photo
apparaisse.
Je voudrais que la photo apparaisse en colonne C face au nom.
Je suppose qu'il faut que je mette toutes les images en Feuil2 par exem ple
?
La formule en cellule C1....=SI(B1="x";Feuil2! image 1;"").
Cette formule là n'est pas bonne.
Quelqu'un peut-il me dire quel est la bonne formule ?
Merci de vôtre aide.
Cordialement
Poppy- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



1 2