XL 2010 Nom de déclaration variable

Bob O' Deville

XLDnaute Junior
Bonjour à tous.

Je veux activer une procédure du genre " Sub Combobox1_change()". Sauf que la combobox en question est dynamique. Elle s'appelle selon FTCBB1; FTCBB2; FTCBB3 etc.
Comment puis-je m'y prendre.
Par avance merci
 

Bob O' Deville

XLDnaute Junior
Merci pour votre retour.
Voici le code. C'est sans doute perfectible mais ça fonctionne


Private Sub FTCB01_Change()

Dim Obj1 As Control
i = Range("FTCOMPTEUR")

For k = 1 To 1
Set Obj = Me.Controls("MultiPage1")
With Obj.Page3
Set Obj1 = .Add("forms.ComboBox.1")
Set Obj2 = .Add("forms.TextBox.1")
Set Obj3 = .Add("forms.TextBox.1")
Set Obj4 = .Add("forms.TextBox.1")
End With
'_______________________________________________________________________________________________
With Obj1
.name = "FTCBdesignation" & i ' La combo en question
End With
'_______________________________________________________________________________________________

With Obj2
.name = "FTTBPRIX" & i
End With

With Obj3
.name = "FTTBQTE" & i
End With

With Obj4
.name = "FTTBCOUT" & i
End With


For jjj = 1 To Sheets("PARAMETRE").Range("I" & Rows.Count).End(xlUp).Row
If Me.FTCB01 = Sheets("PARAMETRE").Cells(jjj, 9) Then
Sheets("MERCURIALE").Range("M1") = FTCB01
Numcolonne = Sheets("MERCURIALE").Cells(jjj, 13).Column
End If
Next jjj

Me.Controls("FTCBdesignation" & i).Clear

k = 2
Do While Sheets("MERCURIALE").Cells(k, 13) <> ""
Me.Controls("FTCBdesignation" & i).AddItem Sheets("MERCURIALE").Cells(k, 13)
k = k + 1
Loop

Next k

End Sub

En espérant que ca vous éclairera

Et donc :

Sub FTCBdesignation & 'i_change () '" i" la variabe du nom de la procédure que je ne sais pas faire.

En sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Je n'ai pas du tout envie de reproduire votre fichier, trop compliqué.

Alors voyez le fichier joint, très simple, et ce code dans Module1 à adapter à votre problème :
VB:
Dim CB() As New Classe1 'mémorise la variable

Sub USF()
Dim i As Byte, o As Object
For i = 1 To 5 'à adapter
    Set o = UserForm1.Frame1.Add("Forms.ComboBox.1")
    o.Name = "FTCBB" & i
    o.Left = 8
    o.Top = 16 + (i - 1) * 30
    o.List = [H2:H6].Value
    ReDim Preserve CB(1 To i)
    Set CB(i).CB = o
Next
UserForm1.Show
End Sub
Un module de classe est utilisé avec ce code :
VB:
Public WithEvents CB As MSForms.ComboBox

Private Sub CB_Change()
MsgBox CB 'pour tester
End Sub
 

Pièces jointes

  • Créer ComboBox(1).xlsm
    23.2 KB · Affichages: 1

Bob O' Deville

XLDnaute Junior
Re bonsoir.
Encore merci job 75 pour votre temps.
En fait ce que je souhaite, c'est l'étape d'après.
La procédure que vous m'avez proposer, crée des combobox dynamiques. Ce que j'ai fais. Ce que je n'arrive pas à faire, c'est comment créer une procédure qui s'appelerai FTCBB?_change() prenant en compte la combobox activé parmi toutes celles créées. (Dans l'exemple il y en a 5, mais ç pourrai être plus ou moins.)En gros peut-on intégre une variable dans le nom d'une procédure ? Si oui comment. Si non comment puis-je contourner le problème
Bien à vous
Bob
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Il est peut être possible de se passez d'un module de classe en déclarant en tête :
VB:
Private WithEvents CBxTravail As MSForms.ComboBox
Vous pourriez installer des procédures de prise en charge d'évènements pour ce truc.
Ça impliquerait juste d'être capable de faire Set CBxTravail = ?(La ComboBox dynamiquement créée adéquate) avant qu'elle ne change.
 

Bob O' Deville

XLDnaute Junior
Merci Drqnreb,

Concrètement ça donnerai quoi par exemple.
Je vous le demande parce que je maitrise pas du tout la syntaxe VBA. Et je sens que je vais passer des heures rien que pour comprendre qu'il aurait fallut mettre un point à un endroit plutôt qu'à un autre. Si je pouvais m'épargner ça, je vous en serais grandement reconnaissant.
 

Bob O' Deville

XLDnaute Junior
Bonjour Dranreb,
Je suis désolé mais soyez assuré qu'il n'y a rien d'insidieux dans ma démarche.

Voici donc le fichier en question
Bonjour.
Ç'aurait été à vous de joindre un fichier en premier, pas à nous.
Je commence à douter de la pertinence de la direction prise pour le but poursuivi.
 

Pièces jointes

  • TEST CBB CASCADE.xlsm
    88.4 KB · Affichages: 3
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Je n'avais pas vu que vous avez joins le fichier.
C'est bien ce que je pensais, je ferais ça avec un seul jeu de contrôles pour la saisie mais en les empilant dans une ListBox.
Attention je ne sais pas si l'UserForm apparait complet chez moi parce que j'ai eu deux références portées MANQUANT à décocher, dont une parce que je n'ai pas Outlook, et l'autre c'est AdHocReportingExcelClientLib.
Par ailleurs est-ce bien utile que ce soit dans un MultiPage ?
 

Bob O' Deville

XLDnaute Junior
Bonjour.
Je n'avais pas vu que vous avez joins le fichier.
C'est bien ce que je pensais, je ferais ça avec un seul jeu de contrôles pour la saisie mais en les empilant dans une ListBox.
Attention je ne sais pas si l'UserForm apparait complet chez moi parce que j'ai eu deux références portées MANQUANT à décocher, dont une parce que je n'ai pas Outlook, et l'autre c'est AdHocReportingExcelClientLib.
Par ailleurs est-ce bien utile que ce soit dans un MultiPage ?
Bonsoir Dranreb, et à tous ceux qui souhaite suivre cette conversation.
Pour plus de lisibilité je vous renvoi un nouveau fichier épuré.
Le contexte.
J'ai un formulaire. Lorsque l'on appuis sur le bouton "Nouv." une ligne de 2 comboBox et 3 texteox dynamiques appatrait.
1 On sélectionne une valeur dans la combo " Couleur"
2 On sélectionne une valeur dans la combo " Ref"
3 automatique une valeur apparait dans la textbox "Prix"
---- Jusque là TVB -------
Ce que je voudrais : Lorsque je rentre une valeur manuellement dant la Textbox "Qté", le produit des valeurs des Textbox "Prix" et "Qté" apparait dans la textbox "Total"
----- Et là je sèche------
Auriez-vous, s'il vous plait la possibilité de me proposer la formule miracle.

PS :pour remettre le formulaire à zero cliquez sur RESET


Merci par avance.
 

Pièces jointes

  • essai, creation label avec vba Modifié.xlsm
    34.4 KB · Affichages: 1

Discussions similaires

Statistiques des forums

Discussions
312 279
Messages
2 086 735
Membres
103 381
dernier inscrit
e.perichon@apco-technolog