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 largeur d'une zone de texte dynamiquement [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut Modifier la largeur d'une zone de texte dynamiquement
    Bonjour à tous,


    Voici un nouveau problème sur lequel je réfléchi depuis plusieurs jours:

    J'aimerais savoir comment contrôler la largeur d'une zone de texte seulement dynamiquement.
    J'ai essayé un calcul qui pour moi était logique.

    J'ai construit une zone de texte avec un caractère à l'intérieur. Et j'ai ensuite récupéré la largeur du rectangle. Je me suis dit ensuite que je multiplierais la largeur du rectangle pour un caractère par le nombre de caractères des prochains strings qui serait à l'intérieur de cette zone de texte.
    Le problème avec ma technique c'est qu'on ne voit plus certains caractères du string à partir d'un certain nombre de caractères. Je me suis dit qu'il faut peut-être récupéré la largeur d'un string car lorsque les lettres sont en minuscules ou majuscules, certaines lettres prennent plus de place (par exemple "I" prend moins de place que "G"). Mais j'ai l'impression qu'il n'existe aucune méthode qui pourrait donner cette information.


    Donc je me demandais si quelqu'un parmi vous tous connait une formule permettant de contrôler la largeur du rectangle d'une zone de texte dynamiquement...?



    J'ai aussi trouvé une méthode appelé "AutoSize" qui permet de contrôler la taille d'une zone de texte automatiquement. Le problème avec cette méthode: il contrôle aussi la hauteur. Or je veux que ma hauteur soit fixe et la largeur dynamique.

    Donc, deuxième question: Existerait-il une méthode du genre "AutoWidth" en vba?

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Tu peux combiner les deux, largeur automatique et hauteur fixe.

    Exemple avec une hauteur fixe de 50
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Sheets("NomFeuille").Shapes("NomZoneTexte")
        .TextFrame.Characters.Text = "Mon Texte"
        .TextFrame.AutoSize = True
        .Height = 50
    End With

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Un peu de gymnastique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TextBox1_Change()
    If TextBox1.Value <> "" Then
        TextBox1.AutoSize = True
        TextBox1.AutoSize = False
        TextBox1.Height = 20
    End If
    End Sub
    Edit: J'ai cru comprendre qu'il s'agit d'une zone de texte (TextBox)

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut
    Merci beaucoup pour vos réponses, fring et mercatog.

    Je n'avais pas du tout pensé à utiliser "AutoSize" de cette manière.
    J'ai testé les deux solutions et elles sont bonnes toutes les deux. Par contre, mercatog, la ligne où tu désactives "AutoSize" n'a pas l'air d'être nécessaire.

    Je vous mets à tous les deux. C'est sympa les gars.

    Merci beaucoup

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

Discussions similaires

  1. Modifier la valeur d'une zone de texte
    Par doubiste_59 dans le forum Langage
    Réponses: 1
    Dernier message: 20/07/2010, 13h07
  2. modifier la largeur d'une zone de text
    Par kamclasse dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 13/08/2008, 13h02
  3. modifier le contenu d'une zone de texte automatique
    Par sunwind dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/02/2008, 15h14
  4. modifier source controle d'une zone de texte dans un état
    Par electrosat03 dans le forum Access
    Réponses: 3
    Dernier message: 20/03/2006, 11h04
  5. Réponses: 6
    Dernier message: 30/09/2005, 16h24

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