évènement onchange sur combobox

nayaphykit

Nouveau membre
Bonjour,

je suis actuellement en stage et je suis bloquée bloquée, j'ai cherché pendant un moment mais je me résoud à demander de l'aide.
je travaille sous excel2000 et je code en VBA
mon application crée un certain nombre de combobox dynamiquement (en fonction du nombre d'eléments récupéré dans une feuille excel).
plusieurs combobox (pas toujours le meme nombre) sont lié avec un textbox (qui est locked).
ex : dans la premiere listbox je selectionne "toto", dans la seconde "lili" et dans la troisieme "tutut", l'affichage que je souhaite dans ma textbox est : "toto+lili+tutu"
je souhaite que lorsqu'on change la valeur de l'une ou l'autre combobox, cela change dans la textbox. le changement de la textbox a proprement parlé ne me semble pas super compliqué puisque je pourrai coupé la chaine a l'aide de split et du delimiteur "+" mais je n'arrive pas a affecter un code (par ex :sub combobox1_change() ) aux combobox.

j'espere avoir ete assez claire et si je ne l'ai pas été n'hesitez pas a me le dire
j'espere vraiment que vous pourrez m'aider car la je suis devant un mur et personne dans ma boite ne peut m'aider

merci d'avance pour votre attention

Naya
 

zeb

Modérateur
Comment lies-tu une combobox et un textbox ? Normalement, tu lies un contrôle à une cellule :o

Tu ne peux pas dynamiquement créer une méthode sub combobox1_change() :(

Si tu utilises les composants de type "formulaires", tu peux affecter une macro.

A mon sens, lie les comboboxes chacunes à une cellule différente (An). Dans une n+1 cellule écris la formule suivante et lie cette cellule à ton textbox :[fixed]=A1&A2&A3[/fixed]
 

kiki29

Habitué
A adapter, en espérant n'avoir rien oublié,déjà posté sur un autre forum

Créer un Bouton sur Feuil1
Créer une UserForm1
Ajouter un Module
Ajouter un Module de Classe

Code Feuil1
[fixed]
Private Sub CommandButton1_Click()
UserForm1.Creation
UserForm1.Show
End Sub
[/fixed]
Code UserForm1
[fixed]
Option Explicit

Public Sub Creation()
Dim TBox As Control
Dim CBox As Control
Dim i As Integer, j As Integer
Dim Cls As ClsEventCbo

Set Coll = New Collection

For i = 1 To 5
Set CBox = Me.Controls.Add("Forms.Combobox.1")
With CBox
.Name = "Cbo" & i
.Left = 5
.Top = 10 + ((i - 1) * 22)
.Width = 80
.Height = 20
.ListRows = 12
.BackColor = &HC0FFFF
.Tag = i
End With

Set Cls = New ClsEventCbo
Set Cls.ClsCbo = CBox
Coll.Add Cls
Set CBox = Nothing

Set TBox = Me.Controls.Add("Forms.TextBox.1")
With TBox
.Name = "TBox" & i
.Left = 85
.Top = 10 + ((i - 1) * 22)
.Width = 75
.Height = 20
End With
Set TBox = Nothing
Next i

For i = 1 To 5
For j = 1 To 12
Controls("Cbo" & i).AddItem i & " " & j
Next j
Next i
End Sub
[/fixed]
Code Module1
[fixed]
Option Explicit
Public Coll As Collection
[/fixed]
Code Module de Classe : ClsEventCbo
[fixed]
Option Explicit
Public WithEvents ClsCbo As MSForms.ComboBox

Private Sub ClsCbo_Change()
UserForm1.Controls("TBox" & ClsCbo.Tag) = ClsCbo.Value
End Sub
[/fixed]
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 080
Messages
6 716 716
Membres
1 586 248
Dernier membre
GxBear263
Partager cette page
Haut