[VBA] Userform dynamic- comment proceder?

  • Initiateur de la discussion Initiateur de la discussion G@mbit
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G@mbit

XLDnaute Nouveau
Salut à tous!

Me voilà encore collé sur un projet excel.

J'aimerai mettre en place un userform dans un fichier déja existant (une base de données) regroupant des "défauts".
pour illustrer, cette BdD contient 3 défauts: A, B et C.
cependant, chaque défaut peut se manifester sous plusieurs formes, ce qui me donne:
A.1, A.2, A.3, B.1, B.2, C.1, C.2, C.3, C.4, C.5, C.6 etc etc...
Mon objectif est de "brider" l'utilisateur en l'empechant de selectionner le défaut A et d'y accoller par exemple un C.1 (je précise que je dois obligatoirement séparer le défaut et la forme).

De cette maniere, j'aimerais rendre dynamique des Combobox:
En selectionnant dans une premiere ComboBox le défaut A, la seconde ComboBox ne lui permet plus que de selectionner les formes A.1, A.2, A.3.....
L'objectif étant de stopper les erreurs de saisies.
Précision: il ne m'est pas possible d'utiliser des checkbox car j'ai trop de défauts et de causes différentes.

Ma question:
Est-ce possible?
Comment?

Merci d'avance!
 
Re : [VBA] Userform dynamic- comment proceder?

Super, c'est exactement ce que je chercher à faire.
Dim f
Private Sub UserForm_Initialize()
Set f = Sheets("BD")
Set d = CreateObject("Scripting.Dictionary")
For Each c In f.Range("a2:a" & f.[a65000].End(xlUp).Row)
d.Item(c.Value) = ""
Next c
Me.ComboBox1.List = d.keys
End Sub

Private Sub ComboBox1_Change()
Me.ComboBox2.Clear
i = 0
For Each c In f.Range("a2:a" & f.[a65000].End(xlUp).Row)
If c = Me.ComboBox1 Then
Me.ComboBox2.AddItem c.Offset(0, 1)
Me.ComboBox2.List(i, 1) = c.Offset(0, 2)
i = i + 1
End If
Next c
Me.ComboBox2.SetFocus
SendKeys "{F4}"
End Sub

Private Sub ComboBox2_click()
Me.adresse = Me.ComboBox2.Column(1)
End Sub

Par contre, je ne comprends rien au programme (donc pas facile de l'adapter).

peut etre peux tu me l'expliquer?
 
Re : [VBA] Userform dynamic- comment proceder?

Autre question:

Dans le cas où j'ajoute une notion de temps, je souhaiterais faire en sorte que le défaut A soit obligatoirement supérieur ou égal à 5 minutes et le B obligatoirement inférieur à 5.
Comment faire pour que ces conditions soient obligatoirement respectées (si NOK, un message d'alerte apparait)?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
38
Affichages
1 K
Réponses
21
Affichages
2 K
Réponses
1
Affichages
630
Retour