combobox pour débutant

combobox pour débutant - VB/VBA/VBS - Programmation

Marsh Posté le 12-07-2006 à 10:29:58    

Salut,
 
J'ai pas trop l'habitude d'utiliser du VBA (en fait pas du tout) et je cherche une bonne âme pour m'expliquer car je n'ai pas trouvé de réponse claire sur l'Internet.
 
J'ai besoin d'une liste déroulante dont les données doivent être rentrées en VBA (elles ne sont pas sur la feuille). Ces 2 valeurs sont 20,4 kg et 24 kg.
L'opérateur peut rentrer une valeur personnalisée si besoin est.La valeur choisie doit être reportée au fin fond du tableur Excel dans une cellule donnée (genre bh 212) sans le kg.
 
Merci d'avance pour votre aide

Reply

Marsh Posté le 12-07-2006 à 10:29:58   

Reply

Marsh Posté le 12-07-2006 à 10:42:55    

tu ajoutes ta combobox sur ton userform. L'avantage est que l'utilisateur peut ajouter une valeur en plus s'il le souhaite.
pour détecter si la valeur entrée est déjà dans la liste tu peux faire un compteur de valeur sur une feuille annexe
dans la feuil2 par exemple, tu prends la colonne A pour mettre tes valeurs, tu sélectionnes toutes les cellules et tu nommes la zone Liste par exemple.
tu testes toutes les valeurs de ta liste, et si elle n'appartient pas (variable booléenne à mettre) alors tu l'ajoutes à ta zone. Je v chercher la fonction d'ajout automatique en fin de liste.
 
edit: tu peux appliquer la fonction =DECALER() pour inclure automatique dans ta liste les dernières valeurs ajoutées.


Message édité par jpcheck le 12-07-2006 à 10:51:59
Reply

Marsh Posté le 12-07-2006 à 11:01:13    

Tu peux mettre ca sur ton combobox
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim Deja As Boolean
     
    Deja = False
    For i = 0 To ComboBox1.ListCount - 1
        If ComboBox1.Text = ComboBox1.List(i) Then
            MsgBox "dèja present"
            Deja = True
        End If
    Next
    If Not Deja Then
        ComboBox1.AddItem ComboBox1.Text
    End If
end sub
Ca ajoute la saisie si pas déjà presente dans le combobox

Reply

Marsh Posté le 12-07-2006 à 11:31:53    

Au fait, si l'opérateur utilise une nouvelle valeur, elle n'a pas besoin d'être mémorisé...
 
Est ce que l'on peut utiliser la fonction array :
Quelque chose du genre :
liste=Array("20,4 kg","24 kg3" )
For i=1 To 2
combobox.AddItem=liste(i)
...

Reply

Marsh Posté le 12-07-2006 à 11:33:12    

0someone0 a écrit :

Au fait, si l'opérateur utilise une nouvelle valeur, elle n'a pas besoin d'être mémorisé...
 
Est ce que l'on peut utiliser la fonction array :
Quelque chose du genre :
liste=Array("20,4 kg","24 kg3" )
For i=1 To 2
combobox.AddItem=liste(i)
...


perso je virerais les Kg, ne gardant dans la liste que des valeurs de type Double et tu mets le "Kg"  en label derriere ta combobox...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed