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

Word Discussion :

Traitement identique pour 150 textbox


Sujet :

Word

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 17
    Points
    17
    Par défaut Traitement identique pour 150 textbox
    Bonjour,
    N'ayant pas trouvé de réponse sur votre forum, je me permets de vous soumettre ma question.
    Dans un document Word, je crée dynamiquement des textbox (jusqu'à 150).
    Pour chacun de ces controls je souhaite leur associer un traitement qui est très identique style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private sub Textbox**_change()
    Dim Mavariable as string
         Mavariable(**)=Textbox**.text 
    End sub
    où ** est un nombre de 1 à 150

    jusqu'à présent pour effectuer le traitement, je dois écrire donc 150 fois cette même procédure en changeant uniquement le "**"

    N'y aurait-il pas une manière d'écrire une procédure "générique" pour récupérer le "**" du nom de la textbox dont la valeur est modifiée?
    J'ai cru comprendre qu'il fallait passer par un module de classe, mais je n'arrive pas à mettre en oeuvre cette technique.
    Merci de me donner des pistes,
    Cordialement
    tatiak

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    La solution la plus facile, serait la génération du code sous forme de texte et terminer par un copier coller.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 17
    Points
    17
    Par défaut
    Merci de ta réponse. En fait le problème est plus complexe car le document Word contient aussi des Checkbox.
    Néanmoins, pour info, j'ai opté pour la solution suivante :
    Une macro "générique" suivante :
    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
     
    Public Const Brouzouf = "# ###.00"
     
    Private Sub Total() 'total du devis
    Dim TotalTTC As Double, TotalHT As Double
    Dim Ctl As InlineShape
        TotalTTC = Val(Tables(1).Cell(3, 3).Range.Text) 'valeur du modèle
        For Each Ctl In ActiveDocument.InlineShapes
            If Left(Ctl.OLEFormat.Object.Name, 7) = "TextBox" Then _
              TotalTTC = TotalTTC + Val(Ctl.OLEFormat.Object.Text) '+ valeur des options
        Next Ctl
        TotalHT = TotalTTC / 1.196
        Tables(2).Cell(2, 3).Range.Text = Format(TotalTTC, Brouzouf)
        Tables(2).Cell(2, 1).Range.Text = Format(TotalHT, Brouzouf)
        Tables(2).Cell(2, 2).Range.Text = Format((TotalTTC - TotalHT), Brouzouf)
        Init
    End Sub
    puis 150 p'tites macro de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub TextBox1_Change()
        Total
    End Sub
    Private Sub TextBox2_Change()
        Total
    End Sub
    Private Sub TextBox3_Change()
        Total
    End Sub
    ...
    puis un truc similaire pour le traitement des Checkbox.

    Maintenant, je reste ouvert à toute proposition qui irait vers encore plus de simplification

    Cordialement
    tatiak

Discussions similaires

  1. Userform : traitement identique de plusieurs TextBoxS
    Par VicomteRaoul dans le forum VBA Word
    Réponses: 4
    Dernier message: 01/09/2008, 13h00
  2. [D5] Handle de DLL identique pour tout les threads
    Par yves_fuji dans le forum Delphi
    Réponses: 6
    Dernier message: 09/08/2006, 15h37
  3. [VBA-E] Une ScrollBar pour deux TextBox
    Par Ender dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 30/07/2006, 14h05
  4. [Conception] Formulaires identiques pour INSERT et UPDATE
    Par MiJack dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 16/06/2006, 11h34
  5. Réponses: 2
    Dernier message: 22/05/2006, 14h04

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