Collage image conditionnel valeur cellule

Bonjour,

Depuis ce matin je cherche à faire un "copier" une image différente en fonction de la valeur d'une cellule.

https://www.cjoint.com/c/EHdnj6jF3yH

La valeur conditionnelle se trouve en feuille "Saisie" cellule "C18".

Il peut y avoir 8 valeurs [Lundi, Mardi, ....... Dimanche, et cellule vide]

Le résultat de la condition est un copier sur la même feuille "Saisie" en cellule "F4" (angle supérieur gauche de l'image).

et le résultat à coller est :

si cellule "C18" vide ne rien colle

si valeur cellule "C18" = "Lundi" coller image de la Feuille "Lund" dans la Feuille "Saisie" cellule "F4"

si valeur cellule "C18" = "Mardi" coller image de la Feuille "Mard" dans la Feuille "Saisie" cellule "F4"

Ainsi de suite jusqu'à Dimanche.

MERCI pour votre aide !

Bonjour

je suppose que l'affichage de l'image doit se faire après le choix de la date, mais le fichier Calendrier.xls nous est inaccessible.

Donc, après avoir saisi une date en D18, la formule en C18 renvoie le jour Lundi, Mardi, etc.

La macro pour afficher l'image (ici, tu les a toutes nommées "Image 1") correspondante au jour pourrait donner

Sub Colle_Image()
'On efface l'image précédente
ActiveSheet.Shapes("Image 1").Delete
Application.ScreenUpdating = False
ActiveSheet.Range("C18").Select
Feuille = Left(Format(Range("C18"), "dddd"), 4)
Sheets(Feuille).Activate
ActiveSheet.Shapes("Image 1").Copy
Sheets("Saisie").Activate
Range("F4").Select
ActiveSheet.Paste
End Sub

Cordialement

Bonsoir,

le code fonctionne si l'on neutralise la ligne de suppression.

Mais effectivement il faut absolument supprimer l'image précédente sinon on se trouve avec des images "ampilées" les unes sur les autres.

oui la date est saisie dans la cellule "D18" (le bouton "choisir la date" ne fonctionne plus : userforme calendrier qu'il faut que je répare).

J'ai nommer la macro : colle_image

mais comment faire pour qu'elle s'éxécute auto ?

https://www.cjoint.com/c/EHdrn4eElSq

MERCI pour ta contribution.

@+++

Ce Code de la Feuille saisie s'active lorsqu'une date est saisie en D18

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("d18")) Is Nothing Then
'On efface l'image précédente
ActiveSheet.Shapes("Image 1").Delete
Application.ScreenUpdating = False
ActiveSheet.Range("C18").Select
Feuille = Left(Format(Range("C18"), "dddd"), 4)
Sheets(Feuille).Activate
ActiveSheet.Shapes("Image 1").Copy
Sheets("Saisie").Activate
Range("F4").Select
ActiveSheet.Paste
End If
End Sub

https://www.cjoint.com/c/EHdrL01pqMb

Cordialement

Bonsoir,

Pourquoi ne pas la faire se changer automatiquement en fonction de la date en D18 ?

Un système assez simple pour cela : on aligne toutes les images sur la même plage de cellules (quite à ajuster les dimensions et le cadrage avec les cellules), en l'occurrence B2:H16.

Sur l'une des feuilles où se trouve les images on sélectionne ladite plage de cellules et l'on actionne l'outil AppareilPhoto (qui fait une copie image de la plage avec son contenu). On revient sur la feuille saisie, un clic et l'image apparaît. On ajuste son emplacement. On remarque que dans la barre de formule (lorsque l'image est sélectionnée) apparaît une formule correspondant à l'adresse de l'image.

2e étape : on définit un nom. Au hasard img. En référence, on inscrit la formule suivante :

[b]=INDIRECT(GAUCHE(NOMPROPRE(TEXTE(Saisie!$D$18;"jjjj"));4)&"!$B$2:$H$16")

[/b]On valide. Enfin, dans la barre de formule (l'image étant sélectionnée) on remplace la formule existante par =img.

Rien n'a changé, l'image est toujours là.

Maintenant, il suffit de faire varier la date en D18 pour que l'image du jour remplace la précédente.

https://www.cjoint.com/c/EHdsWz52kby

Cordialement

Ferrand

Bonjour,

Super MFerrand !! Très ingénieux !! Merci pour le partage.

Cordialement,

VBABEGINNER

Bonjour,

MERCI à " amadéus " et à " MFerrand " pour leur aide précieuse !

Bien que le code d'amadéus m’ait beaucoup apporté en terme de progression en formation VBA, j'ai pris la proposition de MFerrand qui me semble simple mais trés ingénieuse comme le dit VBABEGINNER !

Par contre j'ai une petite question à MFerrand : Je souhaiterais que lorsque la cellule "D18" de la feuille "saisie" est vide, aucune image ne s'affiche dans la zone "image" de la feuille "saisie".

Comment faire cela ?

MERCI

@+++

Bonjour

Il te faut prévoir une Image "vide" pour ce cas.

Cordialement

Bonjour,

Tu mets la formule sous condition, exemple :

[b]=SI(Saisie!$D$18>0;INDIRECT(GAUCHE(NOMPROPRE(TEXTE(Saisie!$D$18;"jjjj"));4)&"!$B$2:$H$16");Saisie!$M$4:$R$12)

[/b]

qui va renvoyer une zone blanche, ou tu peux choisir une zone dans laquelle tu mets une inscription ou un motif...

Bonne journée

Ferrand

Bonjour,

MERCI, c'est tout à fait ce que je recherche !

@++++

Rechercher des sujets similaires à "collage image conditionnel valeur"