Suppression ligne tableau Excel

Bonjour,

J'ai un petit problème. J'ai un tableau de données, avec 10000lignes (variable) et 9 colonnes, et j'aimerais supprimer les lignes i si la valeur en Fi (6ème colonne) est supérieure à 3700. Voilà ce que j'ai tapé (c'est long et des valeurs sont oubliées, pourquoi?) :

Sub nettoyage_tableau()

Sheets("Data").Select

Dim i As Integer

Dim j As Integer

Dim k As Long

Dim Lastrowa As Long

Lastrowa = Worksheets("Data").Cells(65536, 2).End(xlUp).Row

LastRowb = Worksheets("Data").Cells(15000, 13).End(xlUp).Row

k = Lastrowa

For i = 2 To k

If Cells(i, 6).Value > 3700 Then

Range("A" & i).Select

Selection.ListObject.ListRows(i).Delete

End if

Next

End Sub

Merci de votre aide!

Bonjour,

Une solution en utilisant un filtre automatique

Sub nettoyage_tableau()
Dim DerLig As Long
    Application.ScreenUpdating = False
    With Sheets("Data")
        DerLig = .Range("B" & Rows.Count).End(xlUp).Row
        If Not .AutoFilter Is Nothing Then .Cells.AutoFilter
        .Range("F1").AutoFilter
        .Range("$A$1:$I$" & DerLig).AutoFilter Field:=6, Criteria1:=">37000", Operator:=xlAnd
        .UsedRange.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
        .Cells.AutoFilter
    End With
End Sub

A+

.UsedRange.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete

Merci de votre réponse

Cette ligne pose problème : La méthode Delete de la classe range a échoué

Il me faudrait un fichier exemple (sans données confidentielles) pour comprendre pourquoi le programme retourne cette erreur.

De mon coté, avec un fichier simplifié, pas de problème.

14classeur1.xlsm (15.83 Ko)

A+

ok voici mon fichier!

Merci

18fichier1.xlsb (192.11 Ko)

Bonjour,

Ton fichier en retour

21fichier1.xlsb (202.99 Ko)

A+

Bonjour

Autre Code

Sub nettoyage_tableau()
Dim DerLig As Long
Application.ScreenUpdating = False

DerLig = Range("B" & Rows.Count).End(xlUp).Row
    For i = DerLig To 2 Step -1
    If Cells(i, "F") > 3700 Then Rows(i).Delete
    Next
End Sub

Amicalement

Nad

Merci énormément pour vos réponses, hélas rien ne se passe quand je lance la macro frangy (seulement le tri s'enlève sur le tableau et les boutons disparraisent...).

Je renvois mon fichier.

Décidemment, je vois pas d'où vient le problème!

13fichier11.xlsb (286.66 Ko)

J'ai trouvé! C'est le tableau sur la gauche qui posait problème! Je l'ai mis sur une autre page et ça marche!

Par contre j'ai voulu appliqué ta procédure sur un autre cas, mais hélas, ça ne marche pas, sais tu pourquoi frangy?

Quand je clique sur oui il ne se passe rien!

La voici :

For i = 2 To m

q = Cells(i, 5)

c = Application.CountIf(Range("E2:E" & Lastrowa), Cells(i, 5))

If c <> 405 Then

alerte = MsgBox("L'enrouleur " & q & " ne comporte pas 405 données!!!!", vbOKOnly + vbCritical)

reponses = MsgBox("Voulez - vous supprimer cet enrouleur ?", vbYesNo + vbCritical)

If reponse = vbYes Then

Application.ScreenUpdating = False

With Sheets("Data")

Application.ScreenUpdating = False

Application.GoTo Reference:="Tableau_Requete_AL300___ecran_actif"

If Not .AutoFilter Is Nothing Then Selection.AutoFilter

Selection.AutoFilter Field:=5, Criteria1:=q, Operator:=xlAnd

Application.DisplayAlerts = False

On Error Resume Next

Selection.SpecialCells(xlCellTypeVisible).Delete

On Error GoTo 0

Application.DisplayAlerts = True

.Range("A1").Select

Selection.AutoFilter

End With

End If

If reponse = vbNo Then

Exit Sub

End If

End If

Next i

Pour voir ce qui se passe, supprime ces 2 lignes :

On Error Resume Next

On Error GoTo 0

Tu verras ainsi l'erreur générée par l'instruction

Selection.SpecialCells(xlCellTypeVisible).Delete

Mais à mon avis, ce qui te pose le plus de problème, c'est l'utilisation de tableaux.

La programmation serait nettement simplifiée avec des plages de cellules.

A+

Rechercher des sujets similaires à "suppression ligne tableau"