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

lister des noms avec un Userform

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 !

eduraiss

XLDnaute Accro
Bonjour au forum

en grattant dans les exemples du forum j'ai trouver un fichier qui pourrait me convenir, mais je ne sais pas l'adapter

Sur une feuille un Userform qui doit me donner suivant un liste le noms des personnes ayant cette compétences

Je joins un fichier

Merci a vous
 

Pièces jointes

Re : lister des noms avec un Userform

Bonjour eduraiss et le forum,

J'ai mis au point l'affichage dans l'userform.

1- Le combobox ne contient que les valeurs présentes et dans un ordre alpha croissant.
2- La textbox est remplacé par une listbox.

3- Quand au chemin d'accès, je n'ai pas compris à quoi il devait servir !

Cordialement

Bernard
 

Pièces jointes

Dernière édition:
Re : lister des noms avec un Userform

Bonjour le forum et a toi CBernardT


le chemin d'acces me permet d'ouvrir un fichier la les competences sont la feuille est "interim pour eric" j'ai essayer d'adapter ton code mais cela ne fonctionne pas sa bug
sinon pour le reste c'est super

Merci

Private Sub UserForm_Initialize()
Dim Tablo, i As Integer, j As Integer, Num As Variant
Workbooks.Open Filename:="G:\GESTION EQUIPES\BASE EQUIPES\BASE PERSONELS.xls"
With Sheets(" INTERIM POUR ERIC").Select
'With Sheets("Données")
' Définition du tableau
Tablo = .Range("C2:C" & .Range("C65536").End(xlUp).Row)
'Elimination des codes en doublons
For i = 1 To UBound(Tablo) - 1
If Tablo(i, 1) <> "" Then
For j = i + 1 To UBound(Tablo)
If Tablo(j, 1) <> "" Then
If Tablo(j, 1) = Tablo(i, 1) Then
Tablo(j, 1) = ""
Else
If Tablo(j, 1) < Tablo(i, 1) Then 'Mise en ordre Croissant
Num = Tablo(i, 1)
Tablo(i, 1) = Tablo(j, 1)
Tablo(j, 1) = Num
End If
End If
End If
Next j
End If
Next i
End With
' Attribution des valeurs à la liste
For i = 1 To UBound(Tablo)
If Tablo(i, 1) <> "" Then
ComboBox1.AddItem Tablo(i, 1)
End If
Next i

End Sub
Private Sub ComboBox1_Change()
Dim Tablo, i As Integer

ListBox1.Clear
Workbooks.Open Filename:="G:\GESTION EQUIPES\BASE EQUIPES\BASE PERSONELS.xls"
Sheets(" INTERIM POUR ERIC").Select

'With Sheets("Données")
Tablo = .Range("A2:C" & .Range("C65536").End(xlUp).Row)
' Attribution des noms en fonction des compétences
For i = 1 To UBound(Tablo)
If Tablo(i, 3) = ComboBox1 Then
ListBox1.AddItem Tablo(i, 1)
End If
Next i
End With
End Sub
 
Re : lister des noms avec un Userform

Re,

Essayes ce code :

Private Sub UserForm_Initialize()
Dim Tablo, i As Integer, j As Integer, Num As Variant

' Ouverture du fichier contenant la feuille contenant le tableau
Workbooks.Open Filename:="G:\GESTION EQUIPES\BASE EQUIPES\BASE PERSONELS.xls"
' Désignation de la feuille du classeur contenant le tableau
With Workbooks("BASE PERSONELS.xls").Sheets(" INTERIM POUR ERIC")
' Définition du tableau
Tablo = .Range("C2:C" & .Range("C65536").End(xlUp).Row)
'Elimination des codes en doublons
For i = 1 To UBound(Tablo) - 1
If Tablo(i, 1) <> "" Then
For j = i + 1 To UBound(Tablo)
If Tablo(j, 1) <> "" Then
If Tablo(j, 1) = Tablo(i, 1) Then
Tablo(j, 1) = ""
Else
If Tablo(j, 1) < Tablo(i, 1) Then 'Mise en ordre Croissant
Num = Tablo(i, 1)
Tablo(i, 1) = Tablo(j, 1)
Tablo(j, 1) = Num
End If
End If
End If
Next j
End If
Next i
End With
' Attribution des valeurs à la liste
For i = 1 To UBound(Tablo)
If Tablo(i, 1) <> "" Then
ComboBox1.AddItem Tablo(i, 1)
End If
Next i

End Sub
Private Sub ComboBox1_Change()
Dim Tablo, i As Integer

' Effacement de la liste précédente
ListBox1.Clear
' Désignation de la feuille du classeur contenant le tableau
With Workbooks("BASE PERSONELS.xls").Sheets(" INTERIM POUR ERIC")
Tablo = .Range("A2:C" & .Range("C65536").End(xlUp).Row)
' Attribution des noms en fonction des compétences
For i = 1 To UBound(Tablo)
If Tablo(i, 3) = ComboBox1 Then
ListBox1.AddItem Tablo(i, 1)
End If
Next i
End With
End Sub

Cordialement

Bernard
 
Dernière édition:
Re : lister des noms avec un Userform

RE merci bernard c'est presque parfait

Le seul problème est que losque je clique sur la croix pour fermer l'Userform
je me positionne sur la feuille du classeur Workbook("BASE PERSONELS.xls").Sheets(" INTERIM POUR ERIC")

je voudrais avoir la posibilite de soit rester sur le fichier ou le fermer

si tu peux faire quelques chose

merci
 
Re : lister des noms avec un Userform

Re,

Ajoutes cette macro dans le module userform1 :

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Application.DisplayAlerts = False
Workbooks("BASE PERSONELS.xls").Close
Application.DisplayAlerts = True
End Sub

Cordialement

Bernard
 
Dernière édition:
- 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
2
Affichages
187
  • Question Question
XL 2019 User Form
Réponses
9
Affichages
526
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…