Plusieurs cellules à inserer dans un commentaire

  • Initiateur de la discussion Initiateur de la discussion marcelio
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

marcelio

XLDnaute Occasionnel
Bonjour à tous,

Est il possible d'inserer toutes mes cellules dans un commentaire pour pouvoir les visualiser
en passant la souris
En cherchant dans différent forum j'ai trouver ceci mais pour 1 cellule seulement

Private Sub Worksheet_Change(ByVal Target As Range)
With Range("F7")
If .Comment Is Nothing Then Range("F7").AddComment
.Comment.Text Text:=Sheets("Feuil1").[CZ11].Value
.Comment.Shape.TextFrame.AutoSize = True
End With
End Sub

Merci de votre aide
 

Pièces jointes

Re : Plusieurs cellules à inserer dans un commentaire

Salut marcelio, salut le forum,

Tu peux adapter le code suivant qui est lui-même une adaptation du tien:

With Range("F7")
If .Comment Is Nothing Then Range("F7").AddComment
commenttext = ""
For l = 1 To 12
For c = 1 To 4
commenttext = commenttext & Sheets("Feuil1").Cells(10 + l, 103 + c).Value & " / "
Next c
commenttext = commenttext & Chr(10)
Next l

.Comment.Text Text:=commenttext
.Comment.Shape.TextFrame.AutoSize = True
End With
 
Re : Plusieurs cellules à inserer dans un commentaire

Bonsoir marcelio, Nairolf,

Pour avoir l'image de la plage CZ11: DC22 en motif de fond du commentaire en F7 :

Code:
Sub InsereImage()
Dim plage As Range
Application.ScreenUpdating = False
Set plage = [CZ11:DC22]
plage.EntireRow.Hidden = False 'si nécessaire
plage.EntireColumn.Hidden = False
plage.CopyPicture
With ActiveSheet.ChartObjects.Add(0, 0, plage.Width, plage.Height).Chart
  .Paste
  .Export ThisWorkbook.Path & "\MonImage.gif", "GIF"
  .Parent.Delete 'supprime le graphique temporaire
End With
If Not [F7].Comment Is Nothing Then [F7].Comment.Delete
With [F7].AddComment("").Shape
  .Width = plage.Width
  .Height = plage.Height
  .Fill.UserPicture ThisWorkbook.Path & "\MonImage.gif"
End With
Kill ThisWorkbook.Path & "\MonImage.gif" 'supprime le fichier gif
plage.EntireColumn.Hidden = True 'si nécessaire
End Sub
A+
 
Re : Plusieurs cellules à inserer dans un commentaire

Bonsoir job75, Nairolf et le forum,

Excellent ce code, merci job75.
Parc contre petit soucis, dans mon fichier exemple ma feuille est à 100% et dans mon fichier original je fais être obliger de passer à 120% et la mon tableau ne prend tout le rectangle de l'image.
Que faut il modifier pour ajuster mon tableau à l'image.

Encore merci à toi job75 ainsi qu'à nairolf.

Bonne soirée à vous et au forum.
 
Re : Plusieurs cellules à inserer dans un commentaire

Re,

Pas vraiment compris, car j'ai zoomé la feuille sans que cela pose problème.

Mais peut-être dans le code, quand on dimensionne le commentaire, multiplier par le coefficient adéquat.

A+
 
Re : Plusieurs cellules à inserer dans un commentaire

Bonjour marcelio, le forum,

Il y a effectivement des problèmes* avec le zoom des feuilles.

[Edit] *sur Excel 2003, mais curieusement pas sur Excel 2010...

Pour les éviter, le plus simple est de créer le graphique temporaire dans un nouveau document.

Dans le fichier joint la plage à copier et le commentaire sont dans 2 feuilles de zooms différents.

La macro est plus élaborée :

Code:
Sub InsereImage()
Dim plage As Range, cel As Range
Application.ScreenUpdating = False
Set plage = Feuil1.[CZ11:DC22] 'CodeName de la feuille
Set cel = Feuil2.[F7] 'CodeName de la feuille
plage.EntireRow.Hidden = False 'si nécessaire
plage.EntireColumn.Hidden = False
plage.CopyPicture
With Workbooks.Add 'nouveau document (Zoom 100%)
  With .Sheets(1).ChartObjects.Add(0, 0, plage.Width, plage.Height).Chart
    .Paste
    .Export ThisWorkbook.Path & "\MonImage.gif", "GIF"
  End With
  .Sheets(1).[A1].Copy .Sheets(1).[A1] 'vide le presse-papier
  .Close False 'supprime le document avec le graphique temporaire
End With
If Not cel.Comment Is Nothing Then cel.Comment.Delete
With cel.AddComment("").Shape
  .Width = plage.Width
  .Height = plage.Height
  .Fill.UserPicture ThisWorkbook.Path & "\MonImage.gif"
End With
Kill ThisWorkbook.Path & "\MonImage.gif" 'supprime le fichier gif
'plage.EntireColumn.Hidden = True 'si nécessaire
Application.ScreenUpdating = True
End Sub
Voir également les macros Worksheet_Activate et Worksheet_Calculate dans les codes des 2 feuilles.

A+
 

Pièces jointes

Dernière édition:
Re : Plusieurs cellules à inserer dans un commentaire

Re,

S'il existe des fonctions volatiles - comme AUJOURDHUI() - dans le classeur, la macro précédente boucle sans fin.

A cause de la macro Worksheet_Calculate.

J'ai donc ajouté des Application.EnableEvents en début et fin de macro.

Fichier (2).

A+
 

Pièces jointes

Re : Plusieurs cellules à inserer dans un commentaire

Bonjour job75 et le forum,

Merci de t'être penché sur mon problème de zoom.
Là maintenant cela fonctionne correctement, le zoom est impeccable.

Je te remercie encore une fois de ton aide très précieux.

Bonne fin d'après midi à toi et au forum.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
201
Réponses
4
Affichages
223
Réponses
4
Affichages
461
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
318
Réponses
14
Affichages
469
Retour