Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Texte appel image

30 réponses
Avatar
Guy72
Bonjour,
Est-il possible d'après un texte par exemple: "Pluie" en cellule D6 et de
faire apparaître une image en cellule F6 ?
L'image se trouve dans le même dossier.
http://www.cijoint.fr/cjlink.php?file=cj200911/cijFdbPym5.xls
--
Cordialement
Guy

10 réponses

1 2 3
Avatar
Guy72
Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes affaires !
Daniel

Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix de D6).Ok

Mais si je souhaiterais avoir la même chose dans les cellules en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le choix de
D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Ou plutôt cette syntaxe :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub

Daniel


Au temps ppour moi.
Remplace la macro par :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub

(le nom des images est en A6 et plus bas). J'ai ajouté le delete de
l'image précédente, en fait, la dernière collée sur la feuille. Fais
donc attention si tu en ajoutes.
Daniel

Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms différents
"ActiveSheet.Shapes.Range("Pluie").Select" et de cellules différentes
"If Target.Address = "$D$6" Then" et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8 Image F8,
etc......
Merci de votre aide














Avatar
Daniel.C
http://cjoint.com/?lzoZh1jB23
Daniel

Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes affaires !
Daniel

Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix de D6).Ok

Mais si je souhaiterais avoir la même chose dans les cellules en dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le choix de
D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Ou plutôt cette syntaxe :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub

Daniel


Au temps ppour moi.
Remplace la macro par :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub

(le nom des images est en A6 et plus bas). J'ai ajouté le delete de
l'image précédente, en fait, la dernière collée sur la feuille. Fais
donc attention si tu en ajoutes.
Daniel

Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms différents
"ActiveSheet.Shapes.Range("Pluie").Select" et de cellules différentes
"If Target.Address = "$D$6" Then" et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8 Image F8,
etc......
Merci de votre aide
















Avatar
Guy72
Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille de faire
ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

http://cjoint.com/?lzoZh1jB23
Daniel

Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes affaires !
Daniel

Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix de
D6).Ok

Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix de
D9).
D11(Texte liste déroulante) et F11(résultat image suivant le choix de
D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Ou plutôt cette syntaxe :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub

Daniel


Au temps ppour moi.
Remplace la macro par :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub

(le nom des images est en A6 et plus bas). J'ai ajouté le delete de
l'image précédente, en fait, la dernière collée sur la feuille. Fais
donc attention si tu en ajoutes.
Daniel

Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms différents
"ActiveSheet.Shapes.Range("Pluie").Select" et de cellules
différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8 Image F8,
etc......
Merci de votre aide




















Avatar
Daniel.C
Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel

Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille de faire
ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

http://cjoint.com/?lzoZh1jB23
Daniel

Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes affaires !
Daniel

Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix de
D6).Ok

Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le choix de
D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Ou plutôt cette syntaxe :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub

Daniel


Au temps ppour moi.
Remplace la macro par :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub

(le nom des images est en A6 et plus bas). J'ai ajouté le delete de
l'image précédente, en fait, la dernière collée sur la feuille. Fais
donc attention si tu en ajoutes.
Daniel

Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms différents
"ActiveSheet.Shapes.Range("Pluie").Select" et de cellules différentes
"If Target.Address = "$D$6" Then" et "Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8 Image F8,
etc......
Merci de votre aide






















