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

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 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

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
205
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…