Thema Datum  Von Nutzer Rating
Antwort
20.06.2013 13:21:33 Nina
NotSolved
20.06.2013 14:23:49 schokobons
NotSolved
20.06.2013 14:45:16 NINA
NotSolved
Blau Top 5 nach Filteranwendung in ein anderes Tabellenblatt kopieren
21.06.2013 01:40:12 Gast54244
NotSolved
15.07.2013 21:17:00 Neuhäusler Korbinian
NotSolved

Ansicht des Beitrags:
Von:
Gast54244
Datum:
21.06.2013 01:40:12
Views:
880
Rating: Antwort:
  Ja
Thema:
Top 5 nach Filteranwendung in ein anderes Tabellenblatt kopieren
Public Sub Top_5_ausgeben()
  
  Dim wksQuelle         As Excel.Worksheet
  Dim wksZiel           As Excel.Worksheet
  Dim rngSichtbar       As Excel.Range
  Dim rngSichtbarOhneKopfzeile As Excel.Range
  Dim rngZeile          As Excel.Range
  Dim nZeilen           As Long
  
  Set wksQuelle = ThisWorkbook.Worksheets("Tabelle5") '<- ggf. anpassen
  Set wksZiel = ThisWorkbook.Worksheets("Tabelle13")  '<- ggf. anpassen
  
  If Not wksQuelle.AutoFilterMode Then
    Call MsgBox("AutoFilter ist nicht gesetzt, Vorgang angebrochen.")
    Exit Sub
  End If
  
  'sichtbare Zellen
  Set rngSichtbar = wksQuelle.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
  'davon nur bestimmte Spalten
  Set rngSichtbar = Intersect(rngSichtbar, rngSichtbar.Worksheet.Range("C:E"))
  
  'Nothing abfangen
  If rngSichtbar Is Nothing Then
    Call MsgBox("Keine sichtbaren Daten")
    Exit Sub
  End If
  
  For Each rngZeile In rngSichtbar.Rows
    
    'nicht die Kopfzeile (= erste Zeile im Bereich)?
    If rngZeile.Row > rngSichtbar.Row Then
      
      If Not rngSichtbarOhneKopfzeile Is Nothing Then
        Set rngSichtbarOhneKopfzeile = Union(rngZeile, rngSichtbarOhneKopfzeile)
      Else
        Set rngSichtbarOhneKopfzeile = rngZeile
      End If
      
      nZeilen = nZeilen + 1
      
      'bei fünf Zeilen ist Schluss (Top5)
      If nZeilen > 4 Then
        Exit For
      End If
      
    End If
    
  Next rngZeile
  
  'wenn Daten gefunden, ...
  If Not rngSichtbarOhneKopfzeile Is Nothing Then
    
    'vor dem kopieren alten 'Kram' entfernen
    Call wksZiel.Range("A4").CurrentRegion.Clear
    '... an ihr Ziel kopieren.
    Call rngSichtbarOhneKopfzeile.Copy(Destination:=wksZiel.Range("A4"))
    
    Call MsgBox("Daten wurden kopiert.", vbInformation)
    
  Else
    Call MsgBox("Keine sichtbaren Daten (ohne Kopfzeile)")
  End If
  
End Sub

Versuch mal so.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
20.06.2013 13:21:33 Nina
NotSolved
20.06.2013 14:23:49 schokobons
NotSolved
20.06.2013 14:45:16 NINA
NotSolved
Blau Top 5 nach Filteranwendung in ein anderes Tabellenblatt kopieren
21.06.2013 01:40:12 Gast54244
NotSolved
15.07.2013 21:17:00 Neuhäusler Korbinian
NotSolved