Tipp 0083 Zellbereiche ermitteln (SpecialCells)
Autor/Einsender:
Datum:
  Angie
17.06.2001
Entwicklungsumgebung:   Excel 97
Mit der SpecialCells-Methode werden all jene Bereiche angesprochen, die über das Menü Bearbeiten / Gehe Zu... / Inhalte... markiert werden können, wie z. B. Zellen mit Anmerkungen (xlCellTypeComments), alle leere Zellen (xlCellTypeBlanks), alle sichtbaren Zellen (xlCellTypeVisible) usw. Siehe dazu die Excel-VB(A)-Hilfe.
In folgenden kleinen Beispielen wird gezeigt, wie mit der SpecialCells-Methode alle Zellen, die Formeln (xlCellTypeFormulas) enthalten, mit einer Füllfarbe versehen, die Anzahl der Formeln auf dem Tabellenblatt ermittelt und die Adresse der letzten Zelle (xlCellTypeLastCell) im verwendeten Bereich zurückgegeben werden kann.
Zellen mit Formeln mit Füllfarbe versehen
 
Sub ColorCellsWithFormulas()
  If TypeOf ActiveSheet Is Worksheet Then
    On Error Resume Next
    ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas). _
            Interior.ColorIndex = 36
    On Error GoTo 0
  End If
End Sub
 
Anzahl der Formeln auf Tabellenblatt ermitteln
 
Sub CountFormulasInWS()
  Dim objRange As Range

  If TypeOf ActiveSheet Is Worksheet Then
    On Error Resume Next
    Set objRange = _
          ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas)

    If Not objRange Is Nothing Then
      MsgBox "Auf dem Tabellenblatt '" & ActiveSheet.Name & _
          "' sind " & CStr(objRange.Cells.Count) & " Formeln.", _
          vbOKOnly + vbInformation, "SpecialCells-Methode"
      Set objRange = Nothing

    Else
      MsgBox "Auf dem Tabellenblatt '" & ActiveSheet.Name & _
          "' sind keine Formeln enthalten!", _
          vbOKOnly + vbInformation, "SpecialCells-Methode"

    End If
    On Error GoTo 0
  Else
    MsgBox "Bitte ein Tabellenblatt aktivieren!", _
        vbOKOnly + vbInformation, "SpecialCells-Methode"
  End If
End Sub
 
Zellen mit Konstanten, Zahlen und Text, mit verschiedenen Füllfarben versehen
 
Sub SetCellsColor()
  On Error Resume Next

  ActiveSheet.UsedRange.SpecialCells( _
        xlCellTypeConstants, xlNumbers). _
        Interior.ColorIndex = 37

  ActiveSheet.UsedRange.SpecialCells( _
        xlCellTypeConstants, xlTextValues). _
        Interior.ColorIndex = 38

  On Error GoTo 0
End Sub
 
Letzte Zelle im verwendeten Bereich ermitteln
 
Sub LastCellInUsedRange()
  Dim objRange As Range

  If TypeOf ActiveSheet Is Worksheet Then
    With ActiveSheet
      If Application.WorksheetFunction.CountA(.Cells) > 0 Then
        Set objRange = .Cells.SpecialCells(xlCellTypeLastCell)

        MsgBox "Die Adresse der letzten Zelle im " & vbCrLf & _
            "benutzten Bereich ist  " & objRange.Address, _
            vbOKOnly + vbInformation, "SpecialCells-Methode"

        Set objRange = Nothing
      Else
        MsgBox "Das Tabellenblatt ' " & .Name & _
            "' enthält keine Daten!"
      End If
    End With
  Else
    MsgBox "Bitte ein Tabellenblatt aktivieren!", _
        vbOKOnly + vbInformation, "SpecialCells-Methode"
  End If
End Sub
 
Hinweis
Die im Download befindliche *.bas-Datei kann in Excel im VB-Editor importiert werden.

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
Excel-Version
95
97
2000
2002 (XP)
2003
2007
2010


Download  (1,9 kB) Downloads bisher: [ 1269 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 27. August 2011