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 :

Grouper action de plusieur textbox [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut Grouper action de plusieur textbox
    Bonjour à tous,

    voilà le petit soucis que je rencontre.

    J'ai un userform qui comprends 4 checkbox et 30 textbox

    en cliquant sur le premier textbox
    j'ai 5 textbox qui doivent se dévérouiller.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CbxCOM_Click()
     
    If CbxCOM.Value = True Then
     
    Textbox1.Enabled = True
    Textbox3.Enabled = True
    Textbox7.Enabled = True
    Textbox8.Enabled = True
    Textbox10.Enabled = True
     
    else: end if
    end sub


    je cherche le moyen de regrouper ses 5 lignes en 1.
    du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CbxCOM_Click()
     
    If CbxCOM.Value = True Then
     
    Textbox(1,3,7,8,10).Enabled = True
     
    else: end if
    end sub


    Naturellement cela ne marche pas. Je ne sait pas si cela est possible ou pas.

    Et par anticipation à la question "pourquoi ?":
    Ben parce que
    Sérieusement, je sait que le code marche , mais j'aime bien que les codes soit épurée

    D'avance un grand merci pour votre aide

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Une solution simple est de placer les txtbox dans une frame que tu rendras Enabled = False quand tu voudras bloquer les txtbox

  3. #3
    Membre très actif
    Profil pro
    Webmaster
    Inscrit en
    Octobre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 125
    Par défaut
    A ma connaissance, il n'est pas possible de le faire....

    Après peut être que je me trompe... et si c'est le cas, je suis preneur de la solution...

  4. #4
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut
    J'y ai pensé mais le soucis c'est que:

    Avec la 1 checkbox je dois deverouiller
    Textbox1
    Textbox3
    Textbox7
    Textbox8

    Textbox10

    et avec le second je prends
    Textbox2
    Textbox6
    Textbox7
    Textbox8

    Textbox12

    Et donc de ce faite sa bloque ...

  5. #5
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Dans ce cas, tu ne peux pas faire plus court

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 345
    Par défaut
    Bonjour,

    Pour le 1er checbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub CbxCOM_Click()
    If CbxCOM.Value = True Then
        Dim i
        For Each i In Array(1, 3, 7, 8, 10)
            Me.Controls("Textbox" & i).Enabled = True
        Next i
    End If
    end sub
    ctac

  7. #7
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut
    Génial, ca marche nikel et le code est beaucoup plus "BEAU"

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    Private Sub CbxEU_Click()
     
    If CbxEU.Value = True Then
    CbxT.Value = False
    CbxCOM.Value = False
    CbxEX.Value = False
     
    Tb3.Enabled = True
    Tb4.Enabled = True
    Tb5.Enabled = True
    Tb6.Enabled = True
    Tb9.Enabled = True
    Tb10.Enabled = True
    Tb13.Enabled = True
    Tb14.Enabled = True
    Tb16.Enabled = True
    Tb19.Enabled = True
    Tb20.Enabled = True
    Tb28.Enabled = True
    Tb29.Enabled = True
    Tb30.Enabled = True
     
    Tb3.BackColor = RGB(255, 255, 255)
    Tb4.BackColor = RGB(255, 255, 255)
    Tb5.BackColor = RGB(255, 255, 255)
    Tb6.BackColor = RGB(255, 255, 255)
    Tb9.BackColor = RGB(255, 255, 255)
    Tb10.BackColor = RGB(255, 255, 255)
    Tb13.BackColor = RGB(255, 255, 255)
    Tb14.BackColor = RGB(255, 255, 255)
    Tb16.BackColor = RGB(255, 255, 255)
    Tb19.BackColor = RGB(255, 255, 255)
    Tb20.BackColor = RGB(255, 255, 255)
    Tb28.BackColor = RGB(255, 255, 255)
    Tb29.BackColor = RGB(255, 255, 255)
    Tb30.BackColor = RGB(255, 255, 255)
     
    Else
     
    Tb3.Enabled = False
    Tb4.Enabled = False
    Tb5.Enabled = False
    Tb6.Enabled = False
    Tb9.Enabled = False
    Tb10.Enabled = False
    Tb13.Enabled = False
    Tb14.Enabled = False
    Tb16.Enabled = False
    Tb19.Enabled = False
    Tb20.Enabled = False
    Tb28.Enabled = False
    Tb29.Enabled = False
    Tb30.Enabled = False
     
    Tb3.BackColor = RGB(224, 224, 224)
    Tb4.BackColor = RGB(224, 224, 224)
    Tb5.BackColor = RGB(224, 224, 224)
    Tb6.BackColor = RGB(224, 224, 224)
    Tb9.BackColor = RGB(224, 224, 224)
    Tb10.BackColor = RGB(224, 224, 224)
    Tb13.BackColor = RGB(224, 224, 224)
    Tb14.BackColor = RGB(224, 224, 224)
    Tb16.BackColor = RGB(224, 224, 224)
    Tb19.BackColor = RGB(224, 224, 224)
    Tb20.BackColor = RGB(224, 224, 224)
    Tb28.BackColor = RGB(224, 224, 224)
    Tb29.BackColor = RGB(224, 224, 224)
    Tb30.BackColor = RGB(224, 224, 224)
     
    End If
     
    End sub
    Ce code est quand meme beaucoup plus lisible ( à mon gouts!)
    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
    18
    19
    20
    21
    22
    23
    24
     
    Private Sub CbxEU_Click()
     
    Call Annulation
     
    If CbxEU.Value = True Then
       CbxT.Value = False
       CbxCOM.Value = False
       CbxEX.Value = False
     
        For Each i In Array(3, 4, 5, 6, 9, 10, 13, 14, 16, 19, 20, 28, 29, 30)
            Controls("Tb" & i).Enabled = True
            Controls("Tb" & i).BackColor = RGB(255, 255, 255)
        Next i
     
    Else
        For Each i In Array(3, 4, 5, 6, 9, 10, 13, 14, 16, 19, 20, 28, 29, 30)
            Controls("Tb" & i).Enabled = False
            Controls("Tb" & i).BackColor = RGB(224, 224, 224)
        Next i
     
    End If
     
    End Sub
    Un grand grand merci Ctac, ce bouts de code va m'être bien utile.

    Titans

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

Discussions similaires

  1. [XL-2000] Grouper action de plusieur textbox
    Par Titans36 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/12/2010, 17h35
  2. Plusieurs TextBox lié à plusieurs objet
    Par ecor6633 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 06/07/2007, 17h16
  3. somme de plusieurs textbox (debutant)
    Par josémaria dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/03/2007, 14h25
  4. Plusieurs textbox sur la même ligne
    Par kahya dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 15/02/2007, 15h19
  5. [C++.NET]RAZ de plusieurs textbox
    Par lowrider dans le forum MFC
    Réponses: 11
    Dernier message: 06/05/2006, 08h41

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