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 :

Plusieurs TextBox & CheckBox dans un userform et leur incrementation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Juridique
    Inscrit en
    Août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Juridique

    Informations forums :
    Inscription : Août 2017
    Messages : 2
    Par défaut Plusieurs TextBox & CheckBox dans un userform et leur incrementation
    Bonjour à toutes et à tous,

    Je vous remercie pour l'accueil et d'avance pour votre aide.
    Etant grand débutant en vba et les outils liés à Excel je galère quelque peu à essayer d'implémenter le userform que je souhaite activer dans mon tableau excel.

    Mon userform dispose de 20 textbox ainsi que de 12 checkbox.

    Le but est double :
    Je souhaite faire retenir les valeurs entrées dans chacune des textbox dans une cellule bien précise d'un feuillet (ex: textbox1 va dans cellule A1; textbox2 va dans celuule A2, etc.); ainsi que d'entrer une valeur correspondant au fait d'avoir ticker ou non les checkbox (checkbox1 est enregistré dans cellule B1, checkbox2 dans cellule B2, etc.). Par la suite chacune des valeurs rentrées resteront dans le userform. Pour cela la sauvegarde des valeurs entrées se fera via un bouton "save".

    Pour une valeur donnée (une pour une textbox et une checkbox) j'ai rentré le code suivant qui fonctionne :

    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
    Private Sub CommandButton15_Click()
     
       If CheckBox1.Value = True Then
       Worksheets("sheet1").Range("C2") = "Check"
       Else
       Worksheets("sheet1").Range("C2") = ""
       End If
     
        Worksheets("sheet1").Range("A5").Value = TextBox2.Value
     
    End Sub
     
    Private Sub UserForm_Initialize()
      If Worksheets("sheet1").Range("C2") = "Check" Then
      CheckBox1.Value = True
      Else
      CheckBox1.Value = False
      End If
     
      TextBox2.Value = Worksheets("sheet1").Range("A5").Value
     
    End Sub

    Pour toutes les autres checkbox et textbox, je peux faire de même, mais je me demandais si en utilisant une fonction for i = 1 to x on ne pourrait pas automatiser cela ?
    un truc du genre:

    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
    Private Sub CommandButton15_Click()
     
       Dim i As Integer
       For i = 1 To 12
       If CheckBox(i) = True Then
       Worksheets("sheet1").Range("C2" & i) = "Check"
       Else
       Worksheets("sheet1").Range("C2" & i) = ""
       End If
       i = i + 1
       Next i
     
       Dim i As Integer
       For i = 1 To 20
       Worksheets("sheet1").Range("A" & i).Value = TextBox(i).Value
       i = i+ 1
       Next i
     
    End Sub
    Et par la suite faire son pendant pour que les valeurs soient enregistrés dans l userform même lors de l'ouverture.
    Cependant, je viens vers vous car malheureusement cela ne fonctionne pas.
    Pourriez-vous svp me dire ce que je dois changer ou faire pour que cela fonctionne ?
    Merci par avance et bonne journée à vous.
    Cdt
    A.

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Pour boucler sur des contrôles, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 to 10
      Me.Controls("CheckBox" & i) = True
    Next
    Pour enregistrer ou charger des données de l'UserForm vers la feuille et réciproquement, créer 2 Sub :
    Sub ChargeDansUserForm()
    Sub EnregistreDansFeuille()
    Procédures que tu pourras appeler à tout moment (Initialize, CommandButton_Click, etc...)

    Par exemple, pour charger des données dans l'UserForm :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub ChargeDansUserForm()
    Dim i As Integer
    For i = 1 To 12
        Me.Controls("CheckBox" & i) = (Sheets("Sheet1").Range("C" & i + 1) = "Check")
    Next
    End Sub
    Procédure que tu appelleras, par exemple, depuis l'événement initialize, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
       Call ChargeDansUserForm
    End Sub
    Idem pour tes textbox : Me.Controls("TextBox" & i)

    A lire, d'urgence :
    http://silkyroad.developpez.com/VBA/ControlesUserForm/
    http://silkyroad.developpez.com/VBA/UserForm/

    Bon dimanche

  3. #3
    Candidat au Club
    Homme Profil pro
    Juridique
    Inscrit en
    Août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Juridique

    Informations forums :
    Inscription : Août 2017
    Messages : 2
    Par défaut
    Bonjour Pijaku,

    Merci pour ta réponse et les éclairsissements.
    cela fonctionne parfaitement pour les Textbox.

    En revanche concernant les checkbox il y a un souci, mais je vais continuer a chercher. - ok super j'ai trouvé.

    Encore merci et bon dimanche !

    Merci également pour les liens qui sont fort instructifs.

    Cdt
    A.

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

Discussions similaires

  1. [XL-2013] Instruire des TextBox sous VBA dans un UserForm Excel
    Par Olivair dans le forum Excel
    Réponses: 2
    Dernier message: 04/08/2015, 08h03
  2. [XL-2010] Problème de passage d'une textbox à une autre dans un Userform
    Par ThSPB dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/03/2015, 21h20
  3. Inserer des checkbox dans un userform
    Par hugues03 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/06/2010, 17h05
  4. [XL-2003] Mettre plusieurs checkbox dans un userform
    Par peofofo dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/02/2010, 11h53
  5. comment vider plusieurs textbox et combobox dans un formilaire et Plus
    Par r.mehdi dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 05/05/2008, 15h52

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