Thema Datum  Von Nutzer Rating
Antwort
19.03.2013 08:48:57 Thomas
NotSolved
Blau For..To Schleife nur über gefilterten Bereich
19.03.2013 10:33:17 Gast48218
NotSolved

Ansicht des Beitrags:
Von:
Gast48218
Datum:
19.03.2013 10:33:17
Views:
1826
Rating: Antwort:
  Ja
Thema:
For..To Schleife nur über gefilterten Bereich
Option Explicit

Sub blaa()
  
  Dim rngBereich As Excel.Range
  Dim rngZeile As Excel.Range
  Dim rngZelle As Excel.Range
  Dim tmp As String
  
  With Tabelle1
    
    'AutoFilter aktiv?
    If .AutoFilterMode Then
    '... ja, ist aktiv.
      
      'Bereich des AutoFilters
      Set rngBereich = .AutoFilter.Range
      'Kopfzeile (hier 1 Zeile groß) ausschließen
      Set rngBereich = rngBereich.Offset(RowOffset:=1).Resize(RowSize:=rngBereich.Rows.Count - 1)
      'und nun nur die sichtbaren Zellen berücksichtigen
      On Error Resume Next
      Set rngBereich = rngBereich.SpecialCells(xlCellTypeVisible)
      If Err.Number <> 0 Then Set rngBereich = Nothing
      On Error GoTo 0
      
      'Haben wir was zum Anzeigen?
      If Not rngBereich Is Nothing Then
      '... ja, haben wir.
        
        For Each rngZeile In rngBereich.Rows
          
          'nur bestimmte Spalten berücksichtigen (hier im Beispiel: Spalte A und C)
          Set rngZeile = Intersect(rngZeile, Union(.Columns("A"), .Columns("C")))
          
          'Haben wir jetzt immernoch was zum Anzeigen?
          If Not rngZeile Is Nothing Then
          '... ja, haben wir.
            
            'Zeile zusammenfassen, mit Tabulator als Trennzeichen
            tmp = ""
            For Each rngZelle In rngZeile.Cells
              tmp = tmp & IIf(tmp <> "", vbTab, "") & rngZelle.Text
            Next
            
            'simple Ausgabe auf Bildschirm
            MsgBox tmp
            
          End If
          
        Next rngZeile
        
      End If
      
    Else
      MsgBox "Auto-Filter ist nicht aktiv.", vbExclamation
      Exit Sub
    End If
    
  End With
  
  If rngBereich Is Nothing Then
    MsgBox "Keine Daten zu verarbeiten.", vbInformation
  Else
    MsgBox "Daten wurden verarbeitet.", vbInformation
  End If
  
End Sub

 

PS: Schau dir bitte mal in der VBA-Hilfe FreeFile an. Man sollte nicht davon ausgehen, dass der Wert 1 (s. Open-Statement) immer funktioniert.

 


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
19.03.2013 08:48:57 Thomas
NotSolved
Blau For..To Schleife nur über gefilterten Bereich
19.03.2013 10:33:17 Gast48218
NotSolved