Effacer des ligne à condition

salut mes camarades

j'aimerais bien vous m'aidez avec un script vba pour effacer des lignes

à condition que cette ligne contient la variable "Page:1", "Page:2","Page:1",........."Page:170",

18 Novembre 2021 a 22:48 Page.:1

18 Novembre 2021 a 22:48 Page.:2

18 Novembre 2021 a 22:48 Page.:3

CI-JOINT le ficgier

5nabil.xlsx (76.06 Ko)

merci d'avance pour votre aide

bonjour,

tu mets un filtre, tu sélectionnes les cellules qui contiennent Page, tu sélectionnes les lignes filtrées et tu les supprimes, puis tu désactives le filtre

oui effectivement sa marche avec le filtre mais comme le fichier contient plus de 7000 lignes

ça prend beaucoup de temps pour filtrer

et la mailleurs solution reste un script vba pour faire vite

j’attends toujours mes camardes un solution de votre part

mes salutations

Bonjour à tous !

C'est dommage que vous utilisiez une version fort ancienne....(2007 ). Power Query, par exemple, ne peut devenir votre meilleur ami....

merci Mr : JFL pour votre attention

Cordiale Salutation

re-bonjour,

une proposition

Sub aargh()
    Dim lgpg()
    With ActiveSheet
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        ReDim lgpg(1 To dl, 1 To 1)
        .Columns(1).Insert
        Set plage = .Range("b1").Resize(dl, 1)
        Set re = plage.Find("Page", lookat:=xlPart, LookIn:=xlValues)
        If Not re Is Nothing Then
            fa = re.Address
            Do
                lgpg(re.Row, 1) = "x"
                Set re = plage.FindNext(re)
                If re Is Nothing Then Exit Do
            Loop Until re.Address = fa
        End If
        .Range("A1").Resize(dl, 1) = lgpg
        .Range("A1").Resize(dl, 2).Sort key1:=.Range("A1"), order1:=xlAscending, Header:=xlNo
        lr = .Range("A1").End(xlDown).Row
        .Rows("1:" & lr).Delete
        .Columns(1).Delete
    End With
End Sub

Merci Mr : h2so4

pour la solution, ca marche bien

merci 2 fois

Bonjour à tous,

Une variante...

Sub test()
 Dim n&, k&, i&, t
 With ActiveSheet.Cells(1, 1).CurrentRegion
    t = .Value
     For i = LBound(t) To UBound(t)
      If Not t(i, 1) Like "*Page*" Then
       n = n + 1
        For k = LBound(t, 2) To UBound(t, 2)
         t(n, k) = t(i, k)
        Next k
      End If
     Next i
    .ClearContents
    .Interior.Color = xlNone
    If n > 0 Then .Resize(n, UBound(t, 2)).Value = t
End With
End Sub
6nabil.xlsm (81.63 Ko)

CTRL + e pour exécuter la macro....

Cordialement,

bonjour à tous,

@ Nabil, si tu ne souhaites pas garder la mise en forme des lignes, le code de xorsankukai (que je salue) est infiniment plus rapide !

Merci Mr xorsankukai

pour la réponse votre solution sa marche aussi et rapide

merci Mr

mes salutations

Rechercher des sujets similaires à "effacer ligne condition"