Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Filter: nicht sichtbare löschen | Herbers Excel-Forum


Betrifft: Filter: nicht sichtbare löschen von: Markus
Geschrieben am: 17.01.2012 14:57:21

Hallo,
ich habe eine Riesen-Monster-Mappe mit 35 Tabellen übernommen.
In diesen Tabellen sind überall Filter gesetzt, die teilweise sogar Benutzerdefiniert erstellt wurden.
(d.h. es ist teilweise nicht mehr möglich, herauszufinden wie der Filter gesetzt wurde.)

Die Mappe ist so gross, dass ich nun mittels eines Jobs, alle Tabellen so verkleinern möchte,
dass nur noch die angezeigten Werte sichtbar sind, und die "ausgefilterten" Zeilen für Ein- und Allemal weg sind (gelöscht werden).
Kann man sowas mit einem Makro machen?

Gruss
Markus

  

Betrifft: AW: Filter: nicht sichtbare löschen von: Josef Ehrensberger
Geschrieben am: 17.01.2012 15:21:26


Hallo Markus,

das geht z. B. so.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub copySheets()
  Dim objSh As Worksheet, objNew As Worksheet
  Dim strName As String
  Dim lngCalc As Long
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    lngCalc = .Calculation
    .Calculation = xlCalculationManual
    .DisplayAlerts = False
  End With
  
  With ThisWorkbook
    For Each objSh In .Worksheets
      If objSh.AutoFilterMode Then
        strName = objSh.Name
        Set objNew = .Worksheets.Add(After:=objSh)
        objSh.UsedRange.SpecialCells(xlCellTypeVisible).Copy objNew.Cells(1, 1)
        objSh.Delete
        objNew.Name = strName
      End If
    Next
  End With
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'copySheets'" & vbLf & String(60, "_") & _
        vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
        "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
        .Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
        "VBA - Fehler in Modul - Modul1"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = lngCalc
    .DisplayAlerts = True
  End With
  
End Sub


Wenn in der Mappe allerdings Formel - Bezüge zwischen den Tabellen bestehen, dann werden diese zerschoßen, da müsste man die Formeln vorher sichern.




« Gruß Sepp »



Beiträge aus den Excel-Beispielen zum Thema "Filter: nicht sichtbare löschen"