Anzeige
Archiv - Navigation
1116to1120
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SpecialCells(xlCellTypeBlanks).Count

SpecialCells(xlCellTypeBlanks).Count
Franz
Hallo liebe Profis!
Obwohl im "Catalog" der Zusatz ".Count" gelistet wird bekomme ich eine Fehlermeldung.
Was ist hier faul?

Sub Leere_Felder_zaehlen_und_markieren()
loBlanksCount = Range("Datenbereich").SpecialCells(xlCellTypeBlanks).Count
MsgBox (loBlanksCount) ' 0 Then
Range("Datenbereich").Interior.ColorIndex = xlNone
Range("Datenbereich").SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 3
End If
End Sub

Ich hoffe hier könntet mir wieder helfen.
Grüße
Franz D.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: SpecialCells(xlCellTypeBlanks).Count
18.11.2009 23:12:21
Daniel
Hi
specialcells bricht immer mit einem Fehler ab, wenn die Methode keine Zellen finden kann, da hilft dann das Count dahinter auch nichts.
die einfachste Lösung ist in diesem Fall, die Specicalcells-Methode in ON ERROR zu kapseln:
Sub Leere_Felder_zaehlen_und_markieren()
On Error Resume Next
loBlanksCount = Range("Datenbereich").SpecialCells(xlCellTypeBlanks).Count
On Error Goto 0
MsgBox (loBlanksCount) ' 0 Then
Range("Datenbereich").Interior.ColorIndex = xlNone
Range("Datenbereich").SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 3
End If
End Sub
desweiteren solltest du dir angewöhnen, mit Option Explicit zu arbeiten und deine Variablen sauber zu deklarieren.
Gruß, Daniel
Anzeige
AW: SpecialCells(xlCellTypeBlanks).Count
18.11.2009 23:27:20
Franz
Hallo Daniel,
Einmal wieder: HERZLICHEN DANK! Ich wollte das On error... vermeiden. Ich vertraue deinem Experten-Wissen dass es anders nicht geht. Übrigens, ich verwende grundsätzlich "Option explicit", habe den geposteten Code zu stark "abgespeckt.
Gute Nacht und vielleicht bis bald wieder.
Franz D.
Lösung ohne "On Error"
18.11.2009 23:37:17
NoNet
Hallo Franz,
das kann man auch ohne "On Error..." lösen, wenn man einfach zuvor prüft, ob es überhaupt Leerzellen im Bereich gibt :
    If Application.CountBlank(Range("Datenbereich")) = 0 Then
MsgBox "Im Bereich 'Datenbereich' sind keine leere Zellen vorhanden !"
loBlanksCount = 0
Else
loBlanksCount = Range("Datenbereich").SpecialCells(xlCellTypeBlanks).Count
MsgBox loBlanksCount
End If

Wenn Du generell nur die ANZAHL der Leerzellen benötigst und mit diesen nichts weiter vorhast, dann genügt sogar das ZÄHLEN, dann benötigst Du die SpecialCells-Variante gar nicht :
        loBlanksCount = Application.CountBlank(Range("Datenbereich"))
MsgBox loBlanksCount

Gruß, NoNet
Anzeige
AW: Lösung ohne "On Error"
18.11.2009 23:59:06
Franz
Hallo NoNet,
Das "No" passt zu dir nicht, aber lassen wir die Wortspielereien. Super Trick! Kannst du mir noch verraten wie ich aus 4 gefundenen die Nummer 1 "selektiere" oder "activate", dh. wie springe ich auf die entsprechende Zelle ?
Grüße
Franz D.
Erste Leerzelle eines Bereiches aktivieren
19.11.2009 00:16:14
NoNet
Hallo Franz,
Danke für die "Blumen" ;-) Mein Nick bezieht sich jedoch nicht auf "nett" (hieße ansonsten wohl NoNice ;-).
Die erste Leerzelle eines Bereiches kannst Du folgendermaßen aktivieren :
Range("Datenbereich").SpecialCells(xlCellTypeBlanks)(1).Activate
Das funktioniert allerdings wirklich nur mit der ersten Zelle des Bereiches so, ansonsten muss man über eine Schleife gehen. Für die 3.Leerzelle z.B. :
    If Application.CountBlank(Range("Datenbereich")) >= 3 Then
For Each rngzelle In Range("Datenbereich").SpecialCells(xlCellTypeBlanks)
lngz = lngz + 1
If lngz = 3 Then
rngzelle.Activate
Exit For
End If
Next
End If
Gruß, NoNet
Anzeige
AW: Erste Leerzelle eines Bereiches aktivieren
19.11.2009 00:40:26
Franz
Hallo,
Super! Werde es Morgen "einbauen". Hab' viel gelernt Heute (ich meine Gestern).
Gute Nacht ihr Nachtschwärmer!
Franz D.
AW: Lösung ohne "On Error"
19.11.2009 10:20:10
Luschi
Hallo NoNet,
Deine Lösung versagt leider, wenn im gesamten 'Datenbereich' Formeln derart stehen:
=WENN(B3>0;"";1)
- CountBlank() erkennt dann leere Zellen
- SpecialCells(xlCellTypeBlanks) dagegen nicht und es kommt zur Fehler-Nr. 400
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige