Affichage d'un commentaire lors du survol de plusieurs images

CISCO

XLDnaute Barbatruc
Bonjour à tous

En fouillant sur le site de J. Boisgontier, j'ai trouvé une petite macro (que j'arrive à comprendre :)) qui fait à peu près ce que je voudrais : Elle affiche un commentaire lorsque la souris passe au dessus d'une image.
Seulement, dans mon fichier réel, je n'ai pas une image, mais une cinquantaine, et autant de commentaires bien sûr. J'ai fait un petit exemple, mis en pièce jointe, avec seulement 2 images. Cela fonctionne, mais si j'utilise cette méthode, il va me falloir faire, dans la macro, une cinquantaine de
Private Sub Imagex_MouseMove(ByVal.....
avec x allant de 1 à environ 50. Pas très beau, n'est-ce pas ? Auriez-vous une autre méthode ?

Merci d'avance.

@ plus
 

Pièces jointes

  • survol 2 composants.xlsm
    44.1 KB · Affichages: 144

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Affichage d'un commentaire lors du survol de plusieurs images

Bonjour Cisco, laetitia90,

Un essai avec une classe comme l'a suggéré laetitia90 :). J'y ai inclus une tentative de gestion des légendes (sans prétention). J'ai eu un peu de mal à retrouver le schéma complet à partir du nombre réduit d'éléments fournis :D

Le principe:
  • Toutes les images devant afficher une légende sont des contrôles Image ActiveX.
  • L'image de chaque contrôle Image ActiveX (propriété Picture) a été chargée à partir d'un fichier .jpg sauvegardé sur disque. Quand je n'avais pas d'image, (vase, circulateur, Réservoir/échangeur...), j'ai copié l'image d'excel dans un logiciel de traitement d'image pour sauvegarder ensuite en .jpg sur disque.
  • Les contrôles images ont quelques propriétés particulières (voir description feuille "Legendes")

Le bouton "Légende" affiche le userform de gestion des légendes de chaque image (création, modification, suppression=texte vide)

Lorsqu'on travaille en mode création (menu Développeur / Mode création) pour gérer les contrôles images puis qu'on sort de ce mode pour retourner au mode normal, il se peut que le survol ne fonctionne plus (pas creusé ce point). Dans ce cas, cliquer sur le bouton "Réinit" pour ré-enclencher.

nota: je n'ai pas lié l'image des contrôles ActiveX Image au fichier sur le disque.

Deux fichiers: survol 2 composants v2.xlsm pour le fichier excel (survol 2 composants v2.xlsm) et images.zip pour les images. Le fichier excel est normalement indépendant et fonctionne sans les fichiers images.

Errata: remplacez bien sûr "il a 2000 ans" par "à l"aube des temps" :eek:
 

Pièces jointes

  • images.zip
    258 KB · Affichages: 56
  • images.zip
    258 KB · Affichages: 57
  • images.zip
    258 KB · Affichages: 58
  • survol 2 composants v2.xlsm
    885.5 KB · Affichages: 117
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Affichage d'un commentaire lors du survol de plusieurs images

Bonjour à tous,

Une version simplifiée sans userform. Le code est donc réduit en taille. Néanmoins, on conserve une possibilité de modification ou création des légendes semi-automatique.

Comment ça marche ?:

Il y a deux modes de fonctionnement:
  1. Mode légende OFF -> rien de particulier.
  2. Mode légende ON -> pour pouvoir gérer les légendes.


Mode légende ON:

Ce mode est activé ou désactivité en cliquant sur le bouton vert.

Quand il est activé, les légendes affichent le nom du contrôle Image ActiveX à la fin de la légende entourée de crochets ouvrant et fermant. Ceci permet de voir le nom de l'image pour aller modifier sa légende dans la feuille "Legendes"

Astuce: Si d'un mouvement brusque et rapide mais néanmoins gracieux et fluide, on déplace la souris sur la légende (rectangle rouge clair), alors il suffit de cliquer sur ce rectangle pour être directement conduit sur la feuille "Legendes" sur la cellule contenant le commentaire de l'image soit pour le modifier soit pour le créer (il faut peut-être un peu d'entrainement pour y arriver)
 

Pièces jointes

  • survol 2 composants v2 (simplifié).xlsm
    750.5 KB · Affichages: 96

CISCO

XLDnaute Barbatruc
Re : Affichage d'un commentaire lors du survol de plusieurs images

Bonjour à tous

@ laetitia90 : Quand j'ai lu ton post, je me suis dit "Qu'est-ce que c'est, une classe ? Ca existe en VBA ? Est-ce de l'humour ?". J'ai fait un petit tour sur le net, et j'ai trouvé,en cherchant avec "Classe VBA Excel", plusieurs tutos. Ce n'était donc pas de l'humour... Ils étaient drôlement bien fait, il me semble, vu les commentaires, mais malheureusement, vu mon niveau en VBA... Cela avait l'air très puissant, les modules de classe, mais... Je m'y remettrai dès que possible, mais bon...

@ mapomme.
Grand merci, mapomme. Je vais fouiller tout cela, et reviens te dire si je comprend quelque chose et si cela fonctionne. A lire tes messages, tu as bien compris mon besoin. Encore merci.

@ plus

P.S. 1 : Mes élèves vont bien rire si je laisse les images que tu as mises en exemple !!!
P.S. 2 : Mes élèves vont bien rire si je laisse les commentaires que tu as mis !!!
P.S. 3 : Plus sérieusement, c'est tout à fait ce dont j'avais besoin.
 
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : Affichage d'un commentaire lors du survol de plusieurs images

bonjour tous :):):)

