Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

supprimer une ligne si une cellule contien la valeur X

2 réponses
Avatar
openfire
Bonjour,
j'ai une feuille de 5 colonnes et de 1200 lignes je voudrais supprimer les lignes qui contiennent des caractéres spécifiques (sa dépand chaque fois quel caractères) j'ai reussi a créer un bout de code sur internet qui a donné ceci:

Sub DelEditeur2()

Dim i As Integer
Dim Editeur As String
Editeur = InputBox("Veuillez entrer l'editeur à supprimer ?", "bienvenue", "moez")
'la valeur saisie est transmise à la variable Editeur
With ThisWorkbook.Sheets("13_02")
For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("A" & i).Value = Editeur Then
Rows(i).Delete
lig = lig + 1
'Comptons les lignes effacées
End If
Next i
MsgBox "J'ai effacer " & lig & " ligne(s) contenant l'expression : " _
& Editeur, vbOKOnly + vbInformation, "INFORMATION"
'Affichons le nombre de lignes effacées
End With

End Sub

et ceci ne supprime que les cellules contenant un mot spécifique donc si le mot est au milieu de la céllule sa le supprime pas
merci pour votre aide sachant que je suis plus php que vba donc mon niveau est super noob en VBA
merci

2 réponses

Avatar
MichD
Bonjour,

Cette procédure supprime les lignes entières où l'expression saisie
fait partie du contenu d'une cellule dans la colonne A:A et affiche
le nombre de lignes supprimées.

'--------------------------------------------------
Sub test()
Dim Editeur As Variant, Nb As Long

Editeur = Application.InputBox( _
Prompt:="Veuillez entrer l'editeur à supprimer ?", _
Title:="bienvenue", Type:=2)
If TypeName(Editeur) = "Boolean" Then Exit Sub

Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille à adapter
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AutoFilter field:=1, Criteria1:="*" & Editeur & "*"
Nb = Application.WorksheetFunction.Subtotal(3, .Cells) - 1
Set rg = .Range("_FilterDataBase")
rg.Offset(1).Resize(rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
.AutoFilter
End With
End With
If Nb <> 0 Then
MsgBox Nb & " lignes de supprimer."
End If
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------



MichD
--------------------------------------------
"openfire" a écrit dans le message de groupe de discussion :

Bonjour,
j'ai une feuille de 5 colonnes et de 1200 lignes je voudrais supprimer les
lignes qui contiennent des caractéres spécifiques (sa dépand chaque fois quel
caractères) j'ai reussi a créer un bout de code sur internet qui a donné ceci:

Sub DelEditeur2()

Dim i As Integer
Dim Editeur As String
Editeur = InputBox("Veuillez entrer l'editeur à supprimer ?", "bienvenue",
"moez")
'la valeur saisie est transmise à la variable Editeur
With ThisWorkbook.Sheets("13_02")
For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("A" & i).Value = Editeur Then
Rows(i).Delete
lig = lig + 1
'Comptons les lignes effacées
End If
Next i
MsgBox "J'ai effacer " & lig & " ligne(s) contenant l'expression : " _
& Editeur, vbOKOnly + vbInformation, "INFORMATION"
'Affichons le nombre de lignes effacées
End With

End Sub

et ceci ne supprime que les cellules contenant un mot spécifique donc si le mot
est au milieu de la céllule sa le supprime pas
merci pour votre aide sachant que je suis plus php que vba donc mon niveau est
super noob en VBA
merci
Avatar
DanielCo
Bonjour,
Essaie comme cecci :

Sub test()
Dim Plage As Range, c As Range
Dim Editeur As String
Editeur = InputBox("Veuillez entrer l'editeur à supprimer ?",
"bienvenue", "moez")

With ThisWorkbook.Sheets("13_02")
Set Plage = .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp))
Set c = Plage.Find(Editeur, , , xlPart)
Do While Not c Is Nothing
c.EntireRow.Delete
Set c = Plage.Find(Editeur, , , xlPart)
Loop
End With
End Sub

Daniel


Bonjour,
j'ai une feuille de 5 colonnes et de 1200 lignes je voudrais supprimer les
lignes qui contiennent des caractéres spécifiques (sa dépand chaque fois quel
caractères) j'ai reussi a créer un bout de code sur internet qui a donné
ceci:

Sub DelEditeur2()

Dim i As Integer
Dim Editeur As String
Editeur = InputBox("Veuillez entrer l'editeur à supprimer ?", "bienvenue",
"moez")
'la valeur saisie est transmise à la variable Editeur
With ThisWorkbook.Sheets("13_02")
For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("A" & i).Value = Editeur Then
Rows(i).Delete
lig = lig + 1
'Comptons les lignes effacées
End If
Next i
MsgBox "J'ai effacer " & lig & " ligne(s) contenant l'expression : " _
& Editeur, vbOKOnly + vbInformation, "INFORMATION"
'Affichons le nombre de lignes effacées
End With

End Sub

et ceci ne supprime que les cellules contenant un mot spécifique donc si le
mot est au milieu de la céllule sa le supprime pas
merci pour votre aide sachant que je suis plus php que vba donc mon niveau
est super noob en VBA
merci