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 :

TabIndex de TextBox créés dynamiquement [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2013
    Messages : 111
    Par défaut TabIndex de TextBox créés dynamiquement
    Bonjour,

    Je souhaiterais changer l'ordre de mes "tabindex" selon mes TextBox.
    Je crée dynamiquement des lignes de 3 TextBox en les classant comme suit :

    TxBox1_1, TxBox2_1 et TxBox3_1
    TxBox1_2, TxBox2_2 et TxBox3_2
    ...
    TxBox1_i, TxBox2_i et TxBox3_i

    Ils sont respectivement classés dans les groupes mesbouts(NB).TxBox1, mesbouts(NB).TxBox2, mesbouts(NB).TxBox3
    Leur ordre d'index est donc défini par leur ordre de création.

    Or, j'aimerais pouvoir faire un TAB vertical, et non sur ma ligne, soit dans l'ordre des TxBox1, puis des TxBox2, etc.

    Voyez-vous une possibilité de changer dynamiquement ces index ?

    J'ai testé le code suivant mais qui ne change pas mes index.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    x = 0
    mesbouts(NB).TxBox1.TabIndex = 0
    For Each Cls In mesbouts
        mesbouts(NB).TxBox1.TabIndex = Cls.TxBox1.TabIndex + x
        MsgBox (Cls.TxBox1.TabIndex)
        x = x + 1
    Next
    Next
    Thumb Down peut-être ? :-)

    Merci d'avance

  2. #2
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 576
    Par défaut
    Bonjour,
    dans le module de classe on ajoute
    Code Classe ma_first_classe : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub TableIndex(Index As Integer, Rang As Integer)
    Select Case Rang
        Case 0: TxBox1.TabIndex = Index
        Case 1: TxBox2.TabIndex = Index
        Case 2: TxBox3.TabIndex = Index
    End Select
    End Sub
    On modifie le Userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub UserForm_Initialize()
    Dim r As Range, i As Integer, C As Integer, Tabi As Integer
    Set r = Sheets("Data").Range("A1").CurrentRegion
    For i = 1 To r.Rows.Count
        AjoutT r.Range(r(i, 1), r(i, 3))
    Next
    For C = 0 To 2
        For i = 0 To UBound(mesbouts)
           mesbouts(i).TableIndex Tabi, C: Tabi = Tabi + 1
        Next
    Next
    End Sub

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Si je devais faire un projet comme ça, je pense que je partirais plutôt sur 2 modules de classe

    La classe collection "Cls_Groupes"
    La Classe Item "Cls_ItemGroupe"

    Cls_Groupes contient la collection pour y stocker les items. Il s'occuperait
    • des ajouts d'item (avec la création des textbox et bouton).
    • de la suppression des items
    • du déplacement des items
    • ....
    • Des remontées d'Events
      • _Change (appelé sur changement de la valeur d'un textbox, avec comme paramètre l'index ou un pointer vers le txtbox en question et l'ancienne valeur par exemple);
      • _Click (appelé sur le click du bouton...)
      • ....

    Cls_ItemGroupe contiendrait le pointeur bouton actuel et 3 pointeurs vers les txtbox. Une variable Parent qui pointe vers le Cls_Groupes.
    • Un propriété visible (qui modifierait les 4 objets d'un coup) et informerait le parent qui se chargerait de remonter/redescendre tout les items suivant
    • ...
    • Des remontées d'info lors de la modification du contenu des txtbox vers le parent pour qu'il puisse gérer les events


    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2013
    Messages : 111
    Par défaut
    Bonjour,

    @Thumb down, en intégrant tes codes, ça marche parfaitement, encore merci pour ton aide ;-)

    @Qwazerty, je ne maîtrise pas encore suffisamment les modules de classe. Je vais approfondir le sujet et revenir sur ta suggestion ultérieurement. Merci néanmoins pour ton aide, je ne manquerai pas d'y revenir.

    Bonne journée à tous les deux

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

Discussions similaires

  1. Récupérer les valeurs de Textboxs créés dynamiquement
    Par chou2best987 dans le forum Macros et VBA Excel
    Réponses: 45
    Dernier message: 12/07/2017, 04h25
  2. Recupération de TextBoxes Créés Dynamiquement
    Par Flox06 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 20/02/2008, 15h04
  3. problème d'accès a des éléments créés dynamiquement
    Par Pymm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/07/2005, 17h13
  4. Gestion séparée de composants créés dynamiquement
    Par anarpunk dans le forum Composants VCL
    Réponses: 8
    Dernier message: 15/06/2005, 10h57
  5. Erreur EACCESSVIOLATION avec des compsts créés dynamiquement
    Par tsikpemoise dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/02/2004, 19h05

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