Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1869 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  évènement onchange sur combobox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

évènement onchange sur combobox

n°1495216
nayaphykit
Posté le 22-12-2006 à 10:55:32  profilanswer
 

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

mood
Publicité
Posté le 22-12-2006 à 10:55:32  profilanswer
 

n°1495247
jpcheck
Pioupiou
Posté le 22-12-2006 à 11:26:31  profilanswer
 

bonjour,
dans chacune de tes sub combobox_change tu mets à jour ta textbox
par exemple
textbox.value = combo1.value & combo2.value & combo3.value
 
et ca dans combo1 2 et 3 _change

n°1495256
nayaphykit
Posté le 22-12-2006 à 11:29:57  profilanswer
 

Bonjour
 
merci de ta reponse rapide
mon problemeest que vu que les combobox sont créés dynamiquement je n'arrive pas a leur affecter un code

n°1495282
jpcheck
Pioupiou
Posté le 22-12-2006 à 12:03:21  profilanswer
 

lorsque tu crées en amont tes sub, ca résout ton pb non ?

n°1495781
kiki29
Posté le 24-12-2006 à 11:25:44  profilanswer
 

A adapter, en espérant n'avoir rien oublié
 
Créer un Bouton sur Feuil1
Créer une UserForm1
Ajouter un Module
Ajouter un Module de Classe
 
Code Feuil1


Private Sub CommandButton1_Click()
    UserForm1.Creation
    UserForm1.Show
End Sub


Code UserForm1


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


Code Module1


Option Explicit
Public Coll As Collection


Code Module de Classe : ClsEventCbo


Option Explicit
Public WithEvents ClsCbo As MSForms.ComboBox
 
Private Sub ClsCbo_Change()
    UserForm1.Controls("TBox" & ClsCbo.Tag) = ClsCbo.Value
End Sub


Message édité par kiki29 le 24-12-2006 à 11:26:19
n°1496607
nayaphykit
Posté le 28-12-2006 à 14:35:09  profilanswer
 

Bonjour
tout d'abord désolé d'avoir mis si longtemps a tester ce que tu m'as proposé (fêtes de noel oblige)
 
la je viens de le tester tout seul pour voir et bien comprendre et il me met le message d'erreur suivant : "type défini par l'utilisateur non défini" et selecitonne  "ClsEventCbo" le code du userform1

n°1496638
kiki29
Posté le 28-12-2006 à 15:17:58  profilanswer
 

Reprends point par point dans un nouveau classeur les différentes portions de code avec leur affectation : feuille, Module, Module de classe et cela marchera

n°1496639
nayaphykit
Posté le 28-12-2006 à 15:22:52  profilanswer
 

oulalala je me cache je viens de relire ton exemple et de trouver mon erreur.... ClsEventCbo  est le nom du module de classe... aie! quelle nouille je suis!
je suis en train de l'adapter à mon cas. je te dirais si ca marche ^^

n°1496641
nayaphykit
Posté le 28-12-2006 à 15:25:31  profilanswer
 

le tag des combobox doit il etre unique ?

n°1496644
kiki29
Posté le 28-12-2006 à 15:28:01  profilanswer
 

Oh que oui

mood
Publicité
Posté le 28-12-2006 à 15:28:01  profilanswer
 

n°1496694
nayaphykit
Posté le 28-12-2006 à 16:26:17  profilanswer
 

probleme resolu entierement :)
 
merci beaucoup de ton aide


Message édité par nayaphykit le 29-12-2006 à 09:10:59

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  évènement onchange sur combobox

 

Sujets relatifs
Probleme avec l'evenement onclick dans du code html généré par jsMise à jour d'une combobox
VBA : information combobox[delphi]Supprimer un compsant lors d'un evenement
Problème évènement et JTableBug sur AddItem dans une ComboBox.
[VBA Excel] Combobox se vide après l'enregistrementLimiter la longeur du texte affiché dans une combobox
Evenement sur une cellule 
Plus de sujets relatifs à : évènement onchange sur combobox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR