Combobox et suppresion de ligne

Bonsoir à tous,

Je cherche à supprimer des lignes selon le(s) choix fait(s) à l'aide des comboboxes de l'usf :

1. si on ne choisit que la localisation, ne seront supprimées que les lignes pour lesquelles la localisation ne correspond pas

2. si on choisit la localisation et le bureau, on supprime les lignes ne correspondant pas à ces 2 choix

3. enfin si les 3 combobox sont remplies, on supprime les lignes ne respectant pas le choix fait.

J'ai besoin de votre aide, je n'y arrive pas... Le code que j'ai écrit ne fonctionne pas...

Merci beaucoup,

Bonne soirée,

Amicalement

Bonjour

Bonne année

Pourquoi utilises tu les données de la feuille "Base" pour effacer des lignes dans la feuille "Feuil1" ?

Il risque de ne pas y avoir concordance

Exemple France - 324 - Patron1

A tester

Bonsoir Banzai64,

Bonne année à toi aussi et à tous tes proches !!

Merci beaucoup pour ton aide !

Pourquoi utilises tu les données de la feuille "Base" pour effacer des lignes dans la feuille "Feuil1" ?

En fait, dans mon projet, les 2 feuilles sont dans 2 classeurs différents ! La Feuil1 est issue d'une extraction de données, la feuille "Base" est dans un fichier contenant le reste de mon projet. Je les ai regroupées ici pour simplifier ma demande.

J'ai modifié ton code ainsi :

Option Explicit

Dim Ws As Worksheet

Private Sub CbbBureau_Change()
Dim Mondico As Object
Dim J As Long

  Me.CbbPatron.Clear
  If Me.CbbBureau.ListIndex = -1 Then Exit Sub

  Set Mondico = CreateObject("Scripting.Dictionary")
  With Me.CbbPatron
    .Clear
    For J = 3 To Ws.Range("H" & Rows.Count).End(xlUp).Row
      If Ws.Range("F" & J) Like Me.CbbLocalisation And _
          Ws.Range("G" & J) Like Me.CbbBureau Then
        Mondico(Ws.Range("H" & J).Value) = ""
      End If
    Next J
    If Mondico.Count > 0 Then
      .List = Mondico.keys
      If .ListCount = 1 Then .ListIndex = 0
    End If
  End With

End Sub

Private Sub CbbLocalisation_Change()
Dim Mondico As Object
Dim J As Long

  Me.CbbBureau.Clear
  Me.CbbPatron.Clear
  If Me.CbbLocalisation.ListIndex = -1 Then Exit Sub

  Set Mondico = CreateObject("Scripting.Dictionary")
  With Me.CbbBureau
    .Clear
    For J = 3 To Ws.Range("G" & Rows.Count).End(xlUp).Row
      If Ws.Range("F" & J) Like Me.CbbLocalisation Then
        Mondico(Ws.Range("G" & J).Value) = ""
      End If
    Next J
    If Mondico.Count > 0 Then
      .List = Mondico.keys
      If .ListCount = 1 Then .ListIndex = 0
    End If
  End With
End Sub

Private Sub CommandButton1_Click()
' Entrer
Dim J As Long

  For J = Ws.Range("F" & Rows.Count).End(xlUp).Row To 3 Step -1
   If Not Ws.Range("F" & J) Like Me.CbbLocalisation & "*" And _
       Not Ws.Range("G" & J) Like Me.CbbBureau & "*" And _
       Not Ws.Range("H" & J) Like Me.CbbPatron & "*" Then
       Rows(J).Delete
    End If
  Next J
  Init_ComBo_Localisation
End Sub

Private Sub UserForm_Initialize()
  Set Ws = Sheets("Feuil1")
  Init_ComBo_Localisation
End Sub

Sub Init_ComBo_Localisation()
Dim Mondico As Object
Dim J As Long

  Me.CbbBureau.Clear
  Me.CbbPatron.Clear

  Set Mondico = CreateObject("Scripting.Dictionary")
  With Me.CbbLocalisation
    .Clear
    For J = 3 To Ws.Range("F" & Rows.Count).End(xlUp).Row
      Mondico(Ws.Range("F" & J).Value) = ""
    Next J
    If Mondico.Count > 0 Then
      .List = Mondico.keys
      If .ListCount = 1 Then .ListIndex = 0
    End If
  End With
End Sub

afin de ne conserver que les lignes remplissant les critères entrés dans les comboboxes.

J'aurais une autre requête : parfois, j'aurais besoin de ne conserver que les lignes contenant la même localisation (dans ce cas seule CbbLocalisation est renseignées). Et parfois, celles contenant la même localisation et le même bureau (CbbLocalisation et CbbBureau sont remplies, CbbPatron est vide)... C'est possible ?

Merci encore et tous mes voeux !

Bonne soirée,

Amicalement

Bonsoir

Si je comprends bien tu enlèves les lignes qui ne correspondent pas aux choix faits

Fichier de test à vérifier

Bonjour Banzai64,

Merci beaucoup !! C'est parfait, exactement ce que je cherchais !

Merci mille fois,

Bonne journée !

Rechercher des sujets similaires à "combobox suppresion ligne"