Bonjour à tous !
Me voilà encore, et je coince :'(
Je dois créer un programme qui doit supprimer des données dans ma feuille "base_de_donnees". Pour cela je sélectionne dans la combobox le groupe (colonne A) et dans la listbox, le sous-groupe à supprimer (colonne B).
La suppression se fait uniquement si la cellule en A = combobox et si la cellule en B adjacente = listbox.
J'ai essayé via une méthode recherche ... le résultat n'est pas satisfaisant puisque le programme me supprime uniquement la moitié des données (certainement dû à un conflit avec la suppression des doublons de la combobox).
J'ai donc voulu passer par une méthode autre avec des filtres de sélection. Mais voilà que je rencontre le même soucis. J'ai donc voulu inséré le code "FindNext" mais le résultat n'est pas là...
Pourriez vous jeter un œil à mon code ?
J'ai une erreur d'exécution 1004 : impossible de lire la propriété Findnext de la classe range
Je vous remercie d'avance de votre aide !
Me voilà encore, et je coince :'(
Je dois créer un programme qui doit supprimer des données dans ma feuille "base_de_donnees". Pour cela je sélectionne dans la combobox le groupe (colonne A) et dans la listbox, le sous-groupe à supprimer (colonne B).
La suppression se fait uniquement si la cellule en A = combobox et si la cellule en B adjacente = listbox.
J'ai essayé via une méthode recherche ... le résultat n'est pas satisfaisant puisque le programme me supprime uniquement la moitié des données (certainement dû à un conflit avec la suppression des doublons de la combobox).
J'ai donc voulu passer par une méthode autre avec des filtres de sélection. Mais voilà que je rencontre le même soucis. J'ai donc voulu inséré le code "FindNext" mais le résultat n'est pas là...
Pourriez vous jeter un œil à mon code ?
Code:
Private Sub CommandButton1_Click()
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String
Sheets("Base_de_Donnees").Select
Cells.Select
Range("A1").Activate
Selection.AutoFilter
''Je voudrais lui dire de filtrer jusque la dernière cellule pleine ....
ActiveSheet.Range("$A$1:$A$3452").AutoFilter Field:=1, Criteria1:=ComboBox1.Value
ActiveSheet.Range("$A$1:$A$3452").AutoFilter Field:=2, Criteria1:=ListBox1.List(n)
With Worksheets("Base_de_donnees") 'prend en compte l'onglet
pa = "" 'réinitialise la variable pa
Set r = .Cells.Find(ComboBox1.Value, , xlValues, xlWhole) 'définit la recherche
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
pa = r.Address 'définit la variable pa
Do 'exécute
r.Select
Selection.EntireRow.Delete
Set r = .Cells.FindNext(r) 'reféfinit la recherche r (Prochaine occurrence)
Loop While Not r Is Nothing And r.Address <> pa
End If
End With
End sub
J'ai une erreur d'exécution 1004 : impossible de lire la propriété Findnext de la classe range
Je vous remercie d'avance de votre aide !