VBA : Supprimer plusieurs lignes
Résolu
New_VBA_User
-
New_VBA_User -
New_VBA_User -
Bonjour,
J'aimerai faire un filtre avec un bouton pour supprimer des lignes qui contiennent le mot.
"Poids de contrôle" sachant que dans mon classeur j'ai plusieurs lignes qui ont le mot Poids de contrôle,
ex: Poids de contrôle 12
Poids de contrôle 455
…
J'aimerai supprimer tout les ligne en même temps.
les ligne sont dans la colonne C
j'utilise le code suivant:
Private Sub CommandButton1_Click()
Dim del As Integer
With ThisWorkbook.Sheets("Sheet1")
For del = .Range("C" & .Rows.Count).End(xlUp).Row To 2 Step -1
'je travaille sur la colonne C
If .Range("C" & del).Value = "Poids de contrôle" Then
.Rows(del).Delete
End If
Next del
End With
End Sub
ça ne marche pas.
Merci de votre aide.
J'aimerai faire un filtre avec un bouton pour supprimer des lignes qui contiennent le mot.
"Poids de contrôle" sachant que dans mon classeur j'ai plusieurs lignes qui ont le mot Poids de contrôle,
ex: Poids de contrôle 12
Poids de contrôle 455
…
J'aimerai supprimer tout les ligne en même temps.
les ligne sont dans la colonne C
j'utilise le code suivant:
Private Sub CommandButton1_Click()
Dim del As Integer
With ThisWorkbook.Sheets("Sheet1")
For del = .Range("C" & .Rows.Count).End(xlUp).Row To 2 Step -1
'je travaille sur la colonne C
If .Range("C" & del).Value = "Poids de contrôle" Then
.Rows(del).Delete
End If
Next del
End With
End Sub
ça ne marche pas.
Merci de votre aide.
A voir également:
- Vba supprimer plusieurs lignes
- Supprimer rond bleu whatsapp - Guide
- Supprimer page word - Guide
- Supprimer pub youtube - Accueil - Streaming
- Fichier impossible à supprimer - Guide
- Supprimer compte instagram - Guide
2 réponses
bonjour, merci d'utiliser les balises de code quand tu partages du code.
"ça ne marche pas": message d'erreur, comportement inattendu, ...?
as-tu exécuté ton code en pas à pas pour comprendre ce qu'il faisait?
"ça ne marche pas": message d'erreur, comportement inattendu, ...?
as-tu exécuté ton code en pas à pas pour comprendre ce qu'il faisait?
Bonjour
Normal que cela ne fonctionne pas tu fais rechercher comme valeur de la cellule Poids de contrôle alors que c'est Poids de contrôle 455
Remplace ta boucle For Next par celel-ci
on compare la longueur des chaines : celle de la cellule dans laquelle Poids de contrôle est remplacé par du vide et celle sans suppression, si la 1ere est plus courte que la 2nde on efface la ligne
Cdlmnt
Via
Normal que cela ne fonctionne pas tu fais rechercher comme valeur de la cellule Poids de contrôle alors que c'est Poids de contrôle 455
Remplace ta boucle For Next par celel-ci
For del = .Range("C" & .Rows.Count).End(xlUp).Row To 2 Step -1 If Len(Application.WorksheetFunction.Substitute(.Range("C" & del).Value, "Poids de contrôle", "")) < Len(.Range("C" & del).Value) Then .Rows(del).Delete Next del
on compare la longueur des chaines : celle de la cellule dans laquelle Poids de contrôle est remplacé par du vide et celle sans suppression, si la 1ere est plus courte que la 2nde on efface la ligne
Cdlmnt
Via
Bonjour a vous tous,
avec Instr, me parait plus simple, mais c'est un point de vue
avec Instr, me parait plus simple, mais c'est un point de vue
Private Sub CommandButton1_Click() Dim del As Integer With ThisWorkbook.Sheets("Sheet1") For del = .Range("C" & .Rows.Count).End(xlUp).Row To 2 Step -1 'je travaille sur la colonne C If InStr(.Range("C" & del), "Poids de contrôle") Then .Rows(del).Delete End If Next del End With End Sub
je n'ai pas d'erreur, mais je n'arrive pas à supprimer les lignes qui ont le mot par ex.Poids de contrôle 23
ca va supprimer les lignes qui ont le mot exact sans rien après.