Comment remplir un combobox sans utilisation d'une colonne
Résolu/Fermé
amiro2017
Messages postés
193
Date d'inscription
mardi 28 février 2017
Statut
Membre
Dernière intervention
31 août 2017
-
15 mars 2017 à 15:04
amiro2017 Messages postés 193 Date d'inscription mardi 28 février 2017 Statut Membre Dernière intervention 31 août 2017 - 16 mars 2017 à 22:32
amiro2017 Messages postés 193 Date d'inscription mardi 28 février 2017 Statut Membre Dernière intervention 31 août 2017 - 16 mars 2017 à 22:32
A voir également:
- Combobox1_change
- Notice d'utilisation - Guide
- Déplacer une colonne excel - Guide
- Utilisation chromecast - Guide
- Organigramme a remplir word - Guide
- Formule somme excel colonne - Guide
10 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
15 mars 2017 à 15:13
15 mars 2017 à 15:13
Bonjour,
Avant de poser une question sur le forum essaie d'utiliser Google:
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-F
Avant de poser une question sur le forum essaie d'utiliser Google:
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-F
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
15 mars 2017 à 17:30
15 mars 2017 à 17:30
voici un exemple avec une ListBox,a adapter a une ComboBox:
Dim I As Long, j As Long j = 0 With ListBox1 For I = 0 To .ListCount - 1 If .Selected(I) Then j = j + 1 End If Next MsgBox j End With
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié par cs_Le Pivert le 16/03/2017 à 07:58
Modifié par cs_Le Pivert le 16/03/2017 à 07:58
cependant j'ai pas pu trouver comment on compte le nombre de séléctions dans le combobox
Je serais curieux de voir de quelle façon tu sélectionnes plusieurs items dans une ComboBox!
Si tu veux sélectionner plusieurs items, il faut utiliser une ListBox dont tu mets la propriété Multiselect à fmMultiSelectMulti comme ceci:
Consulte sans modération le site cité ici sur les ListBox
https://forums.commentcamarche.net/forum/affich-34447046-comment-remplir-un-combobox-sans-utilisation-d-une-colonne#1
@+ Le Pivert
Je serais curieux de voir de quelle façon tu sélectionnes plusieurs items dans une ComboBox!
Si tu veux sélectionner plusieurs items, il faut utiliser une ListBox dont tu mets la propriété Multiselect à fmMultiSelectMulti comme ceci:
ListBox1.MultiSelect = fmMultiSelectMulti
Consulte sans modération le site cité ici sur les ListBox
https://forums.commentcamarche.net/forum/affich-34447046-comment-remplir-un-combobox-sans-utilisation-d-une-colonne#1
@+ Le Pivert
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
16 mars 2017 à 10:55
16 mars 2017 à 10:55
C'est en effet plus clair, comme ceci:
Option Explicit Dim j As Integer Private Sub ComboBox1_Change() TextBox1.Value = j j = j + 1 End Sub Private Sub UserForm_Initialize() Dim i As Byte For i = 1 To 15 ComboBox1.AddItem "Ligne" & i Next i ComboBox1.ListIndex = 0 j = 1 End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
16 mars 2017 à 14:44
16 mars 2017 à 14:44
Il faut quand même réfléchir!!!!!!!!!!!!
Ce code empêche la saisie dans tous les TextBox:
Il faut donc mettre après ce code:
si l'on veut que la saisie se fasse!!!!!!!
Au lieu de mettre des captures d'écran mettre le code dans les balises.
Ce code empêche la saisie dans tous les TextBox:
'boucle sur les Textbox Dim Ctrl As Control For Each Ctrl In Me.Controls If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Object.Enabled = False End If Next Ctrl
Il faut donc mettre après ce code:
TextBox11.Enabled= True TextBox11.Value = j j = j + 1
si l'on veut que la saisie se fasse!!!!!!!
Au lieu de mettre des captures d'écran mettre le code dans les balises.
amiro2017
Messages postés
193
Date d'inscription
mardi 28 février 2017
Statut
Membre
Dernière intervention
31 août 2017
1
Modifié par amiro2017 le 16/03/2017 à 15:20
Modifié par amiro2017 le 16/03/2017 à 15:20
malhereusement ca ne marche pas c'est pourquoi je décidé de faire une autre méthode qui consiste de faire un contrôle chaque fois sur la séléction d'un item d'un combobox alors on ajoute un aux textbox mais encore il ne marche pas
corrige moi svp
corrige moi svp
j = 0 TextBox11.Enabled = True If SelectedItem.ComboBox1 = True Then TextBox11.Value = j + 1 End If
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
16 mars 2017 à 18:07
16 mars 2017 à 18:07
Où as-tu trouvé cela:
Cela n'existe pas.
Je te donne toutes les infos et tu ne les mets pas en pratique.
Je fais une dernière tentative, mets moi la totalité du code de l'évenement
Je vois ce que je peux faire!
If SelectedItem.ComboBox1 = True
Cela n'existe pas.
Je te donne toutes les infos et tu ne les mets pas en pratique.
Je fais une dernière tentative, mets moi la totalité du code de l'évenement
Private Sub ComboBox1_Change()
Je vois ce que je peux faire!
amiro2017
Messages postés
193
Date d'inscription
mardi 28 février 2017
Statut
Membre
Dernière intervention
31 août 2017
1
Modifié par amiro2017 le 16/03/2017 à 19:37
Modifié par amiro2017 le 16/03/2017 à 19:37
n'oublier pas que mon combobox est dont ses items sont d'origine d'une colonne définie dans excel :
voici le code :
et je vois pas l'utilité de ce code :
</code basic>
Private Sub UserForm_Initialize()
Dim i As Byte
For i = 1 To 15
ComboBox1.AddItem "Ligne" & i
Next i
ComboBox1.ListIndex = 0
j = 1
End Sub</code>
je vous remercie énormement pour votre aide et effort!!!
voici le code :
Private Sub ComboBox1_Change() Dim j As Integer Dim Ctrl As Control For Each Ctrl In Me.Controls If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Object.Enabled = False End If Next Ctrl TextBox11.Enabled = True 'c'est le text box qui doit compter chaque fois le nombre des items chaque fois TextBox11.Value = j j = j + 1 TextBox8.Enabled = True TextBox8.Value = Date Select Case ComboBox1.Value Case "Swaps de taux d'intérêt : Payer" TextBox7.Enabled = False TextBox6.Enabled = True TextBox4.Enabled = True TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = True Case "Swaps de taux d'intérêt : Recevoir" TextBox7.Enabled = False TextBox6.Enabled = True TextBox4.Enabled = True TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = True Case "Contrats de taux à terme : Acheter (court)" TextBox6.Enabled = False TextBox7.Enabled = True TextBox4.Enabled = True TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = True Case "Contrats de taux à terme : Vendre (long)" TextBox6.Enabled = False TextBox7.Enabled = True TextBox4.Enabled = True TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = True Case "Obligations et billets du gouvernement" TextBox6.Enabled = False TextBox7.Enabled = False TextBox4.Enabled = True TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = False Case "Swaps de devises : Recevoir (variable)" TextBox6.Enabled = False TextBox4.Enabled = False TextBox7.Enabled = True TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = False Case "Swaps de devises : Payer (variable)" TextBox6.Enabled = False TextBox4.Enabled = False TextBox7.Enabled = True TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = False Case "Acceptations bancaires à terme : Acheter" TextBox6.Enabled = False TextBox4.Enabled = False TextBox7.Enabled = False TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = True Case "Acceptations bancaires à terme : Vendre" TextBox6.Enabled = False TextBox4.Enabled = False TextBox7.Enabled = False TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = True Case "Swaps de devises : Recevoir (fixe)" TextBox6.Enabled = False TextBox7.Enabled = False TextBox4.Enabled = True TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = False Case "Swaps de devises : Payer (fixe)" TextBox6.Enabled = False TextBox7.Enabled = False TextBox4.Enabled = True TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = False Case "Contrats à terme sur devise" TextBox6.Enabled = False TextBox4.Enabled = False TextBox7.Enabled = True TextBox5.Enabled = True TextBox9.Enabled = True TextBox10.Enabled = True End Select End Sub
et je vois pas l'utilité de ce code :
</code basic>
Private Sub UserForm_Initialize()
Dim i As Byte
For i = 1 To 15
ComboBox1.AddItem "Ligne" & i
Next i
ComboBox1.ListIndex = 0
j = 1
End Sub</code>
je vous remercie énormement pour votre aide et effort!!!
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
amiro2017
Messages postés
193
Date d'inscription
mardi 28 février 2017
Statut
Membre
Dernière intervention
31 août 2017
16 mars 2017 à 20:48
16 mars 2017 à 20:48
et je vois pas l'utilité de ce code :
C'est grave tu ne comprends rien!
Ce code sert a initialiser la variable j à l'ouverture de l'UserForm
Par contre cela ne sert pas dans ton cas, c'est pour mon exemple
ensuite cette variable j doit être déclarée en dehors des sub et non pas comme tu l'as fait dans
Si tu n'appliques pas ce que je dit, j'abandonne.
Ensuite pourquoi mettre dans les Select case des TextBox.Enabled = False cela ne sert a rien car il sont tous à false au changement de sélection de la comboBox
Je t'ai expliqué ici:
https://forums.commentcamarche.net/forum/affich-34447046-comment-remplir-un-combobox-sans-utilisation-d-une-colonne#12
il suffit donc de mettre seulement les TextBox.Enabled = True
Corrige tout ça et on verra la suite
j = 1
C'est grave tu ne comprends rien!
Ce code sert a initialiser la variable j à l'ouverture de l'UserForm
Par contre cela ne sert pas dans ton cas, c'est pour mon exemple
Dim i As Byte For i = 1 To 15 ComboBox1.AddItem "Ligne" & i Next i
ensuite cette variable j doit être déclarée en dehors des sub et non pas comme tu l'as fait dans
Private Sub ComboBox1_Change() Dim j As Integer
Si tu n'appliques pas ce que je dit, j'abandonne.
Ensuite pourquoi mettre dans les Select case des TextBox.Enabled = False cela ne sert a rien car il sont tous à false au changement de sélection de la comboBox
Je t'ai expliqué ici:
https://forums.commentcamarche.net/forum/affich-34447046-comment-remplir-un-combobox-sans-utilisation-d-une-colonne#12
il suffit donc de mettre seulement les TextBox.Enabled = True
Corrige tout ça et on verra la suite
amiro2017
Messages postés
193
Date d'inscription
mardi 28 février 2017
Statut
Membre
Dernière intervention
31 août 2017
1
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
16 mars 2017 à 22:08
16 mars 2017 à 22:08
je vous explique concernant le TextBox.Enabled = False pour chaque case car j'ai besoin de ca et ca marche avec mes besoins car lorsqu'on parle des obligations on parle donc seulement de l'échéance donc les autres données ne doivent pas entrée <gras>sela empêche l'utilisateur d'entrer des informations erronées!<gras>
d'autre part , jai déja fait j endehors de procédure mais ca ne marche pas !
par contre j'ai une idée pour dépasser ce problème : je vous explique : en effet j'ai un bouton ajouter (qui sert à enregistrer les données pour chaque cas d'étude) ainsi je vous prie de m'indiquer est-il possible pour chaque appye sur ajouter le textbox de comptage avance d'un pas? car j'ai déjà décidé
je pense cette idée plus efficace
voici le code d'ajouter:
d'autre part , jai déja fait j endehors de procédure mais ca ne marche pas !
par contre j'ai une idée pour dépasser ce problème : je vous explique : en effet j'ai un bouton ajouter (qui sert à enregistrer les données pour chaque cas d'étude) ainsi je vous prie de m'indiquer est-il possible pour chaque appye sur ajouter le textbox de comptage avance d'un pas? car j'ai déjà décidé
je pense cette idée plus efficace
voici le code d'ajouter:
Private Sub CommandButton5_Click() Dim dernier As Integer Dim j As Integer j = 0 Sheets("Approche_standards").Activate dernier = Application.WorksheetFunction.CountA(Range("B:B")) + 1 Select Case ComboBox1.Value Case "Swaps de taux d'intérêt : Payer" If (TextBox4.Value <> "") Then Cells(dernier, 5).Value = -Val(TextBox4) End If Case "Swaps de taux d'intérêt : Recevoir" If (TextBox4.Value <> "") Then Cells(dernier, 6).Value = -Val(TextBox4) End If Case "Contrats de taux à terme : Acheter (court)" If (TextBox4.Value <> "") Then Cells(dernier, 6).Value = -Val(TextBox7) End If Case "Contrats de taux à terme : Vendre (long)" If (TextBox4.Value <> "") Then Cells(dernier, 5).Value = -Val(TextBox7) End If Case "Obligations et billets du gouvernement" If (TextBox4.Value <> "") Then Cells(dernier, 5).Value = Val(TextBox4) End If Case "Swaps de devises : Recevoir (variable)" If (TextBox4.Value <> "") Then Cells(dernier, 4).Value = Val(TextBox4) End If Case "Swaps de devises : Payer (variable)" If (TextBox4.Value <> "") Then Cells(dernier, 4).Value = -Val(TextBox4) End If Case "Swaps de devises : Recevoir (fixe)" If (TextBox4.Value <> "") Then Cells(dernier, 5).Value = Val(TextBox4) End If Case "Swaps de devises : Payer (fixe)" If (TextBox4.Value <> "") Then Cells(dernier, 5).Value = -Val(TextBox4) End If Case "Contrats à terme sur devise: Acheter" If (TextBox5.Value <> "") Then Cells(dernier, 4).Value = Val(TextBox4) End If Case "Contrats à terme sur devise: Vendre" If (TextBox5.Value <> "") Then Cells(dernier, 4).Value = -Val(TextBox4) End If End Select textbox11.value=j+1 Cells(dernier, 2).Value = TextBox8.Value Cells(dernier, 3).Value = ComboBox1.Value Cells(dernier, 4).Value = Val(TextBox7) Cells(dernier, 6).Value = Val(TextBox6) Cells(dernier, 7).Value = Val(TextBox5) Cells(dernier, 11).Value = Val(TextBox9) Cells(dernier, 12).Value = Val(TextBox10) End Sub
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
amiro2017
Messages postés
193
Date d'inscription
mardi 28 février 2017
Statut
Membre
Dernière intervention
31 août 2017
16 mars 2017 à 22:17
16 mars 2017 à 22:17
Je crois que tu ne comprends toujours rien
En mettant :
Tu sera toujours à 0.
Si tu ne comprends pas ce que j'explique:
Il faut que l'initialisation de j se face à l'ouverture de l'UserForm
Je ne peux plus rien pour toi
désolé
En mettant :
Private Sub CommandButton5_Click() Dim dernier As Integer Dim j As Integer j = 0
Tu sera toujours à 0.
Si tu ne comprends pas ce que j'explique:
Il faut que l'initialisation de j se face à l'ouverture de l'UserForm
Je ne peux plus rien pour toi
désolé
amiro2017
Messages postés
193
Date d'inscription
mardi 28 février 2017
Statut
Membre
Dernière intervention
31 août 2017
1
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
16 mars 2017 à 22:32
16 mars 2017 à 22:32
je m'execuse je suis débutant et je ne maîtrise pas parfaitement le vba .
je vous remercie en tout cas cs_Le Pivert
c'est pas grave , je veux décider et vraiment je vous remercie beaucoup !!!
je vous remercie en tout cas cs_Le Pivert
c'est pas grave , je veux décider et vraiment je vous remercie beaucoup !!!
amiro2017
Messages postés
193
Date d'inscription
mardi 28 février 2017
Statut
Membre
Dernière intervention
31 août 2017
1
15 mars 2017 à 20:28
15 mars 2017 à 20:28
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
15 mars 2017 à 20:38
15 mars 2017 à 20:38
Si tu n'arrives pas a mettre :
a la place de
parce que c'était la seule chose à changer dans le copier coller. Il y a un soucis pour la suite!
Il faudrait prendre quelques cours de vba pour connaitre les fondamentaux.
Quand on met
au lieu de:
Voilà
With ComboBox1
a la place de
With ListBox1
parce que c'était la seule chose à changer dans le copier coller. Il y a un soucis pour la suite!
Il faudrait prendre quelques cours de vba pour connaitre les fondamentaux.
Quand on met
With Combobox1, cela évite de le remettre partout on démarre ensuite avec un point:
.Selected
au lieu de:
ComboBox1.Selected
Voilà
amiro2017
Messages postés
193
Date d'inscription
mardi 28 février 2017
Statut
Membre
Dernière intervention
31 août 2017
1
15 mars 2017 à 20:51
15 mars 2017 à 20:51
je m'execuse cs_Le Pivert car j'ai déjà fait et je suis débutant en vba et chaque fois avant de poser des questions je cherche mais parfois des astuces comme cela , je n'arrive pas à les arracher:
j'ai déjà fait with combobox1 à la place de listbox et j'ai déjà fait .selected
je vous remercie toujours et pardonne moi :
voir ce qui m'affiché même je fais .selected
j'ai déjà fait with combobox1 à la place de listbox et j'ai déjà fait .selected
je vous remercie toujours et pardonne moi :
voir ce qui m'affiché même je fais .selected
amiro2017
Messages postés
193
Date d'inscription
mardi 28 février 2017
Statut
Membre
Dernière intervention
31 août 2017
1
Modifié par amiro2017 le 16/03/2017 à 08:33
Modifié par amiro2017 le 16/03/2017 à 08:33
Bonjour,
ma problème n'est pas dans la séléction des plusieurs items d'un combobox en effet j'ai besoin d'un text box qui affiche le nombre des items séléctionnées d'un combobox pour un cas d'étude :
voici une capture d'écran
c'est à dire si je séléctionne un élément donc textbox affiche 1
puis si je séléctionne le deuxième il affiche 2 et ainsi de suite
ma problème n'est pas dans la séléction des plusieurs items d'un combobox en effet j'ai besoin d'un text box qui affiche le nombre des items séléctionnées d'un combobox pour un cas d'étude :
voici une capture d'écran
c'est à dire si je séléctionne un élément donc textbox affiche 1
puis si je séléctionne le deuxième il affiche 2 et ainsi de suite
amiro2017
Messages postés
193
Date d'inscription
mardi 28 février 2017
Statut
Membre
Dernière intervention
31 août 2017
1
16 mars 2017 à 14:15
16 mars 2017 à 14:15
15 mars 2017 à 15:26
15 mars 2017 à 16:27