Excel VB = ComboBox
Getz_v
Messages postés
44
Statut
Membre
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
Alors voilà, j'ai une application VB composée d'une combobox (Cbx_List) reliée a une "base de donées" excel (elle contient des données (Pseudonymes)), un bouton "Ajouter" (Btn_Ajout) et une zone de texte (Txt_ListFin) qui permet de concaténer les données choisies dans la combobox.
En résumé, l'utilisateur choisi un pseudo dans la combobox, il clique sur le bouton "Ajouter", et là, le pseudo choisi se place dans la zone de texte, il peut en rajouter d'autre et dans ce cas là, les pseudo seront séparées par " / ".
Mon petit soucis relève en fait de la vérification. Comment puis-je faire pour qu'il ne rajoute pas plusieurs fois le même pseudo ?
-(Voici mon mini code) :
Option Explicit
Const Nom_Feuille = "Data"
Const DbListePseudo = 6
Const ColPseudo = 2
------------------------------------------------------------------------------------------
Private Sub Btn_Ajouter_Click() ' Bouton Ajouter
Dim sCurentPseudo As String
sCurentPseudo = Cbx_List.Text
Txt_ListFin = (Txt_ListFin.Text) & (sCurentPseudo) & (" / ")
End Sub
-----------------------------------------------------------------------------------------
Private Sub UserForm_Initialize() 'Action effectué lors du lancement de l'application
Dim nCurline As Integer
nCurline = DbListePseudo
Do
Cbx_List.AddItem Sheets(Nom_Feuille).Cells(nCurline, ColPseudo)
nCurline = nCurline + 1
Loop Until Sheets(Nom_Feuille).Cells(nCurline, ColPseudo) = ""
End Sub
Merci d'avance pour votre aide! ;)
Alors voilà, j'ai une application VB composée d'une combobox (Cbx_List) reliée a une "base de donées" excel (elle contient des données (Pseudonymes)), un bouton "Ajouter" (Btn_Ajout) et une zone de texte (Txt_ListFin) qui permet de concaténer les données choisies dans la combobox.
En résumé, l'utilisateur choisi un pseudo dans la combobox, il clique sur le bouton "Ajouter", et là, le pseudo choisi se place dans la zone de texte, il peut en rajouter d'autre et dans ce cas là, les pseudo seront séparées par " / ".
Mon petit soucis relève en fait de la vérification. Comment puis-je faire pour qu'il ne rajoute pas plusieurs fois le même pseudo ?
-(Voici mon mini code) :
Option Explicit
Const Nom_Feuille = "Data"
Const DbListePseudo = 6
Const ColPseudo = 2
------------------------------------------------------------------------------------------
Private Sub Btn_Ajouter_Click() ' Bouton Ajouter
Dim sCurentPseudo As String
sCurentPseudo = Cbx_List.Text
Txt_ListFin = (Txt_ListFin.Text) & (sCurentPseudo) & (" / ")
End Sub
-----------------------------------------------------------------------------------------
Private Sub UserForm_Initialize() 'Action effectué lors du lancement de l'application
Dim nCurline As Integer
nCurline = DbListePseudo
Do
Cbx_List.AddItem Sheets(Nom_Feuille).Cells(nCurline, ColPseudo)
nCurline = nCurline + 1
Loop Until Sheets(Nom_Feuille).Cells(nCurline, ColPseudo) = ""
End Sub
Merci d'avance pour votre aide! ;)
A voir également:
- Excel VB = ComboBox
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel trier par ordre croissant chiffre - Guide
2 réponses
N'hésitez pas à me faire parvenir vos idées car je suis en stage, et j'ai vraiment besoin de votre aide au plus vite.
Merci beaucoup!
Merci beaucoup!
Bonjour,
Tu pourrais stocker les pseudos choisis dans un tableau et faire un controle avant l'ajout.
En espérant que ça réponde à tout blème ... il ya surement d'autres solutions.
;o)
polux
Tu pourrais stocker les pseudos choisis dans un tableau et faire un controle avant l'ajout.
Option Explicit
Const Nom_Feuille = "Data"
Const DbListePseudo = 6
Const ColPseudo = 2
Private nb As Integer
Private tPseudo() As String
------------------------------------------------------------------------------------------
Private Sub Btn_Ajouter_Click() ' Bouton Ajouter
Dim i As Integer
Dim sCurentPseudo As String
i = 1
sCurentPseudo = Cbx_List.Text
If doesExist(sCurentPseudo) = False Then
Txt_ListFin = (Txt_ListFin.Text) & (sCurentPseudo) & (" / ")
If i > nb Then
nb = nb + 1
ReDim Preserve tPseudo(nb)
tPseudo(nb) = sCurentPseudo
i = i + 1
End If
Else
MsgBox "Le pseudo " & sCurentPseudo & " est déjà sélectionné",,"Message"
Exit Sub
End If
End Sub
Private Function doesExist(Byval str As String) As Boolean
Dim i As Integer
For i = 1 to nb
If tPseudo(i) = str Then
doesExist = True
Exit Function
End if
Next i
doesExist = True
End If
En espérant que ça réponde à tout blème ... il ya surement d'autres solutions.
;o)
polux