Faire suivre le commentaire d'une cellule

Bonsoir à tous.

Merci d'avance pour vos réponses positives et négatives cela me permettra de m'améliorer !

J'aimerais savoir si il est possible de faire suivre le commentaire d'une cellule dans une autre.
Je m'explique, dans ma première feuille, j'ai "une base de donnée" avec des commentaires contenant des images (comme ça j'ai un aperçu de l'objet en passant la souris dessus),

screen1

et dans ma seconde feuille, j'ai une formule qui me permet par le biais de menus déroulants de m'afficher certains objets. Hors le commentaire ne suit pas, donc je n'ai pas l'aperçus des objets.

screen2

Y a t'il une possibilité d'affiché les commentaires d'une quelconque façon dans les cases ? Et que ceux ci changent en fonction du contenu de la cellule ?

Bonjour et bienvenu sur le forum,

Merci de lire la charte
Cdt

Bonjour fronck, merci pour l'accueil.

Ne vous en faite pas la charte a bien été lu avant de poster ! J'espère ne pas avoir mis de bêtises dans le topic.

Bonn journée!

Bonjour Ideos,

J'ai cherché sur le net:

https://www.google.com/search?client=firefox-b-d&q=execution+macro+survol+cellule

Il faut une macro pour changer le commentaire sur la liste déroulante. Et en enregistrement macro tu obtiens çà:

Sub Macro4()
'ajout commentaire
    Range("E4").AddComment
    Range("E4").Comment.Visible = False
    Range("E4").Comment.Text Text:="ton commentaire"
    Range("E4").Select
'suppression commentaire
    Selection.ClearComments
End Sub

Mais il manque la procédure pour le mouseMove sur une cellule (ici image).

Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
End Sub

Cdt

Bonsoir fronck,

Merci pour ta réponse !

Effectivement je n'aurais pas pensé à effectuer ce type de recherche, j'ai plutôt cherché en mot clé commentaire / duplication

Je vais regarder comment tout cela fonctionne, je n'ai jamais utiliser ou fait de macro je suis sur les cours VBA depuis le début d'aprem ! c'est très bien fait ahah

Je reviens vers toi après avoir tester tout ça

Merci encore !

Rebonsoir,

Je vais très certainement passer pour un idiot mais bon ; que fait la macro exactement ? peux tu me l'expliquer ? N'ayant jamais utilisé de macro je ne suis pas du tout familier avec leur utilisation.

Merci d'avance et bonne soirée !

Bonsoir Ideos, Fronck,

Je te propose une solution différente. En ajoutant dans ta première feuille portant les commentaires (notes) une colonne avec le chemin des images.

dalton

Dans la deuxième feuille créer une liste déroulante basée sur la colonne B de la première feuille (voir Menu Donnée, Liste de validation) et insérée sur toutes les lignes de la colonne C de cette 2ième feuille. Plus ajouter dans chacune de ces lignes une note (ton commentaire image) vide.

Ensuite copier dans le code de la 2ième feuille (ALT+F11) pour ouvrir l'éditeur VBA et faire clic droit sur le nom de cette 2ièeme feuille. Adapter le code aux bonnes colonnes et lignes.

Private Sub Worksheet_Change(ByVal Target As Range)
'Feuille active(la 2ième) ayant les listes déroulantes
On Error GoTo ErrCom
'Colonne et ligne des listes déroulantes en C2:C10. A adapter selon nombre de ligne
If Not Intersect(Target, Range("C2:C10")) Is Nothing Then
'Feuille Base portant la base de données et le chemin complet des images par ligne
'Récupération de la ligne ayant le nom de la photo ciblée. A adapter selon le nbre de lignes.
Lig = Sheets("Base").Range("B$1:B$30").Find(Target).Row
Application.EnableEvents = False
'Reprise du chemin complet dans la colonne/ligne en la feuille Base de la photo ciblée. Ici en colonne M
Cible = Sheets("Base").Range("M" & Lig)
'Application sur le commentaire de la liste déroulante cliquée.
Target.Comment.Shape.Fill.UserPicture (Cible)
End If
ErrCom:
Application.EnableEvents = True
End Sub

En cliquant sur la flèche de la liste déroulante tu choisis un item de la liste basée sur la 1ière feuille. En passant par une liste de validation, cela évite des fautes de frappe.

Bonjour X Cellus,

Je te remercie énormément pour ta proposition, et le temps que tu as consacré à mon "problème".

Néanmoins, je ne crois pas que cela réponde à mes besoins.

La deuxième feuille ( screen 2 ) sert de "recherche" pour trier en fonction des besoins , si j'ai besoin d'un casque en armure lourde, ca me mettra en fonction de ces critères les casques lourds. Du coup mettre un menu déroulant les noms dans chaque cellule ne répondrait pas à ma problématique.

Peu être n'ai-je pas compris l'utilisation de la macro. Je vais quand même l'essayer !

J'ai réfléchis à une autre solution pour mon soucis.

Est-il possible, d'assigner un commentaire à un texte précis ?

Par exemple si dans une cellule le texte est "Banane" le commentaire associer soit une image de banane ; et que peu importe où si le texte "Banane" est affiché il y est le commentaire associé.
Et si ce texte est remplacé par un autre par exemple "Pomme" le commentaire change, et m'affiche un commentaire en image de pomme

Et ceci avec tout les objets / images associés

Je vous remercie pour le temps que vous me consacrez. Bonne journée à tous !

Bonsoir Ideos,

Si ton deuxième tableau sert uniquement à trier des données qui sont correctement orthographiées pour ressortir selon les critères souhaités.

Alors, pas de souci. Cela demande juste une légère adaptation du principe, qui est de trouver justement le produit qui matche.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Sur la 2ième feuille
On Error GoTo ErrCom
'Colonne et ligne en C2:C20. A adapter
If Not Intersect(Target, Range("C$2:C$20")) Is Nothing Then
'Feuille Base portant la base de données et le chemin complet des images par ligne
'Récupération de la ligne avec le nom de la photo cible (exemple: Aril Hamnlet...)
Lig = Sheets("Base").Range("C$2:C$30").Find(Target).Row ' Le Range est à adapter
'Reprise du chemin complet (ici en colonne K) dans la colonne/ligne en la feuille Base de la photo ciblée
Cible = Sheets("Base").Range("K" & Lig)
Application.EnableEvents = False
'Ajoute une note commentée puis la réduit. S'il y a déjà une note va en ErrCom pour affichage
'ou non selon que la variable Cible dispose du chemin ou est vide
Target.AddComment
Target.Comment.Visible = False
End If
ErrCom:
'Reprise du chemin complet dans la colonne/ligne en la feuille Base de la photo ciblée
'Puis application sur le commentaire de la cellule cliquée. Au survol la photo apparaît.
If Cible > "" Then
Target.Comment.Shape.Fill.UserPicture (Cible)
Target.Comment.Visible = False
End If
Application.EnableEvents = True
End Sub

Voilà, j'ai testé et cela répond correctement. A toi de bien recopier et a adapter à tes feuilles (noms) et disposition (lignes/colonnes)

Bonsoir…

Et avec de Faux Commentaires et du VBA* (ancien fichier joint) ? Le déplacement dans un contrôle ActiveX TextBox permet d’afficher l’image correspondante (attention aux noms des cellules et images associées).

*clic bouton droit sur le nom de la feuille puis sélectionner Visualiser le code :

Dim n As Byte

Private Sub C_1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  Vu "I_1" ‘ déplacement sur la case en fin de cellule avec appel de la macro commune Vu
End Sub
Private Sub C_2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  Vu "I_2"
End Sub
Private Sub C_3_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  Vu "I_3"
End Sub

Sub Vu(Nom As String) 'sous routine pour les 3 cas (ici)
  For n = 1 To 3: Me.Shapes("I_" & n).Visible = 0: Next
  Shapes(Nom).Visible = 1
  Shapes(Nom).Top = Cells(Right(Nom, 1) + 5, 1).Top
  Shapes(Nom).Left = Cells(Right(Nom, 1) + 5, 2).Left
End Sub

‘Procédure évènementielle pour cacher les Images
Private Sub Worksheet_SelectionChange(ByVal R As Range)
  For n = 1 To 3: Me.Shapes("I_" & n).Visible = 0: Next
End Sub

Bonsoir, merci Ordonc, Merci X Cellus pour votre temps.

Je vais essayer tout ça je reviens vite auprès de vous pour les résultats, merci encore

@X Cellus lorsque tu écris, "Feuille Base portant la base de données et le chemin complet des images par ligne" qu'est ce que tu entends par 'chemin complet des images' ? Merci d'avance

Bonne soirée !

A nouveau,

La feuille Base, c'est ta 1ière feuille. Celle de la 1ière photo de ton post ou l'on voit l'image dans la note-commentaire.

