IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modifier la taille de la fenêtre d'un commentaire [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Par défaut Modifier la taille de la fenêtre d'un commentaire
    Bonjour,
    Je souhaite programmer des commentaires. Pour cela j'ai créé une macro pour récupérer les instructions correspondantes.
    - Je pars d'une cellule sans commentaire (B2)
    - Clic droit Insérer un commentaire
    - Effacement du commentaire par défaut, frappe du nouveau commentaire "Toto"
    - Redimensionnement de la fenêtre.
    Ce qui donne la macro suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Range("B2").Select
    Range("B2").AddComment
    Range("B2").Comment.Visible = False
    Range("B2").Comment.Text Text:="Toto"
    Selection.ShapeRange.ScaleWidth 0.37, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 0.3, msoFalse, msoScaleFromTopLeft
    Range("B4").Select
    Quand j'exécute cette macro ça fonctionne, sauf pour le redimensionnement de la fenêtre (les 2 instructions Selection.ShapeRange. . . .) qui m'affiche un message d'erreur : Propriété ou méthode non gérée par cet objet.

    Comment dois-procéder pour redimensionner la fenêtre du commentaire ?
    Merci

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Utiliser .Select est déconseillé en VBA (et donc Selection aussi).

    Essaies ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Option Explicit
    Sub Test()
    Dim c As Range
      Set c = Worksheets("Feuil1").Range("B2")
      With c
        .ClearComments
        .AddComment
        With .Comment
          .Visible = False
          .Text Text:="Toto"
          With .Shape
            .Width = 32.25
            .Height = 21.75
          End With
        End With
      End With
    End Sub
    Pour l'essayer tu peux faire un copier / coller dans un module standard,
    Mais je te conseille vivement de le saisir manuellement, tu comprendra l’intérêt de l'autocomplétion en particulier quand tu commence par définir l'objet du délit (dans ce cas la cellule c qui recevra le commentaire).

  3. #3
    Membre confirmé Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Par défaut Résolu mais . . .
    Merci Patrice740
    Ça répond à ma question.

    Mais tu m'as intrigué en précisant que le .Select est déconseillé. Pourquoi ?

    Merci

  4. #4
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par horemheb Voir le message
    Mais tu m'as intrigué en précisant que le .Select est déconseillé. Pourquoi ?
    Parce qu'il est inutile de sélectionner un objet (cellule, feuille, forme, etc...) pour agir dessus.
    C'est pas à proprement dit .Select qui pose problème mais ce qui en découle : l'utilisation des objets actifs (Selection, ActiveCell, ActiveSheet, ....) au lieu d'objets clairement définis.
    C'est la cause de nombreux et fréquents problèmes (comme celui qui t'a amené à ouvrir ce fil), car on pense agir sur un objet et c'est un autre qui est actif.
    Il est toujours préférable de définir explicitement l'objet sur lequel on veut agir.
    Dans l'exemple du code précédent, on agit sur :
    - la cellule c
    - le commentaire qu'on vient d'y ajouter
    - la visibilité du commentaire
    - son texte
    - sa forme
    - la largeur de la forme
    - sa hauteur
    Sans jamais sélectionner quoi que ce soit.

  5. #5
    Membre confirmé Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Par défaut
    Merci pour vos conseils
    Joyeuses fêtes de fin d'année

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Bonsoir...
    Citation Envoyé par horemheb Voir le message
    ...
    Comment dois-procéder pour redimensionner la fenêtre du commentaire ?
    En une seule instruction pour éviter la recherche approximative des dimensions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LaCellule.Comment.Shape.TextFrame.AutoSize = 1
    C’est un redimensionnement ponctuel : chaque commentaire ajouté ou changé sera dimensionné en fonction du texte, multilignes comprises.

    C'est l'abus (comme de toute chose) de son utilisation qu'il faut essayer d'éviter (ici, écriture plus lourde, durée d'exécution augmentée ...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Div qui se chevauchent lorsque l'on modifie le taille de la fenêtre
    Par surfeur2 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 03/09/2014, 21h34
  2. modifier la taille de la fenêtre
    Par papyxy dans le forum VBScript
    Réponses: 1
    Dernier message: 17/04/2012, 21h24
  3. [DynamicWraperX ] Modifier la taille d'une fenêtre windows en VBS
    Par SfJ5Rpw8 dans le forum Vos Contributions VBScript
    Réponses: 0
    Dernier message: 25/02/2011, 00h33
  4. JTable modifie la taille de ma fenêtre
    Par tupac25 dans le forum Composants
    Réponses: 3
    Dernier message: 04/01/2011, 15h26
  5. Modifier la taille de la fenêtre DOS
    Par bobgeldof7 dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 31/01/2004, 03h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo