Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/01/2012, 12h24   #1
Invité de passage
 
Inscription : juillet 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 12
Points : 3
Points : 3
Par défaut Mon commentaire bouge selon qu'il est visible ou pas !

Bonjour,

Je ne dois pas être loin de la vérité mais voilà : j'ai fait une macro qui génère un commentaire après avoir cliqué (les détails sont inutiles je pense). Voici un extrait :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub coucou()
    ligne = ActiveCell.Row
    com = Worksheets("commentaires").Cells(ligne, 1).Value
    ActiveCell.FormulaR1C1 = "coucou"
    ActiveCell.AddComment
    ActiveCell.Comment.Text Text:=com
        poscom
    'ActiveCell.Comment.Visible = False
    ActiveCell.Offset(1, 0).Select
End Sub
Sub poscom()
    ActiveCell.Select
    ActiveCell.Comment.Visible = True
    ActiveCell.Comment.Shape.Select True
    Selection.ShapeRange.IncrementLeft 15
    Selection.ShapeRange.IncrementTop 25
End Sub
Tel que, le commentaire reste visible et déplacé comme souhaité. Si j'enlève l'apostrophe là :

Code :
'ActiveCell.Comment.Visible = False
il n'est plus visible (ce que je veux) sauf que, quand je passe sur la cellule pour le voir, il apparaît en position de base ! Je ne vois pas pourquoi ce coquin revient en place parce-que je le masque ...

Une idée, les doués ?

Merci, @ plus
Baldurr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 14h40   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Je ne sais pas si tu as remarqué mais le comportement est exactement le même si tu le fais manuellement sans macro. Du coup, j'ai peur que tu ne puisse pas faire ce que tu veux.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 16h54   #3
Invité de passage
 
Inscription : juillet 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 12
Points : 3
Points : 3
Je constate que tu as raison !

Mais c'est bizarre quand même, il doit bien y avoir un truc pour qu'un commentaire masqué s'affiche, au passage de la souris, ailleurs que par défaut ...

Je vais y travailler hors macro, cela m'inspirera peut-être ...

Merci à toi.

D'autres idées ?

Quelqu'un ?

N'ayant rien trouvé seul, je confirme : n'hésitez pas si une astuce existe.

Merci
Baldurr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 10h21   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
J'avais pensé à utiliser les évènements, mais il n'y a pas de mouse_move sur une worksheet. Au pire j'ai trouvé ça sur le net. Le problème est que c'est uniquement sur la sélection de la cellule et qu'il faut gérer tous les cas s'il y a beaucoup de commentaires que tu veux placer à des endroits différents. On aurait aussi pu simplement faire un Comment.Visible = True et un petit Sleep avant de le remettre à false.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 'www.contextures.com/xlcomments03.html
 Dim rng As Range
 Dim cTop As Long
 Dim cWidth As Long
 Dim cmt As Comment
 Dim sh As Shape
 
 Application.DisplayCommentIndicator _
    = xlCommentIndicatorOnly
 
 Set rng = ActiveWindow.VisibleRange
 cTop = rng.Top + rng.Height / 2
 cWidth = rng.Left + rng.Width / 2
If ActiveCell.Comment Is Nothing Then
  'do nothing
Else
  Set cmt = ActiveCell.Comment
  Set sh = cmt.Shape
  sh.Top = cTop - sh.Height / 2
  sh.Left = cWidth - sh.Width / 2
  cmt.Visible = True
End If
 
 
End Sub
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 17h17   #5
Invité de passage
 
Inscription : juillet 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 12
Points : 3
Points : 3
Non, toujours pas ...

Merci pour votre (ton) aide.

Je clos.

Au plaisir.
Baldurr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h55.


 
 
 
 
Partenaires

Hébergement Web