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 une valeur d'un text box appartenant à un groupe


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    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
    Points : 18
    Points
    18
    Par défaut Modifier une valeur d'un text box appartenant à un groupe
    Bonjour à tous,


    J'ai commencé il y a un mois la programmation en VBA sous Excel 2002 dans le cadre d'un stage en informatique.

    Voici mon problème:
    J'ai créé une feuille de boîte de dialogue dans Excel pour pouvoir faire une boîte dialogue (bien sûr ) qui contient des formes automatiques (comme des lignes, flèches, pointillés, etc...).
    J'ai beau cherché dans le visual basic editor et je n'ai pas trouvé d'autres manières que de créer une feuille de boîte de dialogue sous Excel.

    Travaillant en entreprise, j'ai un accès très limité à internet et je ne peux accéder qu'à ce forum.
    C'est pourquoi je vous demande s'il est possible de modifier la valeur d'un text box (par exemple "TB1") appartenant à un groupe (par exemple "GR1") le tout construit sur cette feuille de boîte de dialogue et de me dire comment faire?

    Voici le code que j'ai trouvé pour afficher une valeur d'un text box TB1 appartenant à un groupe GR1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveDialog.Shapes("GR1").GroupItems(1).Select
        MsgBox Selection.Text
    Si j'essaie de modifier le contenu de "Text", il n'aime pas. J'ai même essayé avec "Caption" : c'est la même chose. "Value" n'existe pas dans la classe "EditBox" (si j'ai bien compris, quand on sélectionne "ActiveDialog.Shapes("GR1").GroupItems(1)", il est considéré comme un "EditBox", classe où je n'ai pas accès aux méthodes qu'elle contient car excel la cache).


    Je vous remercie d'avance pour les réponses qui peuvent être publiées.

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir,

    Pourquoi ne pas utiliser un UserForm ?

    Dans le VBE, menu Insertion UserForm et là, tu pose les contrôles que tu désire (Textboxs, Labels, etc..) en double-cliquant dessus, tu te retrouve dans le module de la Form avec l'évennement par défaut de l'objet comme "Change" pour un TextBox et tu peux ensuite choisir l'évennement que tu veux en cliquant dans le combobox en haut à droite ( au dessus de la zone de texte, tu as deux combos, celui de gauche, combo des objets et celui de droite combo des évennements)

    Hervé.

  3. #3
    Membre à l'essai
    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
    Points : 18
    Points
    18
    Par défaut
    Bonjour Hervé,


    Merci pour ta réponse.

    Tout ce que tu me dis j'ai compris comment l'utiliser.

    ...J'ai créé une feuille de boîte de dialogue dans Excel pour pouvoir faire une boîte dialogue (bien sûr ) qui contient des formes automatiques (comme des lignes, flèches, pointillés, etc...)...
    Effectivement, je peux directement utiliser un userform et ce serait plus facile mais je ne peux pas insérer de formes automatiques comme des flèches, des traits (en pointillé ou pas, avec à l'extrémité des points,etc...), des cercles, etc...

    C'est pour ça que j'utilise une feuille de boîte de dialogue mais je ne trouve nulle part la manière d'utiliser au mieux ces feuilles. C'est dommage!

    Si tu as une solution ou des noms de contôles complémentaires à ajouter dans la boîte à outils pour créer un userform avec à l'intérieur des formes automatiques, alors ça m'aiderait grandement.


    Mais le problème est lorsque je crée des groupes avec, à l'intérieur, par exemple, un Label (nommé "L1"), un text box (nommé "TB1"), et un compteur (nommé CPT1), je n'arrive pas à modifier par VBA le contenu du text box.
    Tu sais ce groupe est créé lorsque tu fais "CTRL + clic droit" sur chacun de tes objets et ensuite "groupe/Grouper".

    J'ai mis le code au début pour savoir la valeur que peut contenir mon text box. Mais je ne vois pas comment la modifier car en utilisant Text ou Caption de la Classe EditBoxes, il me sort une erreur "Impossible de modifier la valeur de text (ou Caption) de la classe EditBox" (ou un message comme celui-ci).
    J'aimerais avoir les différentes méthodes que peut contenir EditBox mais je ne peux pas y accéder car Excel m'en empêche en la cachant.
    Et je suis sûr qu'il existe d'autres méthodes cachées comme EditBoxes dans ActiveDialog mais pas possible de comprendre leur fonctionnement par l'aide.

  4. #4
    Membre à l'essai
    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
    Points : 18
    Points
    18
    Par défaut
    Je vais mettre une nouvelle information que j'ai pu trouvé en cherchant bien dans ActiveDialog (pour ceux et celles qui comme moi galère avec ActiveDialog et ses méthodes cachés).

    Voici les méthodes cachés que j'ai pu trouver dans ActiveDialog:

    EditBoxes : permettant de manipuler les text box. A l'intérieur on retrouve:
    • Text permettant de lire et de modifier la valeur du text box,
    • Caption qui fait la même chose que Text (j'ai l'impression)


    DropDowns : permettant de manipuler les combos box. A l'intérieur on retrouve:
    • Value permettant d'avoir l'indice (et non directement sa valeur) de la ligne sélectionnée,
    • AddItem, ajoute une valeur dans la liste du combo box,
    • RemoveAllItems et RemoveItem,


    Spinners : permettant de manipuler les Compteurs (les spin button). A l'intérieur on retrouve:
    • Value permettant d'avoir la valeur actuel d'un spin,


    ListBoxes : permettant de manipuler les listes. A l'intérieur on retrouve:
    • je n'ai retrouvé que les même méthodes que pour DropDowns



    Tous contiennent la méthode Name.


    Voilà! J'espère pouvoir aidé quelques uns qui souhaitent retrouver des méthodes comme celles ci-dessus.
    Si vous avez d'autres méthodes comme celles-ci, j'aimerais bien les avoir. Ça pourrait aider.

Discussions similaires

  1. [vb.net] recuperer une valeur dans un text combo box
    Par stolx_10 dans le forum Windows Forms
    Réponses: 12
    Dernier message: 08/02/2007, 16h11
  2. [PHP-JS] Affecter une valeur à un input text
    Par hunter001 dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2006, 10h18
  3. Réponses: 4
    Dernier message: 29/03/2006, 08h22
  4. modifier une valeur dans une hash
    Par chaabane dans le forum Langage
    Réponses: 1
    Dernier message: 17/03/2006, 10h59
  5. [C#] Modifier une valeur dans une DataTable
    Par Scorff dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/05/2005, 10h45

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