XL 2016 VBA affichage image/sélection ligne après click souris

SEBABOO

XLDnaute Nouveau
Bonjour à tous,

Je viens vers vous afin que vous puissiez m'apporter votre aide dans la conception de ce fichier, en espérant que ce que j'ambitionne soit réalisable.
J'ai créé un fichier Excel dans lequel on retrouve les plans de chaque étage d'un bâtiment. Sur ce plan, j'ai placé des points cliquables représentant la position des BAES blocs de secours ; en vert pour les blocs d'évacuation et en rouge pour les blocs d'ambiance et ce dans le but d'assurer le suivi d'entretient des BAES.

Un tableau annexe reprend les dénominations de chaque bloc avec type, date de pose, référence. Un emplacement est prévu à coté de ce tableau pour afficher l'image du bloc correspondant, image présentes dans l'onglet "BASE DE DONNEES".
Le but de la manœuvre, vous l'aurez compris, est que lorsque l'on clique sur un point, la ligne correspondante dans le tableau et l'image de ce bloc de secours apparaissent.

Je débute en VBA et malgré mes recherches de codes sur le net en tentant d'en comprendre les procédures et de les adapter à mon cas de figure, le résultat n'est que partiellement là…
Je suis pour le moment parvenu à générer la surbrillance des lignes du tableau, mais la surbrillance s'applique à toute la feuille de l'onglet et je ne souhaite qu'elle ne s'applique qu'au tableau.
Concernant l'affichage des images correspondantes, ces dernières apparaissent hasardeusement. Je souhaiterai qu'à chaque clic la bonne image s'affiche et écrase la précédente dans l'espace prévu à cet effet.

Merci pour votre aide.
 

Pièces jointes

  • BAES V1.xlsm
    463.7 KB · Affichages: 20
Solution
Bonsoir Sebaboo,
En PJ un essai.
Pour le problème de cellules j'ai mis :
VB:
    ' On sort si on n'est pas dans le tableau
    If (target.Row < 33 Or target.Row > 52) Or (target.Column < 2 Or target.Column > 9) Then Exit Sub
Pour les images, je les mets en visible/invisible. C'est plus simple. elles sont toujours présentes, ça évite de les supprimer et rapatrier.
Code:
    ' Gestion images
    If Cells(target.Row, 4) = "Evac" Then
        Shapes("Evac").Visible = True
        Shapes("Amb").Visible = False
    Else
        Shapes("Evac").Visible = False
        Shapes("Amb").Visible = True
    End If

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Sebaboo,
En PJ un essai.
Pour le problème de cellules j'ai mis :
VB:
    ' On sort si on n'est pas dans le tableau
    If (target.Row < 33 Or target.Row > 52) Or (target.Column < 2 Or target.Column > 9) Then Exit Sub
Pour les images, je les mets en visible/invisible. C'est plus simple. elles sont toujours présentes, ça évite de les supprimer et rapatrier.
Code:
    ' Gestion images
    If Cells(target.Row, 4) = "Evac" Then
        Shapes("Evac").Visible = True
        Shapes("Amb").Visible = False
    Else
        Shapes("Evac").Visible = False
        Shapes("Amb").Visible = True
    End If
 

Pièces jointes

  • BAES V1.xlsm
    465.2 KB · Affichages: 23

Discussions similaires