une version trés trés basique avec le fichier de Cisco:)

attention pas aussi sophistiqué que l'ami Mapomme:)

seulement pour le fun:)
 

Pièces jointes

  • survol 1.xlsm
    65 KB · Affichages: 96

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Affichage d'un commentaire lors du survol de plusieurs images

Bonsoir CISCO, à tous,

J'ai remarqué un comportement anormal sur les deux précédents fichiers. Si le fichier a été modifié et qu'on le referme, Excel demande si on veut sauvegarder le fichier ==> Malgré une réponse positive, il peut se produire une erreur aboutissant la plupart du temps à la fermeture du fichier sans sauvegarde, ce qui est fort gênant.

Pour déjouer ce comportement, j'ai rajouté une gestion d'erreur au sein du module de classe (version v2.1)

Si ce comportement anormal dont je n'ai pas trouvé la cause exacte perdurait, ce serait sympa de m'en avertir :).

Edit: Bonsoir laetitia90 :)
 

Pièces jointes

  • survol 2 composants v2.1.xlsm
    887 KB · Affichages: 69
  • survol 2 composants v2.1 (simplifié).xlsm
    750.7 KB · Affichages: 65
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Affichage d'un commentaire lors du survol de plusieurs images

Bonsoir,

Une version très basique.

Code:
Sub Créebulles()
  For Each s In ActiveSheet.Shapes
    If s.Type <> 8 Then
      ActiveSheet.Hyperlinks.Add Anchor:=s, Address:="", SubAddress:=""
      s.Hyperlink.ScreenTip = s.Name & Chr(10) & "...."
    End If
  Next s
End Sub

Code:
Sub bulles2()
  For Each s In ActiveSheet.Shapes
    If s.Type <> 8 Then
      ActiveSheet.Hyperlinks.Add Anchor:=s, Address:="", SubAddress:=""
      tmp = s.Name
      bulle = Application.VLookup(tmp, [légendes], 2, False)
      If Not IsError(bulle) Then
         s.Hyperlink.ScreenTip = bulle & Chr(10) & "...."
      Else
         s.Hyperlink.ScreenTip = "...."
      End If
    End If
  Next s
End Sub

JB
 

Pièces jointes

  • ComposantBulles.xls
    60 KB · Affichages: 100
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Affichage d'un commentaire lors du survol de plusieurs images

Bonjour à tous,

La méthode de J.BOISGONTIER :) est géniale d'ingéniosité. J'ai essayé de l'utiliser (vite fait) pour aussi faciliter la gestion des commentaires comme le souhaitait CISCO.

Quand on survole une image du schéma, le commentaire est affiché.

Si on clique sur l'image, alors on se retrouve sur la feuille "Légendes" sur la cellule correspondante au commentaire de l'image sur laquelle on avait cliquée.

Nota 1: les images ne doivent pas être contenues dans un contrôle Image ActiveX. Pour mettre une image dans le schéma, il suffit de la charger au moyen de la commande Insérer / Image. On peut aussi utiliser des formes.

Nota 2: lors de l'insertion d'images, ces dernières avait des noms en PictureN ou N est un nombre. Après sauvegarde, le macro ne fonctionnait plus. Tous les noms d'images avaient été francisés (PictureN en ImageN) obligeant à faire un remplacer Picture par Image sur la colonne A des légendes. :confused:

Nota 3: comme on travaille sur les shapes, des tas de shapes 'parasites' sont présents dans les légendes (j'avais précisé "vite fait" plus haut)
 

Pièces jointes

  • Survol (methode boisgontier) v1.xls
    309.5 KB · Affichages: 102

CISCO

XLDnaute Barbatruc
Re : Affichage d'un commentaire lors du survol de plusieurs images

Bonsoir à tous

@ mapomme. Ce matin, j'ai eu quelques problèmes avec tes premières propositions : Bien qu'ayant obtenu les commentaires lors d'une première utilisation, je n'avais plus rien lors des utilisations suivantes, après avoir fermé puis réouvert le fichier. Dans ta dernière proposition, j'ai un message d'erreur (Erreur d'exécution '5'. Argument ou appel de précédure incorrect) à l'ouverture. Si je débogue, cela me surligne la dernière ligne de cette partie :
Else
'le nom de l'image y figure déjà
'on crée le lien pour la forme en cours avec comme cible
'la cellule du commentaire actuel
ActiveSheet.Hyperlinks.Add Anchor:=s, Address:="", SubAddress:=shleg.Cells(Ligne, 2).Address(True, True, xlA1, True)
mais si je clique sur fin, cela fonctionne :).

J'analyse plus sérieusement la proposition de J.B., celle de laetitia90 et les tiennes dès que possible. Merci à vous trois.

@ plus
 

CISCO

XLDnaute Barbatruc
Re : Affichage d'un commentaire lors du survol de plusieurs images

Bonjour à tous

Tout cela fonctionne très bien. Je vais adapter ces macros à mon schéma réel.
Laetitia90, pourrais- tu me détailler ton code, car je n'y comprend pas grand chose ?

Merci d'avance.

@ plus
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 324
Membres
103 179
dernier inscrit
BERSEB50