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

Effacements de ligne par fonction Find

  • Initiateur de la discussion Initiateur de la discussion néné06
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

néné06

XLDnaute Accro
Bonjour à toutes et à tous

Je souhaiterais par cette boucle ,supprimer toutes les lignes qui contiennent Combbox1.value, mais!!!!
Je n'arrive pas à trouver la commande qui me place le Range.Select aprés le Find.
j'ai établi ce code , qui évidement est incomplet??


Private Sub sup_ligne_du_nom_par_recherche()
' recherche la ligne qui comporte Combobox1.value
Set Ftn = Range("A2:A60000").Find(ComboBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
Do Until Ftn Is Nothing 'Jusqu'à plus de combobox1.value
.EntireRow.Select 'selection de la ligne?????? je reste en Range("A2")
Selection.Delete Shift:=xlShiftUp 'effacement de la ligne
Loop
End Sub


Merci pour votre aide.
 
Re : Effacements de ligne par fonction Find

Bonjour le Forum

J'ai entrée ce code qui correspond à mes attentes


Private Sub sup_ligne_du_nom_par_recherche()
Dim x As Range
Set x = Range("A1:A65000").Find(ComboBox1.Value, , xlValues, xlWhole, , , False)
Do Until x Is Nothing
A = x.Row
x.EntireRow.Delete
Set x = Range("A1:A65000").Find(ComboBox1.Value, , xlValues, xlWhole, , , False)
Loop
End Sub


Bon dimanche
 
Re : Effacements de ligne par fonction Find

Salut néné06 et le forum
D'autres solutions sont envisageables.
Ta solution sous un autre angle
Code:
Private Sub sup_ligne_du_nom_par_recherche()
Dim x As Range
Do
    Set x = Range("A:A").Find(ComboBox1, , xlValues, xlWhole, , , False)
    If x Is Nothing Then
        Exit Do
    Else
        Rows(x.Row).Delete
    End If
Loop
End Sub
On peut aussi envisager
Code:
Private Sub sup_ligne_du_nom_par_recherche()
ActiveSheet.AutoFilterMode = False
Rows(1).Insert
[A1].CurrentRegion.AutoFilter Field:=1, Criteria1:=ComboBox1
UsedRange.SpecialCells(xlCellTypeVisible).EntireRow.Delete
ActiveSheet.AutoFilterMode = False
Rows(1).Delete
End Sub
Filtrage de la plage sur A, puis suppression des lignes qui restent visibles. Mais ça dépend de l'organisation des données, avec des risques d'effacement de lignes si A n'est pas la colonne la plus grande, ou qu'elle a une cellule vide en plein milieu.
A+
 
Re : Effacements de ligne par fonction Find

bonsoir Gorfael

J'avais des problémes de syntaxe avec "Rows(x.Row).Delete"
Merci pour le tuyau
j'ai pris ce code qui tourne bien.


Private Sub sup_ligne_du_nom_par_recherche()
Dim x As Range
Set x = Range("A1:A65535").Find(ComboBox1.Value, , xlValues, xlWhole, , , False)
Do Until x Is Nothing
Rows(x.Row).Delete
Set x = Range("A1:A65535").Find(ComboBox1.Value, , xlValues, xlWhole, , , False)
Loop
End Sub

Merci !!!

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

L
Réponses
9
Affichages
1 K
A
Réponses
1
Affichages
1 K
R
Réponses
6
Affichages
3 K
M
Réponses
1
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…