Faire apparaitre et disparaitre une photo par un simple cli souris

bonjour

Je me suis fait une feuille excel où j'ai rentré tous mes vins en cave (nom, région, année, nom de la bouteille, date d'achat ...

J'ai aussi pris en photo chaque bouteilles de vin avec son étiquette personnelle.

Maintenant je désire que dans cette feuille excel, je puisse faire apparaitre/disparaitre la photo du vin quand je clic sur la dernière cellule de chaque vin. C'est à dire la première cellule vide ..

sur la photo, c'est la cellule qui est surlignée en jaune. Ce serait donc par exemple, pour la bouteille numéro 27 la cellule surlignée en jaune et ainsi de suite pour chaque ligne de vin.

gtfh

j'espère avoir été compréhensible dans mes explications.

J'ai essayé avec un code trouvé sur ce forum mais je ne suis pas assez doué et ça ne marche pas ...

le code : Sub Kenny()

With ActiveSheet.Shapes("Img")

.Visible = Not .Visible

End With

End Sub

j'ai remplacé 'img' par le nom de la photo mais ça ne marche pas....

j'ai crée la macro puis inserer la photo voulue dans la cellule voulue et par le clic droit souris, j'ai affecté la macro mais ça ne fonctionne pas. Il met une erreur car il ne trouve pas la photo.

j'ai dû oublier quelque chose. malgré les tutos trouvés sur le net, je ne suis pas assez doué en excel et là je coince.

si quelqu'un pouvait m'expliquer pas à pas la façon de faire ....

(par contre ayant environ 200 bouteilles et chaque bouteille a sa propre photo, il va falloir donc crée 200 macros car chacune aura une photo personnelle de la bouteille désirée.)

d'avance merci

cordialement

voici une première approche, qui ne correspond pas tout à fait au cahier des charges

la photo doit avoir comme nom le numéro de la ligne

200etiquette-vin.xlsm (144.32 Ko)

Bonjour,

Une proposition avec les images en colonne F et la sélection en colonne G.

129essai-1.xlsm (31.96 Ko)

Bonjour,

Une proposition avec les images en colonne F et la sélection en colonne G.

merci beaucoup pour votre aide.

Votre essai, je l'avais déjà fait mais il ne répondait pas assez à ce que je cherchais car les photos sont trop petites. et on voit rien dessus. Car les photos sont obligatoirement aux dimensions d'une cellule.

Mais grand merci à vous quand même. Vous avez pris du temps à mon petit pb

cordialement

Bonsoir,

Car les photos sont obligatoirement aux dimensions d'une cellule.

Pas du tout. Il suffit simplement que le haut de l'image soit dans le haut des cellules de la ligne.

ci-dessous exemple avec sélection en colonne J

144essai-2.xlsm (32.05 Ko)

voici une première approche, qui ne correspond pas tout à fait au cahier des charges

la photo doit avoir comme nom le numéro de la ligne

je crois que cela me va pas mal

il faudrait que les photos soient toutes de la même dimension que la votre "château cheval blanc" et que les photos apparaissent toutes à la même position .

par contre j'ai environ 200 bouteilles donc 200 lignes avec donc 200 etiquettes a faire apparaitre ....

j'ai vu que vous aviez créée 2 marcos "feuille1.zz et feuille1.zero_photo"

si vous pouviez m'expliquer ou comment les utiliser pour chaque ligne de bouteilles .... et vous dites que la photo doit avoir comme nom le numero de la ligne. pouvez vous m'en dire + ? . je le trouve où ce nom ? Je la nomme où la photo ?

un petit tuto serait le bien venu je crois au moins m'expliquer comment vous avez fait pour les 2 lignes que vous me proposez...

car là je n'y comprends plus grand chose ....

merci d'avance. cordialement

Bonsoir,

Car les photos sont obligatoirement aux dimensions d'une cellule.

Pas du tout. Il suffit simplement que le haut de l'image soit dans le haut des cellules de la ligne.

ci-dessous exemple avec sélection en colonne J

oups ... je dois mal m'y prendre mais je ne vois aucune photo en colonne J

je dois mal m'y prendre mais je ne vois aucune photo en colonne J

sélection en colonne J ==> photo en colonnes F,G,H

je dois mal m'y prendre mais je ne vois aucune photo en colonne J

sélection en colonne J ==> photo en colonnes F,G,H

ça y est ... parfois je suis couillu ...

mais comment faits vous cela , je ne vois pas de macro ...

mais comment faits vous cela , je ne vois pas de macro ...

Le code est situé dans Feuil1. Il s'agit d'une macro événementielle.

j'ai placé les photos à la hauteur de la ligne correspondant au vin

la feuille "photo" a un bouton qui permet de redimensionner toutes les images, notamment quand on ajoute une étiquette

la feuille nommer une photo est une simple explication pour nommer les photos

j'espère que tu as une bonne cave

68etiquette-vin.xlsm (597.16 Ko)

mais comment faits vous cela , je ne vois pas de macro ...

Le code est situé dans Feuil1. Il s'agit d'une macro événementielle.

ok j'ai enfin vu ...

le codes est : Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim image As Shape, vin As Shape

If Not Intersect(Me.Columns("J"), Target) Is Nothing And Target.Count = 1 Then

For Each image In Me.Shapes

If image.TopLeftCell.Row = Target.Row Then

If Not image.Visible Then image.Visible = True: Exit For

If image.Visible Then image.Visible = False: Exit For

End If

Next image

End If

End Sub

par contre je souhaiterais une petite amélioration si possible.

voici ce que j'aimerais :

aucune photo visible initialement tant qu'on a pas cliqué sur une cellule en colonne J

au premier clic : la photo apparait

au deuxième clic le même endroit, la photo disparait ou un second clic sur une autre cellule (autre ligne) située en colonne J : la photo disparait et s'ouvre une nouvelle photo (celle située sur une nouvelle cellule selectionnée en colonne J

comme ceci il n'y a qu'une seule photo à l'écran et jamais 2 et donc la nouvelle photo fait disparaitre l'ancienne.

cela est il possible en modifiant le code de la macro evenementielle ?

[quote=gullaud post_id=678768 time=1533894249 user_id=44921]

ç& y est je crois que ça marche ...

juste pour essai j'ai fait cela sur votre exemple

ps : oui j'ai une bonne cave mais difficilement gérable car toutes les bouteilles sont rangées dans une cave à vin (frigo) et donc difficilement gérables....

432etiquette-vin.xlsm (752.53 Ko)

Bonjour,

Pour répondre à votre demande, ci-jointe nouvelle version.

A l'ouverture du fichier ou à l'activation de la feuille Feuil1 ayant pour nom"Test" , masquage de toutes les images appartenant à cette feuille.

Private Sub Workbook_Open()
    'exécution procédure d'activation de la feuille Feuil1
    Application.Run "Feuil1.Worksheet_Activate"
End Sub

Private Sub Worksheet_Activate()
    Dim image As Shape

    'masquage de toutes les images
    For Each image In Me.Shapes
        image.Visible = False
    Next image

End Sub

Modification de la procédure évènementielle relative à la sélection d'une cellule

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim image As Shape

    'masquage derniére image affichée
    If Not image_affichée Is Nothing Then image_affichée.Visible = False: Set image_affich?e = Nothing

    If Not Intersect(Me.Columns("J"), Target) Is Nothing And Target.Count = 1 Then
        'affichage image correspondant ? ligne de la s?lection
        For Each image In Me.Shapes
            If image.TopLeftCell.Row = Target.Row Then
                image.Visible = True
                Set image_affichée = image
                Exit For
            End If
        Next image
    End If

End Sub
58essai-3.xlsm (33.98 Ko)

Bonjour,

Pour répondre à votre demande, ci-jointe nouvelle version.

A l'ouverture du fichier ou à l'activation de la feuille Feuil1 ayant pour nom"Test" , masquage de toutes les images appartenant à cette feuille.

Private Sub Workbook_Open()
    'exécution procédure d'activation de la feuille Feuil1
    Application.Run "Feuil1.Worksheet_Activate"
End Sub

Private Sub Worksheet_Activate()
    Dim image As Shape

    'masquage de toutes les images
    For Each image In Me.Shapes
        image.Visible = False
    Next image

End Sub

Modification de la procédure évènementielle relative à la sélection d'une cellule

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim image As Shape

    'masquage derni?re image affich?e
    If Not image_affich?e Is Nothing Then image_affich?e.Visible = False: Set image_affich?e = Nothing

    If Not Intersect(Me.Columns("J"), Target) Is Nothing And Target.Count = 1 Then
        'affichage image correspondant ? ligne de la s?lection
        For Each image In Me.Shapes
            If image.TopLeftCell.Row = Target.Row Then
                image.Visible = True
                Set image_affich?e = image
                Exit For
            End If
        Next image
    End If

End Sub

super ! merci encore c'est super sympa

j'ai donc 2 propositions. je vais expérimenter pour voir laquelle est la + adaptée à mon projet

je vais essayé de mettre cela dans ma feuille ... pas mal de boulot en perspective ....

je vous tiens au courant si pb pour autre.

cordialement

suite à ma proposition, si elle t’intéresse, je peux l'améliorer

ne plus utiliser le numéro de ligne, en effet si tu supprimes une ligne, donc un vin, il faut renommer toutes les suivantes, donc j'ajouterais une colonne avec un numéro

de plus en fonction des renseignements sur les vins on pourrait faire des filtres pour ne faire apparaître qu'une appellation ou une région

pour cela indiques moi toutes tes colonnes (nom, appellation, région, propriétaire, etc

si tu prends la solution du collègue j' arrête, évidemment

merci de ne ternir au courant

suite à ma proposition, si elle t’intéresse, je peux l'améliorer

ne plus utiliser le numéro de ligne, en effet si tu supprimes une ligne, donc un vin, il faut renommer toutes les suivantes, donc j'ajouterais une colonne avec un numéro

de plus en fonction des renseignements sur les vins on pourrait faire des filtres pour ne faire apparaître qu'une appellation ou une région

pour cela indiques moi toutes tes colonnes (nom, appellation, région, propriétaire, etc

si tu prends la solution du collègue j' arrête, évidemment

merci de ne ternir au courant

bien sûr que je suis interessé. je viens de vous envoyé un mp avec mon fichier

bonjour à tous

salut gullaud

cette histoire de cave motive !

pourquoi du VBA alors qu'un bête lien hypertexte suffit ?

Rechercher des sujets similaires à "apparaitre disparaitre photo simple cli souris"