Bonjour,
j ai un tableau qui fait 50 lignes et 6 colonnes.
Je voudrais supprimer supprimer toutes les lignes dont les cellules de la colonne A contiennent "total" ou " somme"
si quel qu'un a une solution
Merci d'avance
Bonjour,
j ai un tableau qui fait 50 lignes et 6 colonnes.
Je voudrais supprimer supprimer toutes les lignes dont les cellules de la colonne A contiennent "total" ou " somme"
si quel qu'un a une solution
Merci d'avance
Bonjour, 2 questions:
- tu veux supprimer des lignes, et donc celles du dessous se décalent d'une place vers le haut ou effacer le contenu et laisser des lignes vides dans le tableau ?
- les mots "somme" et "total" se trouvent seuls dans la cellule ou font partie d'une expression plus longue ?
Bonjour et merci de m avoir répondu
Je veux supprimer les lignes complètement et les mots sont seuls dans lacellule
Voici une méthode:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Sub SupprimerLignesSommeTotal() Dim ws As Worksheet Dim rng As Range Dim cell As Range Dim mot As Variant Dim motsARechercher As Variant Dim i As Long Dim lastrow As Long ' Définir la feuille de calcul à traiter Set ws = ThisWorkbook.Sheets("Feuil1") lastrow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Définir la plage à parcourir Set rng = ws.Range("A1:A" & lastrow) ' Liste des mots à rechercher motsARechercher = Array("somme", "total") ' Boucle à rebours à travers chaque cellule dans la plage For i = rng.Rows.Count To 1 Step -1 Set cell = rng.Cells(i, 1) ' Boucle à travers chaque mot à rechercher For Each mot In motsARechercher If InStr(1, LCase(cell.Value), LCase(mot)) > 0 Then ' Supprimer la ligne si le mot est trouvé cell.EntireRow.Delete Exit For ' Sortir de la boucle après la suppression End If Next mot Next i End Sub
Bonjour
et si pour une grande base de données et pour gagner en temps d'exécution , vous pouvez filtrer puis supprimer les lignes visibes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Sub filtreetsupprimer() Dim F1 As Worksheet Set F1 = Sheets("Feuil1") Dim I As Long Dim Fil1 As String, Fil2 As String Fil1 = LCase("total") Fil2 = LCase("somme") Application.ScreenUpdating = False With F1 .Activate I = .Cells(Rows.Count, 1).End(xlUp).Row .Range("A1:F" & I).AutoFilter Field:=1, Criteria1:=Fil1 _ , Operator:=xlOr, Criteria2:=Fil2 .Range("A2:AF" & I).SpecialCells(xlCellTypeVisible).EntireRow.Delete .ShowAllData End With Application.ScreenUpdating = True End Sub
Partager