Ricky_77
Messages postés2Date d'inscriptionvendredi 4 janvier 2019StatutMembreDernière intervention 4 janvier 2019
-
4 janv. 2019 à 03:40
cs_Le Pivert
Messages postés7902Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention14 novembre 2023
-
5 janv. 2019 à 10:59
Bonjour tout le monde,
Je suis en train de créer un Userform avec 2 ComBox en cascade. J'ai essayé 2-3 manières de faire chercher des solution sur le forum et sur Google, mais je n'arrive pas à trouvé le bon code en feuilletant différents forum. Je suis débutant et j'ai office 2016.
Mon problème est _: j'ai une feuille nommée BaseDonnee qui comporte un bouton ou il y a une macro pour ouvrir un USF (NFormulaire) dans cet Userform j'ai un premier combox (C-Dep) ou je peux choisir le département en question DriveIn, Bois; peinture, etc et j'aimerais associer le nom des personnes de c'est différents secteurs dans le Combox 2 (NomCol)
J'ai créé une Feuille (Employe) ou j'ai noté en colonne les différentes valeurs et j'ai définis des noms par colonnes. Ces colonnes sont dynamique pour pouvoir ajouter ou retirer des noms de collaorateurs.
Pouvez-vous m'aider à résoudre ce problème? Et, d'avance, un grand merci.
en annexe le fichier, une image et le code qui ne fonctionne pas.
Private Sub C_Dep_Change()
'Combobox département
If C_Dep.Value = "" Then Exit Sub
NomCol.Clear
Dim NomRange As String
NomRange = CaracSpec(C_Dep.Value)
If NomDefini(NomRange) Then
' NomCol = combox nom Col.
NomCol.List = Application.Transpose(Range(NomRange))
Else
NomCol.AddItem """Aucun nom"""
End If
End Sub
Function NomDefini(Nom As String) As Boolean
Dim Noms As Name
NomDefini = False
For Each Noms In ThisWorkbook.Names
If Noms.Name = Nom Then NomDefini = True: Exit Function
Next Noms
End Function
Function CaracSpec(Nom As String) As String
CaracSpec = Replace(Nom, " ", "_")
CaracSpec = Replace(CaracSpec, "-", "_")
End Function
Ricky_77
Messages postés2Date d'inscriptionvendredi 4 janvier 2019StatutMembreDernière intervention 4 janvier 2019 4 janv. 2019 à 12:56
Bonjour vb95,
J'espère que ce sera mieu ainsi !
Merci pour votre aide.
Je reinscrit le code comme indiqué sur le lien que vous m'avez donné :
Private Sub NFormulaire_Initialize()
' C_dep :nom de la combox Secteur
C_Dep.Clear
C_Dep.List = Application.Transpose(Range("Depart"))
NomCol.Clear
End Sub
Private Sub C_Dep_Change()
'Combobox département
If C_Dep.Value = "" Then Exit Sub
NomCol.Clear
Dim NomRange As String
NomRange = CaracSpec(C_Dep.Value)
If NomDefini(NomRange) Then
' NomCol = combox nom Col.
NomCol.List = Application.Transpose(Range(NomRange))
Else
NomCol.AddItem """Aucun nom"""
End If
End Sub
Function NomDefini(Nom As String) As Boolean
Dim Noms As Name
NomDefini = False
For Each Noms In ThisWorkbook.Names
If Noms.Name = Nom Then NomDefini = True: Exit Function
Next Noms
End Function
Function CaracSpec(Nom As String) As String
CaracSpec = Replace(Nom, " ", "_")
CaracSpec = Replace(CaracSpec, "-", "_")
End Function
Private Sub UserForm_Click()
End Sub
4 janv. 2019 à 12:56
J'espère que ce sera mieu ainsi !
Merci pour votre aide.
Je reinscrit le code comme indiqué sur le lien que vous m'avez donné :