Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 problème de rangement VBA

halimhamdi

XLDnaute Junior
Bonjour
J'ai un problème sélection des motifs selon les types pour un userform : je veux quand je selectionne un type de ce tableau j'aurai seulement les motifs lié de ce type comme indiqué dans ce tableau dans le userform
 

Pièces jointes

  • classeur .xlsm
    170.7 KB · Affichages: 8

xUpsilon

XLDnaute Accro
Bonjour,

Une possibilité :
- nommer les plages suivant le type (par exemple nommer la plage de Maladie -> Absence autorisée en Absence)
- indiquer comme source de la listbox Motif la plage nommée Absence

Bonne journée,
 

job75

XLDnaute Barbatruc
Bonjour halimhamdi, xUpsilon, le forum,

La feuille "config" n'est pas cohérente, il y a 2 tableaux avec 2 listes différentes pour TYPE.

Mais voyez le fichier joint et ces macros qui utilisent la 2ème liste :
VB:
Private Sub ComboBox1_Enter()
Dim tablo, i&
ComboBox1.Clear
ComboBox3.Clear
ComboBox3 = ""
tablo = Sheets("config").[A17].CurrentRegion.Columns(1)
For i = 2 To UBound(tablo)
    If tablo(i, 1) <> "" Then ComboBox1.AddItem tablo(i, 1)
Next
End Sub

Private Sub ComboBox3_Enter()
Dim c As Range
If ComboBox1.ListIndex = -1 Then ComboBox3.Clear: Exit Sub
Set c = Sheets("config").[A17].CurrentRegion.Columns(1).Find(ComboBox1, , xlValues, xlWhole)
ComboBox3.List = c(1, 2).Resize(c.MergeArea.Count, 2).Value  'au moins 2 éléments
End Sub
Edit : j'ai aussi modifié le code pour la date :
VB:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2 = "" Then Exit Sub
On Error Resume Next
If Not IsDate(TextBox2) Or Year(TextBox2) < 1900 Then
    Cancel = True
    MsgBox "Le format de date n’est pas valide"
    TextBox2 = ""
End If
End Sub
A+
 

Pièces jointes

  • classeur .xlsm
    177 KB · Affichages: 7
Dernière édition:

Discussions similaires

Réponses
5
Affichages
321
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…