[résolu][Excel]automatiser taille commentaires

automatiser taille commentaires [résolu][Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 18-07-2006 à 13:24:33    

bonjour, je cherche à automatiser la taille des commentaires. On en ajoute en modifiant à souhait la taille des bulles. Mais je voudrais savoir s'il set possible de modifier la taille selon le contenu du dit commentaire. Existe-t-il des propriétés à implémentées ? Je mettrais alors au point la mise au point automatique via un clic de bouton ^^
 
Merci d'avance!
 
JP


Message édité par jpcheck le 18-07-2006 à 16:46:58
Reply

Marsh Posté le 18-07-2006 à 13:24:33   

Reply

Marsh Posté le 18-07-2006 à 15:54:23    

Un début de réponse ....  
 
   cellule = "A1"
    Range(cellule).Activate
    Range(cellule).AddComment
    Range(cellule).Comment.Text Text:="Ceci est un test" & Chr(10) & "pour voir"
    ActiveCell.Comment.Visible = True
    Range(cellule).Comment.Shape.Select True
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlTop
        .Orientation = xlHorizontal
        .AutoSize = True
    End With
    ActiveCell.Comment.Visible = False
 
... pour mettre un commentaire, ajuster la taille et masquer le commentaire.


Message édité par Paul Hood le 18-07-2006 à 15:57:59
Reply

Marsh Posté le 18-07-2006 à 16:21:22    

nickel merci bien =)

Reply

Marsh Posté le 18-07-2006 à 16:28:52    

jpcheck a écrit :

nickel merci bien =)


Et le chti résolu alors !!!! :bounce:

Reply

Marsh Posté le 18-07-2006 à 16:31:04    

bonjour,
un autre élément de réponse :

Citation :

Sub Galopin()
    Range("A1" ).AddComment
    Range("A1" ).Comment.Visible = True
    Range("A1" ).Comment.Text Text:="GALOPIN01 !"
    Selection.ShapeRange.ScaleWidth 0.59, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 0.23, msoFalse, msoScaleFromTopLeft
    Range("A1" ).Select
End Sub

...et le commentaire qui va avec !

Citation :

ScaleHeight, méthode
Voir aussi S'applique à Exemple Spécificités  
Cette méthode met à l'échelle la hauteur de la forme selon un facteur spécifié. Pour les images et les objets OLE, vous pouvez indiquer si vous souhaitez mettre la forme à l'échelle par rapport à la taille d'origine ou en cours. Les formes qui ne sont ni des images ni des objets OLE sont toujours mises à l'échelle par rapport à leur hauteur en cours.
 
expression.ScaleHeight(Factor, RelativeToOriginalSize, Scale)
 
expression   Obligatoire. Expression qui renvoie un des objets répertoriés dans la liste S'applique à.
 
Factor  Argument de type Single obligatoire. Indique le ratio entre la hauteur de la forme une fois que vous l'avez redimensionnée et la hauteur d'origine ou en cours. Par exemple, pour obtenir un rectangle plus large de 50 pour cent, affectez la valeur 1.5 à cet argument.
 
RelativeToOriginalSize  Argument de type MsoTriState obligatoire. Il a la valeur msoTrue pour mettre la forme à l'échelle par rapport à sa taille d'origine. Il a la valeur msoFalse pour la mettre à l'échelle par rapport à la taille en cours. Vous ne pouvez affecter la valeur msoTrue à cet argument que si la forme spécifiée est une image ou un objet OLE.
 
MsoTriState peut être l'une de ces constantes MsoTriState.  
msoCTrue  Ne s'applique pas à cette propriété.  
msoFalse  Met la forme à l'échelle par rapport à la taille en cours.  
msoTriStateMixed  Ne s'applique pas à cette propriété.  
msoTriStateToggle  Ne s'applique pas à cette propriété.  
msoTrue  Met la forme à l'échelle par rapport à sa taille d'origine.  
 
Scale  Argument de type MsoScaleFrom facultatif. Cet argument spécifie la partie de la forme qui garde sa position lorsque la forme est mise à l'échelle.
 
MsoScaleFrom peut être l'une de ces constantes MsoScaleFrom.  
msoScaleFromBottomRight  
msoScaleFromMiddle  
msomsoScaleFromTopLeft  par défaut  
 
Exemple
Cet exemple montre comment mettre à l'échelle toutes les images et les objets OLE dans myDocument à 175 pour cent de leur hauteur et de leur largeur d'origine et toutes les autres formes à 175 pour cent de leur hauteur et largeur en cours.
 
Set myDocument = Worksheets(1)
For Each s In myDocument.Shapes
    Select Case s.Type
    Case msoEmbeddedOLEObject, _
            msoLinkedOLEObject, _
            msoOLEControlObject, _
            msoLinkedPicture, msoPicture
        s.ScaleHeight 1.75, msoTrue
        s.ScaleWidth 1.75, msoTrue
    Case Else
        s.ScaleHeight 1.75, msoFalse
        s.ScaleWidth 1.75, msoFalse
    End Select
Next


A+

Reply

Marsh Posté le 18-07-2006 à 16:40:44    

Il me jette avec un erreur d'execution 438 : Propriété ou méthode non gérée par cet objet sur la ligne Selection.ShapeRange.ScaleWidth 0.59, msoFalse, msoScaleFromTopLeft
 
Edit :
Par contre avec Range("A1" ).Comment.Shape.ScaleWidth 0.59, msoFalse, msoScaleFromTopLeft ca passe ! :bounce:


Message édité par Paul Hood le 18-07-2006 à 16:51:07
Reply

Marsh Posté le 18-07-2006 à 17:23:14    

bonjour,
Quand je te dis que t'as une babasse caractérielle !
http://perso.orange.fr/galopin01/images/mdr2.jpg
Enregistrement fait sur Excel 2002.
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed