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 :

boucle pour rajouter des items dans combobox


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 201
    Points : 73
    Points
    73
    Par défaut boucle pour rajouter des items dans combobox
    Bonjour,
    je souhaiterai mettre des items (nombre de 10 à 30) en passant par une boucle que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 10 To i = 30
      ComboBox3.AddItem "i"
    Next i
    seulement dans le combobox3 de l'userform ya juste un "i" qui est proposé.
    Où est la bêtise que j'ai faite.

    ps: comment faire pour faire la meme chose mais avec des chiffres de 0 à 100 en allant de 5 en 5 ( 0,5,10,15,20,25,30,35,etc...)

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 201
    Points : 73
    Points
    73
    Par défaut
    c'est bon j'ai trouvé il fallait enlever les guillments du i le i du Next:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 10 To i = 30
      ComboBox3.AddItem i
    Next
    si non je suis preneur pour le postscriptum, merci ;-)

    Fausse alerte ça marche pas, ça me propose juste un 0

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 10 To 30 
         ComboBox3.AddItem i 
    Next i
    PS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 0 To 100 Step 5
        Me.ComboBox1.AddItem i
    Next i
    Ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 0 To 20
        Me.ComboBox1.AddItem 5*i
    Next i
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 201
    Points : 73
    Points
    73
    Par défaut
    Merci pour votre aide sinon j'ai ce code ci:
    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
    Private Sub ComboBox5_Click()
       Select Case ComboBox5
        Case "Voile contre terre béton"
            With Worksheets("Config")
        LastLig = .Cells(.Rows.Count, "B").End(xlUp).Row
        Me.ComboBox2.RowSource = "'" & .Name & "'!B2:B4" & LastLig
    End With
        
            
           
        Case "Mitoyen"
        With Worksheets("Config")
        LastLig = .Cells(.Rows.Count, "B").End(xlUp).Row
        Me.ComboBox2.RowSource = "'" & .Name & "'!B2:B7" & LastLig
    End With
          
            
        Case "Refend"
           With Worksheets("Config")
        LastLig = .Cells(.Rows.Count, "B").End(xlUp).Row
        Me.ComboBox2.RowSource = "'" & .Name & "'!B2:B" & LastLig
    End With
        
    End Select
    et j'aimerai limité ma selection ou bien sauter une partie des cellules pour selectionner les contenus des combobox qui vont ensemble. Comme par exemple une dalle béton ne peut se faire avec un matériau brique mais forcément béton.
    j'ai essayé (partie soulignée en gras) mais ça ne marche pas comment faut il faire?

  5. #5
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Pour faire simple, je suppose que les données pour Mitoyen sont en feuille Config de B2 à B7 et pour Refend de B8 à B16 de la même feuille Config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Contenu As String
     
    '....On récupère l'adresse de la plage dans Contenu en fonction du critère. Après on indiquera le nom de la feuille
        Case "Mitoyen": Contenu = "B2:B7"
        Case "Refend": Contenu = "B8:B16"
    End Select
    Me.ComboBox2.RowSource = "Config!" & Contenu
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 201
    Points : 73
    Points
    73
    Par défaut
    Super! Grâce à votre aide mon code commence vraiment à s'alléger et on y voit mieux, reste encore à renommer les combobox . Puis je m'y prendre ainsi ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub renommer()
    Dim OL As OLEObject
    For Each OL In ActiveSheet.OLEObjects
      If OL.Name = "ComboBox1" Then OL.Name = "ComboSource"
      If OL.Name = "ComboBox2" Then OL.Name = "ComboTypeMur"
    Next OL
    End Sub
    Cordialement

  7. #7
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Renomme manuellement tes Combobox: Clique droit> Propriétés

    Ci après un petit exemple appliqué en partie à ton userform après nommage des combobox et remplissage des données nécessaires dans une feuille ajoutée Config (Lis attentivement les commentaires sur le code)

    Codes dans le module de l'userform

    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
    Option Explicit
     
    Private Sub UserForm_Initialize()
    Dim i As Byte
     
    'Mise en page de l'userform par l'appel de la sous routine MiseEnFormeUSF
    MiseEnFormeUSF
     
    'Remplissage des combobox par l'appel de la sous routine RempliCombo
    RempliCombo Me.cboChoixSrce, 1                     'Remplie à partir de la colonne 1 de la feuille Config
    RempliCombo Me.cboMatParoi, 3                      'Remplie à partir de la colonne 3 de la feuille Config
    RempliCombo Me.cboTypParoi, 5                      'Remplie à partir de la colonne 5 de la feuille Config
    RempliCombo Me.cboNatParoi, 7                      'Remplie à partir de la colonne 7 de la feuille Config
    RempliCombo Me.ComboBox14, 9                       'Remplie à partir de la colonne 9 de la feuille Config
     
    'Remplissage des combobox par boucle
    For i = 0 To 40
        Me.cboSurFen.AddItem i
        If i < 21 Then
            Me.cboEpaisParoi.AddItem 10 + i
            Me.cboEpaisMit.AddItem 10 + i
            Me.cboOuvAutLoc.AddItem 10 + i
            Me.cboPourcOuv.AddItem 5 * i
        End If
        '    If i < 5 Then
        '        Me.ComboBox7.AddItem i
        '        Me.ComboBox8.AddItem i
        '    End If
    Next i
    End Sub
     
    'Sous routine qui permet la mise en forme de l'userform
    Private Sub MiseEnFormeUSF()
    Dim i As Byte
    Dim Tit
     
    Tit = Array(65535, 65280, 16776960, 255)
    For i = 1 To 4
        Me.Controls("CommandButton" & i).BackColor = Tit(i - 1)
    Next i
     
    Tit = Array("Local d'émission", "Caractéristique de la paroi excitée", "Dimensions du mitoyen", "Local de réception", "Ouvertures du local d'émission", "Dimensions du local d'émission", "Nature et positionnement de la source sonore")
    For i = 1 To 7
        Me.Controls("Frame" & i).Caption = Tit(i - 1)
    Next i
     
    For i = 1 To 2
        Me.Controls("OptionButton" & i).Visible = False
    Next i
     
    Me.Caption = "Mon projet"
    Me.ScrollBars = fmScrollBarsBoth
    End Sub
     
    'Sous routine qui remplit la ComboBox Cbo des données de la colonne Col de la feuille Config à partir de la 2ème ligne
    '/!\ Laisser la ligne 1 vide et une ligne vide entre chaque liste de données
     
    Private Sub RempliCombo(ByVal Cbo As ComboBox, ByVal Col As Integer)
     
    Cbo.RowSource = "Config!" & ThisWorkbook.Worksheets("Config").Cells(2, Col).CurrentRegion.Address
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 201
    Points : 73
    Points
    73
    Par défaut
    Merci! Je vais mettre tout ça en pratique dés mon réveil à 9h00 :-)
    Je vous tiens au courant. Et encore merci.
    Cordialement.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/07/2014, 10h51
  2. [XL-2007] Boucle pour copier des valeurs à la suite dans une même feuille
    Par LaMite dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/04/2014, 18h21
  3. "Looper" pour mettre des valeurs dans un combobox
    Par Shoppingsyl dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/02/2010, 04h02
  4. comment ajouter des items dans un combobox sous delphi?
    Par salimo79 dans le forum Débuter
    Réponses: 6
    Dernier message: 19/10/2009, 17h21
  5. rajouter des lignes dans la combobox
    Par levac dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/05/2007, 09h38

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