Userform: ComboBox déterminé par un autre ComboBox [résolu]

Volkom117

XLDnaute Nouveau
Bonjour à tous,

Voilà. Pour simplifier la navigation dans un dossier de dossiers excel, j'ai eu envie de faire un userform. Mais jamais auparavant, je n'avais fais ces choses là me cantonnant à un usage simple d'excel. J'ai donc deux grands problèmes outre le fait que je ne sais pas programmer.

D'abord, j'aimerais que dans l'userform, il y ait deux ComboBox. Le premier influençant les choix possibles pour le second. Si dans le premier ComboBox, j'ai par exemple q1, je veux que seul apparaisse les références de q1. Si vous ouvrez l'excel joint vous verrez que j'ai essayé les codes qui me paraissait les plus abordables mais en vain.

Second problème, si j'arrive à résoudre le problème numéro 1, j'aimerais que lorsque que je clique sur OK, cela ouvre directement la fiche excel qui y fait référence. J'ai trouvé un code (code+chemin à suivre pour trouver l'excel) sur le net. Cependant, ce code avec chemin, je le place dans userform_initialize ce qui m'ouvre directement la page excel alors qu'il faudrait que cela se produise lorsque que l'on clique OK, après sélection de la fiche souhaitée dans le ComboBox.


Voilà mes problèmes. N'hésitez pas à m'informer si cela est trop compliqué à réaliser pour un néophyte car en effet, je ne vous demande pas de faire mon travail mais simplement de me mettre sur la voie.

Je signale par ailleurs que lors de la visualisation du code, il faut aller dans userform2 (j'ai fait plein de tentatives:)).


Voilà. Cordialement Volkom117.
 

Pièces jointes

  • Recherche.xlsm
    21.4 KB · Affichages: 38
  • Recherche.xlsm
    21.4 KB · Affichages: 38
  • Recherche.xlsm
    21.4 KB · Affichages: 39
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Userform: ComboBox déterminé par un autre ComboBox

Bonjour Volkom117,

Essayer ce code dans le module de code de UserForm2:
VB:
Option Explicit

Private Sub UserForm_initialize()
  With ComboBox3
   .AddItem "Q1": .AddItem "Q2": .AddItem "Q3"
   .AddItem "Q4": .AddItem "Q5": .AddItem "Q6"
   .AddItem "Q7": .AddItem "Q8": .AddItem "Q9"
   .AddItem "Q10": .AddItem "Q11": .AddItem "Q12"
 End With
End Sub

Private Sub ComboBox3_Change()
  With ComboBox2
  .Clear
  If ComboBox3 = "Q1" Then
    .AddItem "450": .AddItem "451": .AddItem "452"
    .AddItem "507": .AddItem "502": .AddItem "1015"
  End If
  If .ListCount >= 1 Then
    SendKeys "%{DOWN}"
    .SetFocus
  End If
  End With
End Sub

Private Sub button_Click()
  If ComboBox3.ListIndex = -1 Then
    MsgBox "Aucun quartier n'a pas été sélectionné.", vbInformation
    ComboBox3.SetFocus
    Exit Sub
  ElseIf ComboBox2.ListIndex = -1 Then
    MsgBox "Aucun local n'a pas été sélectionné.", vbInformation
    ComboBox2.SetFocus
    Exit Sub
  Else
    MsgBox ComboBox3.Text & " et " & ComboBox2.Text & " ont été choisis."
    Unload Me
  End If
End Sub
 
Dernière édition:

Volkom117

XLDnaute Nouveau
Re : Userform: ComboBox déterminé par un autre ComboBox

Bonjour mapomme, le forum,

Le code fait bien ce que je voulais faire. Merci pour votre aide.

Je vais essayer d'étendre cela aux autres valeurs. Je pense pouvoir y arriver.

Je vais également tenter l'ouverture des pages. Pour le coup, je ne suis pas du tout sûr d'y arriver. Mais vous m'avez donner de la suite dans les idées.

Encore merci.

Cordialement, Volkom117
 

Volkom117

XLDnaute Nouveau
Re : Userform: ComboBox déterminé par un autre ComboBox

Voilà, Voilà, tout a été résolu.

J'avais un peu d'appréhension en posant ma question car en effet, ma question a certainement déjà était posé. Cependant, je ne comprenais pas les codes des sujets dont le titre ressemblait fort au mien.

Mais je ne regrette pas. Le code que vous m'avez transmis est très lisible à mes yeux et ça me donne le sentiment d'avoir progressé (même si finalement j'ai rien fait :)). Je pense même à partir pour d'autres aventures VBA. Bref.

Cordialement, Volkom117
 

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 351
Membres
103 824
dernier inscrit
frederic.marien@proximus.