Avatar
Guy72
En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour chaque
partie les mettre en E1 pour le matin (c'est à dire qu'à chaque validation
l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31 jours (E37), et
en F1 pour l'après-midi (c'est à dire qu'à chaque validation l'image irai en
cellule F6 puis en F7 puis en F8jusqu'à 31 jours (F37).



--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:

Dis voir les colonnes que tu veux utiliser pour les listes de validation
et pour les images.
Daniel

Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille de
faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

http://cjoint.com/?lzoZh1jB23
Daniel

Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes affaires !
Daniel

Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix de
D6).Ok

Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix de
D9).
D11(Texte liste déroulante) et F11(résultat image suivant le choix de
D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news:
Ou plutôt cette syntaxe :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub

Daniel


Au temps ppour moi.
Remplace la macro par :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub

(le nom des images est en A6 et plus bas). J'ai ajouté le delete de
l'image précédente, en fait, la dernière collée sur la feuille.
Fais donc attention si tu en ajoutes.
Daniel

Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8 Image F8,
etc......
Merci de votre aide


























Avatar
Daniel.C
Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel

En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour chaque
partie les mettre en E1 pour le matin (c'est à dire qu'à chaque validation
l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31 jours (E37), et
en F1 pour l'après-midi (c'est à dire qu'à chaque validation l'image irai en
cellule F6 puis en F7 puis en F8jusqu'à 31 jours (F37).



--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:

Dis voir les colonnes que tu veux utiliser pour les listes de validation et
pour les images.
Daniel

Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille de
faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

http://cjoint.com/?lzoZh1jB23
Daniel

Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes affaires !
Daniel

Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix de
D6).Ok

Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix de
D9).
D11(Texte liste déroulante) et F11(résultat image suivant le choix de
D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Ou plutôt cette syntaxe :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub

Daniel


Au temps ppour moi.
Remplace la macro par :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub

(le nom des images est en A6 et plus bas). J'ai ajouté le delete de
l'image précédente, en fait, la dernière collée sur la feuille. Fais
donc attention si tu en ajoutes.
Daniel

Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8 Image F8,
etc......
Merci de votre aide




























Avatar
Guy72
C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel

En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour chaque
partie les mettre en E1 pour le matin (c'est à dire qu'à chaque
validation l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31
jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à chaque
validation l'image irai en cellule F6 puis en F7 puis en F8jusqu'à 31
jours (F37).



--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:

Dis voir les colonnes que tu veux utiliser pour les listes de validation
et pour les images.
Daniel

Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille de
faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

http://cjoint.com/?lzoZh1jB23
Daniel

Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news:
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes affaires !
Daniel

Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix de
D6).Ok

Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix de
D9).
D11(Texte liste déroulante) et F11(résultat image suivant le choix
de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news:
Ou plutôt cette syntaxe :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub

Daniel


Au temps ppour moi.
Remplace la macro par :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub

(le nom des images est en A6 et plus bas). J'ai ajouté le delete
de l'image précédente, en fait, la dernière collée sur la
feuille. Fais donc attention si tu en ajoutes.
Daniel

Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8 Image
F8, etc......
Merci de votre aide
































Avatar
Daniel.C
Essaie ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub

Daniel

C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel

En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour chaque
partie les mettre en E1 pour le matin (c'est à dire qu'à chaque validation
l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31 jours (E37),
et en F1 pour l'après-midi (c'est à dire qu'à chaque validation l'image
irai en cellule F6 puis en F7 puis en F8jusqu'à 31 jours (F37).



--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:

Dis voir les colonnes que tu veux utiliser pour les listes de validation
et pour les images.
Daniel

Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille de
faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

http://cjoint.com/?lzoZh1jB23
Daniel

Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes affaires !
Daniel

Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix de
D6).Ok

Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix de
D9).
D11(Texte liste déroulante) et F11(résultat image suivant le choix
de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news:
Ou plutôt cette syntaxe :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub

Daniel


Au temps ppour moi.
Remplace la macro par :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub

(le nom des images est en A6 et plus bas). J'ai ajouté le delete
de l'image précédente, en fait, la dernière collée sur la feuille.
Fais donc attention si tu en ajoutes.
Daniel

Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8 Image
F8, etc......
Merci de votre aide


































Avatar
Guy72
Ok c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Essaie ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30],
0), 1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub

Daniel

C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel

En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour chaque
partie les mettre en E1 pour le matin (c'est à dire qu'à chaque
validation l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31
jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à chaque
validation l'image irai en cellule F6 puis en F7 puis en F8jusqu'à 31
jours (F37).



--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:

Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel

Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille
de faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news:
http://cjoint.com/?lzoZh1jB23
Daniel

Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news:
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes affaires
!
Daniel

Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix
de D6).Ok

Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix
de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le
choix de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news:
Ou plutôt cette syntaxe :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub

Daniel


Au temps ppour moi.
Remplace la macro par :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub

(le nom des images est en A6 et plus bas). J'ai ajouté le
delete de l'image précédente, en fait, la dernière collée sur
la feuille. Fais donc attention si tu en ajoutes.
Daniel

Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8 Image
F8, etc......
Merci de votre aide






































Avatar
Daniel.C
Juste un oubli...
Daniel

Ok c'est parfait.
Mais encore une petite question.
A quoi sert la liste en colonne A ?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Essaie ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ResAdr As String
If Target.Row <> 1 Then Exit Sub
Application.EnableEvents = False
image = Application.Index([A6:A30], Application.Match(Target, [A6:A30], 0),
1)
If Target.Column = 5 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 5).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 5).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 5).Address(0, 0))
.Left = Cells(i, 5).Left
.Top = Cells(i, 5).Top
End With
ElseIf Target.Column = 6 Then
For i = 6 To 37
On Error Resume Next
Set Sh = ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Shapes.Range(image).Select
Selection.Copy
Cells(i, 6).Select
ActiveSheet.Paste
Selection.ShapeRange.Name = (Cells(i, 6).Address(0, 0))
On Error GoTo 0
Exit For
End If
Next i
With ActiveSheet.Shapes(Cells(i, 6).Address(0, 0))
.Left = Cells(i, 6).Left
.Top = Cells(i, 6).Top
End With
End If
Application.EnableEvents = True
End Sub

Daniel

C'est tout à fait ça.
Pour l'instant le seul problème que je trouve ç' est l'emplacement des
image,elle ne se mette pas en haut à gauche de la cellule.
Comment peut-on avoir les image toujours dans le même alignement.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Teste le classeur suivant :
http://cjoint.com/?lztWd1zHsz
(je m'absente pour une dizaine de jours; relance le forum en cas de
besoin).
Daniel

En colonne B les cellules de validation du matin.
En colonne C les cellules de validation de l'après -midi.
En colonne E les images du matin.
En colonne F les images de l'après-midi.
La liste, n'importe ou en dessous de la ligne 40 ou en colonne N.
Si ?c'est possible? de faire qu'une cellule de validation pour chaque
partie les mettre en E1 pour le matin (c'est à dire qu'à chaque
validation l'image irai en cellule E6 puis en E7 puis en E8 jusqu'à 31
jours (E37), et en F1 pour l'après-midi (c'est à dire qu'à chaque
validation l'image irai en cellule F6 puis en F7 puis en F8jusqu'à 31
jours (F37).



--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:

Dis voir les colonnes que tu veux utiliser pour les listes de
validation et pour les images.
Daniel

Oui sait ce que je voulais!!!
Cela me fais penser à autre chose.
Si je fais ça pour une journée, est-il possible sur la même feuille de
faire ç par 1/2 journée ?
Matin image en colonne F.
Après-midi en colonne G.
Je suppose avec une 2ème liste déroulante ?
Mais au niveau du code..........?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

http://cjoint.com/?lzoZh1jB23
Daniel

Non, ça peut être 6,7,8,9,10,11 jusqu'à 31 jours
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news:
T'es bien sûr que c'est 6, 9, 11, 13 ? t'arranges pas mes affaires
!
Daniel

Ok ça fonctionne seulement pour avoir.
D6(Texte liste déroulante)et F6(résultat image suivant le choix de
D6).Ok

Mais si je souhaiterais avoir la même chose dans les cellules en
dessous.
D9(Texte liste déroulante) et F9(résultat image suivant le choix
de D9).
D11(Texte liste déroulante) et F11(résultat image suivant le choix
de D11).
etc.........
Pour ça les images doivent rester en place.
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news:
Ou plutôt cette syntaxe :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30], Application.Match(Target,
[A6:A30], 0), 1)
On Error Resume Next
ActiveSheet.Shapes("toto").Delete
On Error GoTo 0
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
Selection.ShapeRange.Name = "toto"
End If
End Sub

Daniel


Au temps ppour moi.
Remplace la macro par :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Image = Application.Index([A6:A30],
Application.Match(Target, [A6:A30], 0), 1)
ActiveSheet.Shapes(Shapes.Count).Delete
ActiveSheet.Shapes.Range(Image).Select
Selection.Copy
Range("F6").Select
ActiveSheet.Paste
End If
End Sub

(le nom des images est en A6 et plus bas). J'ai ajouté le delete
de l'image précédente, en fait, la dernière collée sur la
feuille. Fais donc attention si tu en ajoutes.
Daniel

Bonjour,
D'accord ça fonctionne avec des noms différent dans le code.
La liste déroulante me conviens bien.
Il faut donc que je copie autant de fois le code que noms
différents "ActiveSheet.Shapes.Range("Pluie").Select" et de
cellules différentes "If Target.Address = "$D$6" Then" et
"Range("F6").Select"?
Exemple : Texte D6 Image F6, Texte D7 Image F7, Texte D8 Image
F8, etc......
Merci de votre aide








































1 2 3