Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zählenwenn von VBA in Sheet schreiben lassen


Betrifft: Zählenwenn von VBA in Sheet schreiben lassen von: VBA_Anfänger
Geschrieben am: 22.04.2017 17:24:10

Hallo,

folgendes Problem:

=ZÄHLENWENN(B4:B6;"<>")

Gebe ich das in eine Zelle im Tabellenblatt ein, ist alles top. Es werden die nicht leeren Zellen im Bereich B4 bis B6 gezählt. Das ist genau das, was ich will.

Möchte ich die Formel aber durch ein Makro in die Zelle B3 eintragen lassen, funktioniert das nicht:

Tabelle1.Range("B3").FormulaLocal = "=ZÄHLENWENN(B4:B6;"<>")"

In der Zelle B3 steht dann "WAHR" und nicht die Formel. Das Problem hängt mit dem Suchkriterium zusammen.

Möchte ich alle Zellen mit Wert 5 zählen, klappt es:

Tabelle1.Range("B3").FormulaLocal = "=ZÄHLENWENN(B4:B6;5)"

Dann schreibt mir das Makro die Formel in Zelle B3 und zählt alle Fünfen im Bereich B4:B6.

Weiß jemand, woran das liegt?
Danke

  

Betrifft: AW: Zählenwenn von VBA in Sheet schreiben lassen von: Nepumuk
Geschrieben am: 22.04.2017 17:28:53

Hallo,

so:

Tabelle1.Range("B3").FormulaLocal = "=ZÄHLENWENN(B4:B6;""<>"")"

Gruß
Nepumuk


  

Betrifft: AW: Zählenwenn von VBA in Sheet schreiben lassen von: VBA_Anfänger
Geschrieben am: 22.04.2017 17:34:21

Verflucht, vielen Dank, ich glaube ich sitze schon zu lange davor.

Die Variante hatte ich probiert, aber scheinbar irgendwo anders in der Zeile einen Tippfehler, den ich übersehen hatte :-D


  

Betrifft: AW: Zählenwenn von VBA in Sheet schreiben lassen von: Hajo_Zi
Geschrieben am: 22.04.2017 17:30:45

= "=ZÄHLENWENN(B4:B6;""<>""&"""")"

GrußformelHomepage


  

Betrifft: AW: Zählenwenn von VBA in Sheet schreiben lassen von: VBA_Anfänger
Geschrieben am: 22.04.2017 17:49:54

Danke für die Antworten.

Kann ich die nicht-leeren Zeilen auch intern im Makro auszählen, ohne die Formel in eine Zelle schreiben zu lassen und anschließend die Zelle im Makro auszulesen?

Anders formuliert:
Ich möchte wissen, wie viele Zellen in Spalte A nicht leer sind, um diesen Wert im Makro verwenden zu können, ohne den Umweg über das Arbeitsblatt machen zu müssen.

Danke


  

Betrifft: AW: Zählenwenn von VBA in Sheet schreiben lassen von: Nepumuk
Geschrieben am: 22.04.2017 17:54:04

Hallo,

dann so:

Public Sub test()
    MsgBox WorksheetFunction.CountA(Tabelle1.Columns(1))
End Sub

Gruß
Nepumuk


  

Betrifft: AW: Zählenwenn von VBA in Sheet schreiben lassen von: VBA_Anfänger
Geschrieben am: 22.04.2017 18:35:45

Super, vielen Dank. D.h. ich kann WorksheetFunction als Objekt nutzen. Hatte es mit einer Variablen versucht, da kam die Fehlermeldung "Objekt erforderlich" oder so ähnlich.


  

Betrifft: AW: Zählenwenn von VBA in Sheet schreiben lassen von: Nepumuk
Geschrieben am: 22.04.2017 18:39:01

Hallo,

ja du kannst die Klasse WorksheetFunction benutzen um Formeln in VBA zu realisieren.

Gruß
Nepumuk


  

Betrifft: AW: Zählenwenn von VBA in Sheet schreiben lassen von: ransi
Geschrieben am: 22.04.2017 17:56:28

HAllo,

Geht z.B. so:

msgbox WorksheetFunction.CountIf(Range("A:A"),"<>" & "")

ransi


Beiträge aus den Excel-Beispielen zum Thema "Zählenwenn von VBA in Sheet schreiben lassen"