Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
612to616
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
612to616
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ZÄHLENWENN() und 3D-Bezüge

ZÄHLENWENN() und 3D-Bezüge
19.05.2005 18:50:56
Manuel
Hallo!
Ich habe folgendes Problem:
Ich habe Excel Files mit bis zu 100 Arbeitsblättern. Ich möchte nun zum Beispiel zählen, in wie vielen Blättern ein Bestimmter Text in der Zelle A5 auftritt.
Ich hab's probiert mit:
=ZÄHLENWENN(blatt1:blatt88!A5;"1-1-1-2.")
und
=ZÄHLENWENN(blatt1!A5:blatt88!A5;"1-1-1-2.")
bekomme aber beide male einen #WERT! Fehler.
Kann mir irgendwer helfen?
mfg
Manuel

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ZÄHLENWENN() und 3D-Bezüge
19.05.2005 19:09:42
Boris
Hi Manuel,
ich hab das seinerzeit mal ne UDF geschrieben. Kleiner Haken (hab ich grade bemerkt): Sie funktioniert nur dann, wenn die Blattnamen ohne Leerzeichen sind.
Option Explicit

Function Zählen3D(Bezug As Variant, Suchtext As String) As Long
Dim s           As String       'Formelstring
Dim WsStart     As String       'Name Erstes Blatt
Dim WsEnde      As String       'Name Letztes Blatt
Dim iCount      As Integer      'Zähler vom 1. bis zum letzten Blatt
Dim i           As Integer      'Index des 1. Blattes
Dim j           As Integer      'Index des letzten Blattes
Dim B           As Boolean      'Prüfung, ob Mehrfachbezug vorhanden
Dim sBereich    As String       'Bereich auslesen bei Mehrfachmarkierung
Const MB        As String = "*:*!*,*" 'typische Syntax für Mehrfachbereich
s = Application.Caller.Formula 'Formel auslesen
'Prüfen, ob Mehrfachmarkierung vorliegt
B = s Like MB
If B Then 'Falls Mehrfachbezug vorhanden in der Form: Tabelle1:Tabelle3!A1:C100
'Formelstring innerhalb der Klammern auslesen und an s übergeben
s = Mid(s, InStr(1, s, "(") + 1, InStr(1, s, ")") - InStr(1, s, "(") - 1)
'Erstes Blatt auslesen
WsStart = Trim(Left(s, InStr(1, s, ":") - 1))
'Letztes Blatt auslesen
WsEnde = Trim(Mid(s, InStr(1, s, ":") + 1, InStr(1, s, "!") - InStr(1, s, ":") - 1))
'Zellbereich auslesen
sBereich = Trim(Mid(s, InStr(1, s, "!") + 1, InStr(1, s, ",") - InStr(1, s, "!") - 1))
'Index des 1. Blattes ermitteln
i = Worksheets(WsStart).Index
'Index des letzten Blattes ermitteln
j = Worksheets(WsEnde).Index
'Schleife über alle tangierten Blätter
For iCount = i To j
Zählen3D = Zählen3D + WorksheetFunction.CountIf(Sheets(iCount).Range(sBereich), Suchtext)
Next iCount
Else 'Falls kein Mehrfachbezug vorhanden: Einfaches ZÄHLENWENN
Zählen3D = WorksheetFunction.CountIf(Bezug, Suchtext)
End If
End Function

Anzuwenden mit folgender Syntax:
=ZÄHLEN3D(Tabelle1:Tabelle3!C5:F10;"u")
Grüße Boris
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige