Recherche par ComboBox

crackwood01

XLDnaute Nouveau
Bonjour voilà plusieurs heures déjà que j'essaye et je n'ai toujours pas réussi à programmer ce dont j'ai besoin.

J'ai un petit tableau dans lequelle se retrouve plusieurs donnée.
Une colonne particulière se nomme: Chauffeur

Je veux générer dans une ComboBox tout les nom qui se retrouve dans cette colonne SANS les doublons.

De plus, j'aimerais que suite à la sélection d'un nom, pouvoir copier et coller TOUTES les lignes dans lesquelles se retrouvent ce nom vers une autre feuille.

Problême No1. J'arrive à générer la combobox mais je n'arrive pas à effacer les Doublons.
Problême No2. J'arrive à sélectionner une ligne à la fois mais pas toutes d'un coup.

je joint un petit fichier qui aidera a comprendre
 

Pièces jointes

  • Planning.xlsm
    78.3 KB · Affichages: 30
  • Planning.xlsm
    78.3 KB · Affichages: 37

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Recherche par ComboBox

Bonjour crackwood01,

Un essai dans le fichier joint (on copie de la feuille "Liste" vers la feuille "Bon-Chauffeur").

Edit : la ligne On Error Resume Next doit pouvoir être supprimée.

VB:
Option Explicit

Private Sub UserForm_Initialize()
Dim tablo, dico, i&
  With Worksheets("Liste")
    If .AutoFilterMode Then .Cells.AutoFilter
      tablo = .Range("L3", .Range("L" & .Rows.Count).End(xlUp)).Value
      Set dico = CreateObject("scripting.dictionary")
      For i = 1 To UBound(tablo): dico(tablo(i, 1)) = "": Next i
      ComboBox1.List = dico.keys
  End With
End Sub

Private Sub CommandButton1_Click()
Dim n, xrg As Range
  Application.ScreenUpdating = False
  With Worksheets("Liste")
    If .AutoFilterMode Then .Cells.AutoFilter
    n = .Range("L" & Rows.Count).End(xlUp).Row
    On Error Resume Next
    .Range("a2:o" & n).AutoFilter Field:=12, Criteria1:=ComboBox1
    Set xrg = .Range("a2:o" & n).SpecialCells(xlCellTypeVisible)
      With Worksheets("Bon-Chauffeur")
        .Range("a2:o" & 21).EntireRow.ClearContents
        xrg.Copy .Range("a2")
        MsgBox "La copie de " & .[a2].CurrentRegion.Rows.Count - 1 & _
               " ligne(s) de donnée est terminée.", vbInformation
      End With
    If .AutoFilterMode Then .Cells.AutoFilter
  End With
  Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • crackwood01- Planning- v1.xlsm
    81.5 KB · Affichages: 34
Dernière édition:

Discussions similaires

Réponses
9
Affichages
702

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz