Rapport de message :*
 

Re: Questions userform

Titre du sujet : Re: Questions userform
par myDearFriend! le 16/07/2008 19:24:06

Bonsoir lannou, le Forum,

Tout d'abord, je te déconseille en effet l'utilisation de la propriété RowSource pour garnir ta ComboBox. J'ai, pour ma part, abandonné depuis longtemps le recours à cette propriété, trop restrictive et source de nombreux problèmes.

L'utilisation de la méthode AddItem est bien plus souple.

Le code que tu as trouvé est forcément bon puisqu'il s'agit d'une méthode fameuse de J.Walkenbach (adaptée d'une astuce de J.G. Hussey) permettant en effet de supprimer facilement les doublons d'une liste d'éléments.

Que ton code ne fonctionne pas est limite un mystère, car je viens de le tester avec succès. J'y ai toutefois apporté une ou deux "petites" modifications comme suit :
Option Explicit

Private Sub UserForm_Initialize()
' On actualise la liste de choix des n° de phase avec ceux qui ont déjà été rentrés :
Dim Cell As Range
Dim NoDupes As New Collection
Dim Item As Variant
    On Error Resume Next
    For Each Cell In Sheets("Feuil1").Range("A9:A2000")
        NoDupes.Add Cell.Value, CStr(Cell.Value)
    Next Cell
    On Error GoTo 0
    ' On ajoute les éléments non dupliqués dans la zone de liste de ComboBox3 :
    For Each Item In NoDupes
        ComboBox3.AddItem Item
    Next Item
End Sub
 
J'ai simplement ajouté la déclaration de variable Item (as Variant), précisé Sheets("Feuil1") - à adapter - devant ton Range("A9:A2000") et supprimé la notion de Création_tâche qui, je suppose, doit être le nom de ton Userform et n'est pas obligatoire ici (conseil : évite les caractères accentués dans le nom des objets VBA).

Pour peu que ton code est bien situé dans le module de code du Userform et que ta ComboBox se nomme bien ComboBox3, il n'y a pas de raison pour que ça ne fonctionne pas...

Pour comprendre le fonctionnement de ce morceau de code, l'idéal serait que tu lises les commentaires originaux de son auteur  JW (dans le lien que je mets plus haut). Si tu ne comprends toujours pas, alors j'essaierai de t'apporter le complément d'info.

Pour insérer le code VBA dans tes posts :
  1. Place d'abord le curseur d'édition à l'endroit où tu souhaites insérer ton code
  2. Clique sur le bouton d'insertion de code dans la barre d'outils
  3. Colle ton code dans le popup qui apparait et valide par OK.

Cordialement,