Par exemple, pour cette image qui apparaît en colonne B (là ou est le commentaire). Je ne sais pas comment cette feuille est nommée. Moi elle se nomme Base.

Et sur la même ligne de cette Base en case B3 il y a une donnée. Mais en colonne K (pour mon exemple) donc en case K3. J'ai inscrit ce chemin là:

C:\Users\X Cellus\Pictures\Photo03. Soit le Disque C, suivi du Dossier Users puis du dossier nom de l'utilisateur (X Cellus), et le répertoire Images (Pictures) suivi du nom de l'image (Photo03). Mais ce sera différent chez toi. Et l'image peut aussi porter le nom du produit (casque en armure lourde ou Aril Hamlet)..

@X Cellus, merci encore pour ton temps. J'ai essayé ce que tu m'as dis. Je n'arrive pas du tout à faire fonctionner la macro, je me sens vraiment ridicule de gaspiller ton temps. Je te partage l'excel qui m'a servie de test.

Bonne soirée/Nuit

Bonjour Ideos,

Je n'arrive pas du tout à faire fonctionner la macro

Lorsque tu indiques un nom d'image. Il faut aussi renseigné son extension (c'est à dire son type d'image). Soit jpg, jpeg, etc...

Donc j'ai modifié cela dans la base en ajoutant en fin de ton chemin, soit .jpg

Vérifie que c'est bien l'extension de tes images, sinon corrige le.

Pour le reste, au vu de tes nombreuses formules dans les tableaux des deux feuilles dans les cellules j'ai changé de macro.

J'ai effacé toutes ces formules qui alourdissent le fichier. Ainsi que certaines noms dans le gestionnaire de noms dont ils manquaient des références.

En adaptant un code succinct de Jacques BOISGONTIER qui permet une filtrage efficace.

Ainsi le programme peut être plus réduit. Les En-têtes de tableaux doivent rester identiques. Afin que le report soit possible.

Correction Fichier, sur la formule afin de de couvrir un forfait de 5000 lignes sur la base.

Bonjour, merci pour ce que tu fais,

j'ai testé un peu et j'arrive sur des erreurs, j'ai bien changé le format ( en png pour moi ) et j'ai une erreur lors de la mise en route de la macro je crois ; "Erreur d'exécution '7' : Mémoire insuffisante

et le débogage me met une ligne en surbrillance ; la ligne est la suivante " Range("C" & Lig).Comment.Shape.Fill.UserPicture (Range("N" & Lig)) "

Merci pour ton aide

Bonne soirée

EDIT: J'ai recopier tout le chemin d'accès des images et cela semble fonctionner comme il faut ; y a t'il un moyen d'ajuster la taille du commentaire ou je devrai le faire manuellement ? Quelles sont les modifications à apporter si je souhaites augmenter le nombre de colonne ? Merci pour ton aide

Je test avec des lignes en plus, c'est vraiment parfait ce que tu as fais merci encore

A nouveau,

"Erreur d'exécution '7' : Mémoire insuffisante

Cette erreur arrive dans le programme, si tu n'as pas le bon chemin pour tes images. Donc sur (Range("N" & Lig))

Il est bien sur possible d'adapter la taille des notes-commentées. Mais je ne sais pas comment tu opères pour la première feuille (Base).

Est ce que tu augmente ou réduit l'image sur la note-commentée selon la taille réelle de l'image ou selon ta propre préférence ?

Pour cette dernière façon il serait alors gardé la taille occupée par l'image dans la première feuille. Tu n'aurais pas de différence dans les deux feuilles.

Quelles sont les modifications à apporter si je souhaites augmenter le nombre de colonne ?

Il faudra que les deux feuilles aient le même nombre de colonnes et leurs en-têtes identiques. De plus il faudra changer dans la macro de la feuille Recherche la plage de cellules inscrite. Au lieu de

With Sheets("Base de données")
.Range("A1:M5000").Ad

Ecrire une plage plus importante comme "A1:R5000" si tu agrandis de 5 colonnes, par exemple.

A +

Merci beaucoup pour ta réponse X Cellus , tout est parfait à présent. Je clos donc le sujet !

Merci aussi à Ordonc et fronck pour leurs propositions

Milles merci

Bonne soirée/Nuit

Suite,

N'hésites pas si besoin. Il y aura toujours un contributeur pour t'apporter une réponse.

Merci de ton parfait suivi.

Rechercher des sujets similaires à "suivre commentaire"