Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Filterung von ListObject in mehreren Schleifen
#1
Liebe Profis,
ich habe folgendes Problem:
Eine Arbeitsmappe, mit 3 Blättern
das Modul erstellt auf den Blättern "Grunddaten" und "Termindaten" je ein ListObject.
Danach werden die Zeilen der Grunddaten in Schleifen abgearbeitet und bestimmte Daten für die Filterung des Blattes Termindaten verwendet.
Diese , auf dem Blatt Termindaten gefilterten Daten werden nach Terminübersicht copiert.
Zu beachten ist, dass bei der Filterung die Rang LEER sein kann.
Das habe ich in einer Fehlerroutine abgefangen.
Soweit, so gut, in der ersten Schleife funktioniert das auch, aber in der 2. Schleifen ignoriert er den Fehler, dass keine Daten in der Filterung sind.
Welchen Fehler mache ich?
Kann mir jemand helfen?
Ich habe den Code als Attechment angefügt.


Hier noch mal die Stelle an der es hakt:

  If wrkShtTerm.FilterMode Then wrkShtTerm.ShowAllData


    With LOTerm
        .Range.AutoFilter Field:=1, Criteria1:=strFKZ
        .Range.AutoFilter Field:=5, Criteria1:="Zwischenbericht"
        .Range.AutoFilter Field:=11, Criteria1:=""
   
    On Error Resume Next
        Set rngLOTerm = .DataBodyRange.SpecialCells(xlVisible)
        On Error GoTo 0
        If Not rngLOTerm Is Nothing Then
            wrkShtTerm.Range("E2:E" & wrkShtTerm.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Copy Destination:=wrkShtUeber.Range("A15")
            wrkShtTerm.Range("H2:J" & wrkShtTerm.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Copy Destination:=wrkShtUeber.Range("B15")
        End If
    End With

Vielen Dank im Voraus
Dietmar


Angehängte Dateien
.pdf   Code.pdf (Größe: 149,23 KB / Downloads: 1)
Zitieren
#2
Big Grin 
So, habe das Problem selbst gelöst

für Alle, die es interessiert:

    With LOTerm
        .Range.AutoFilter Field:=1, Criteria1:=strFKZ
        .Range.AutoFilter Field:=5, Criteria1:="Zwischenbericht"
        .Range.AutoFilter Field:=12, Criteria1:=""
   
    On Error Resume Next
        Set rngLOTerm = .DataBodyRange.Columns(1).SpecialCells(xlVisible)
'        On Error GoTo 0
        If Not rngLOTerm Is Nothing Then
            wrkShtTerm.Range("E2:E" & wrkShtTerm.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Copy Destination:=wrkShtUeber.Range("A15")
            wrkShtTerm.Range("H2:J" & wrkShtTerm.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Copy Destination:=wrkShtUeber.Range("B15")
        End If
        On Error GoTo 0
    End With
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions