Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

problème avec filtre

castor30

XLDnaute Occasionnel
Bonjour
Je rencontre un problème avec ce code
Sub Filtrage()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
DerLig = [A10000].End(xlUp).Row
If ActiveSheet.AutoFilterMode Then
isOn = "On"
Range("E1:E" & DerLig).AutoFilter Field:=1
For i = 2 To DerLig Step 2
Range(Cells(i, "E"), Cells(i + 1, "E")).MergeCells = True
Next i
ActiveSheet.AutoFilterMode = False
Exit Sub
Else
isOn = "Off"
Range("E:E").Select
Selection.AutoFilter
End If

For i = 2 To DerLig Step 2
If Cells(i, "E") = "x" Then
Range(Cells(i, "E"), Cells(i + 1, "E")).MergeCells = False
Cells(i + 1, "E") = "x"
End If
Next i
Range("E:E" & DerLig).AutoFilter Field:=5, Criteria1:="x" 'cette ligne est surlignée en jaune
Application.Calculation = xlCalculationAutomatic
End Sub

Peut être est-ce parce que je suis sous xl2003
Je vous remercie
 

castor30

XLDnaute Occasionnel
Bonsoir Lone-wolf
Avec Range("a1:e65536").AutoFilter ça fonctionne en effet
Merci beaucoup
Une dernière question, j'ai nommé la colonne "E" "Efface" mais je ne sais quel code y associer, veux-tu bien m'aider ?
Je souhaite effacer les X présents dans la colonne et supprimer le filtre après avoir imprimer la sélection.
 

Lone-wolf

XLDnaute Barbatruc
Re

Pas besoin de nommer la colonne.

VB:
'A METTRE DANS UN MODULE STANDARD
Option Explicit

Sub Suppression()
Dim plage As Range, derlig As Long, lig As Long, i As Long, critere As String
  With Sheets(1)
  lig = .Range("e" & Rows.Count).End(xlUp).Row
  Set plage = .Range("a1:i" & lig)

  critere = "x"
  plage.AutoFilter Field:=5, Criteria1:=critere, Operator:=xlAnd

  derlig = .Cells(Rows.Count, 5).End(xlUp).Row + 1

  For i = derlig To 2 Step -1
  If .Cells(i, 5) Like "*" & critere Then _
  .Rows(i).SpecialCells(xlCellTypeVisible).EntireRow.Delete
  Next i
  End With
  plage.AutoFilter
End Sub


'ET DANS LE MODULE DE LA FEUILLE

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Call Suppression
Cancel = True
End Sub
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
329
Réponses
2
Affichages
258
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…