Userform employés

alex67800

XLDnaute Impliqué
Bonsoir tout le monde.
Je m'entraine à nouveau à la macro.
J'ai trouvé un code interressant pour lister des employés.
Malheureusement quand je lance la macro j'ai systématiquement un message d'erreur 13 'incompatibilité de type' qui apparaît.
J'ai parcourut tout le code mais je ne vois pas d'ou cela peu venir.

Je vous joint le fichier en question.

Je vous remercie d'avance pour votre aide si pécieuse et efficace comme toujours.
 

Pièces jointes

  • employés.xls
    47 KB · Affichages: 116
Dernière édition:

bqtr

XLDnaute Accro
Re : Userform employés

Bonsoir alex67800

Remplace la macro Private Sub Affiche_Employes() par celle-ci :

Code:
Private Sub Affiche_Employes()
Dim rng As Range, ligne As Long
With ThisWorkbook.Worksheets("Employés")
    lstEmployes.Clear
    For ligne = 4 To .Range("A65536").End(xlUp).Row
        If .Cells(ligne, 2) <> "" Then lstEmployes.AddItem .Cells(ligne, 2) & " " & .Cells(ligne, 3)
    Next ligne
End With
End Sub

A+
 

alex67800

XLDnaute Impliqué
Re : Userform employés

Merci bqtr pour ton aide.
Pourrais-tu m'éclairer sur ce qui n'allait pas?
De plus USF se charge coorectement mais un autre problème survient maintenant
Private Sub Tri_Employes()
Dim rng As Range
'tri de la liste des employés sur le nom et le prénom
Set rng = Worksheets("Employés").Range("A3").CurrentRegion
rng.Sort Key1:=Range("B3"), Order1:=xlAscending, _
Key2:=Range("C3"), order2:=xlAscending, _
Header:=xlYes
End Sub
Le tri ne fonctionne pas!
J'ai erreur 1004
Référence de tri non valide. Vérifiez qu'elle se trouve bien parmiles donnéesà trier et que la zone Trier par n'est pas identique ou vide!!!!
 

Pièces jointes

  • employés.zip
    18.9 KB · Affichages: 61
Dernière édition:

bqtr

XLDnaute Accro
Re : Userform employés

Bonsoir Alex,

Excuse moi, je n'avais pas vu ta réponse :eek:

Il manque comme la première fois les points "." devant les Range ou Cells quand tu utilises l'instruction With/End With avec une feuille.

Si tu ne mets pas les points, Excel considère que tu tries sur la feuille active. Comme sur ta feuille "Services" qui est la feuille active, les colonnes B et C sont vides tu as l'erreur.

Code:
Private Sub Tri_Employes()

With Worksheets("Employés")
  .Range("A3").CurrentRegion.Sort Key1:=.Range("B4"), Order1:=xlAscending, _
   Key2:=.Range("C4"), Order2:=xlAscending, Header:=xlYes
End With

End Sub

A+
 

alex67800

XLDnaute Impliqué
Re : Userform employés

Bonsoir bqtr,
je te remercie à nouveau pour ton aide. en effet je n'avais pas fait attention.
Pour dire je tire ce code d'un manuel VBA excel 2003. Il est bourré d'erreur apparement.
Ca me parrait évidement une fois que tu me met sur la voie, et pourtant je suis passé à côté d'un détail qui en programmation a toute son importance.
Le fait d'avoir précisé worksheets ("employés) je pensais qu'il exécuterai sur cette feuille.
En tout cas encore une fois merci.
 

Discussions similaires

Réponses
9
Affichages
146

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 461
dernier inscrit
dams94