VBA - Problème boucle avec un Find
Résolu
sygmajf99
Messages postés
18
Statut
Membre
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
J'ai 2 colonnes de données, et je désire faire un nettoyage des lignes vides laissées par l'utilisateur. Je veux éviter de faire un filtre.
Voici ce que j'ai débuté comme code. L'obstacle que je rencontre est lorsque je suis rendu à faire une recherche des x dans la colonne, je voudrais faire une boucle pour dire : continue de supprimer les lignes appropriées tant et aussi longtemps que tu trouves des "x".
Comment faire ? Voici mon code. Merci.
Sub EnleverBlanc()
On Error Resume Next
Dim PremLigne As Integer
Dim DernLigne As Integer
Dim LigneDelete As Integer
DernLigne = Range("A65536").End(xlUp).Row
For PremLigne = 5 To DernLigne
If Cells(PremLigne, 1).Value = "" And Cells(PremLigne, 2).Value = "" Then
Cells(PremLigne, 3).Value = "x"
Else
'sortir
End If
Next PremLigne
Columns("C:C").Select
Selection.Find(What:="x", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
LigneDelete = ActiveCell.Row
Rows(LigneDelete).Select
Selection.Delete Shift:=xlUp
End Sub
J'ai 2 colonnes de données, et je désire faire un nettoyage des lignes vides laissées par l'utilisateur. Je veux éviter de faire un filtre.
Voici ce que j'ai débuté comme code. L'obstacle que je rencontre est lorsque je suis rendu à faire une recherche des x dans la colonne, je voudrais faire une boucle pour dire : continue de supprimer les lignes appropriées tant et aussi longtemps que tu trouves des "x".
Comment faire ? Voici mon code. Merci.
Sub EnleverBlanc()
On Error Resume Next
Dim PremLigne As Integer
Dim DernLigne As Integer
Dim LigneDelete As Integer
DernLigne = Range("A65536").End(xlUp).Row
For PremLigne = 5 To DernLigne
If Cells(PremLigne, 1).Value = "" And Cells(PremLigne, 2).Value = "" Then
Cells(PremLigne, 3).Value = "x"
Else
'sortir
End If
Next PremLigne
Columns("C:C").Select
Selection.Find(What:="x", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
LigneDelete = ActiveCell.Row
Rows(LigneDelete).Select
Selection.Delete Shift:=xlUp
End Sub
4 réponses
-
bonjour
à adapter en modifiant les constantes
Public Sub supprime_lignes_vides() Const lideb = 2 Const NF = "Feuil1" Dim li As Long, lifin As Long With Sheets(NF) lifin = .Range("A65536").End(xlUp).Row For li = lifin To lideb Step -1 If .Cells(li, 1).Value = "" And Cells(li, 2).Value = "" Then Rows(li).Delete End If Next li End With End Sub
bonne suite -
-
-
re
pour faire propre, il manque un point '.' devant Rows(li).Delete
.Rows(li).Delete
bonne suite