Affichage controlé d'image sous excel

Résolu
fumble64 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
 rhym -
Bonjour, je voudrais paramétrer l'affichage d'image sous excel en fonction de la valeur d'une cellule.
Par exemple, si a1=1; afficher photo 1 et masquer photo 2-3-4-5, si a1=2; afficher photo 2 et masquer photo 1-3-4-5

Voila, je ne sais pas si c'est réalisable sous excel ...
Je pense qu'il doit faloir créer une macro en VBA mais je voudrais, si c'est possible, que cela se fasse automatiquement, c'est à dire sans avoir besoin d'appuyer sur un bouton ou quoi que ce soit.

Si quelqu'un avait une suggestion à mon problème, ou un site qui m'explique comment faire ce serai super !
A voir également:

5 réponses

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Dans le code VBA de ta feuille, tu peux essayer de mettre cette macro en regardant ici éventuellement.
Private Sub Worksheet_Change(ByVal sel As Range)
If Intersect(sel, Range("F3")) Is Nothing Then Exit Sub
If sel.Count > 1 Then Exit Sub
Dim elm As Shape
Dim nom As String
For Each elm In ActiveSheet.Shapes
    On Error Resume Next
    nom = elm.Name
    On Error GoTo 0
    If Left(nom, 7) = "Picture" Then
        If Val(Right(nom, Len(nom) - 8)) = Val(sel.Value) Then
            elm.Visible = True
        Else
            elm.Visible = False
        End If
    End If
Next elm
End Sub

Tu remplaces seulement F3 par l'adresse de ta cellule paramètre.
Tu n'as pas de bouton et c'est la modification de ta cellule qui change aussi l'affichage.
1
fumble64 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   3
 
j'ai bien recopié le code dans la feuille excel et quelque chose semble se passer quand je modifie le chiffre de la cellule : la barre d'outils de gestion des boutons VBA se grise.
Est-ce que tu pourrais m'indiquer comment je peux nommer les image pour que la macro les reconnaisse et comment je dois les nommer :
est ce que je dois les nommer "picture1", "picture2"
Dans tous les cas merci pour ta patience !
0
fumble64 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   3
 
d'accord, je viens de comprendre quel type d'images utiliser :
il faut insérer les images via la barre d'outils des macros,
ensuite je peux insérer des objets images,
et je peux afficher les propriétés de chacune comprenant le nom et le choix de l'image que je veux exploiter
me reste à savoir comment il faut que je nomme ces images, et est ce que le code que tu m'as donné limite le nombre d'images que je peux utiliser
j'ai cru voir "7" et "8" dans le code -> qu'est ce que ça veut dire ?
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

quel type d'images utiliser :

Comme tu parlais de photos, je suis parti de là et comme lorsque l'on utilise le menu insertion / image / à partir du fichier on obtiens des noms automatiques sur Excel qui sont "Picture 1" "Picture 2" etc

j'ai cru voir "7" et "8" dans le code -> qu'est ce que ça veut dire ?

Donc le "7" correspond au nombre de caractères de "Picture" et "8" au nombre de caractères de "Picture " pour prendre le nombre suivant qui est le numéro de la photo.
Lorsque tu insères ton image, le nom apparaît dans la zone nom et donc tu remplaces "Picture " par ton nom et tu adaptes les longueurs.

le code que tu m'as donné limite le nombre d'images que je peux utiliser

Tu peux mettre autant d'images que tu veux mais une seule est affichée à la fois, celle dont tu as saisis le numéro dans ta cellule de choix.

N'hésites pas à poser les questions que tu n'as pas comprises.
0
rhym
 
j'ai tout à fait compris ton code VBA mais seulement je voudrai que le numéro 7 et 8 correspondent à une formule de recherche.Je t'explique dans une case je fai une liste dont je choisit le nom suivant le nom choisit un numéro appariat dans ta case F3 pour que ton code marche et la jai une ligne du code qui s'affiche en jaune : If Val(Right(nom, Len(nom) - 8)) = Val(sel.Value) Then.Peut tu m'aider
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fumble64 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   3
 
ok trés bien !
ça marche super bien je te remercie 1000 fois
c'est vraiment parfait !!!!
0

Discussions similaires