Anzeige
Archiv - Navigation
1552to1556
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

Teilergebnis 103 – Anzahl2 mit Bedingungen

Teilergebnis 103 – Anzahl2 mit Bedingungen
27.04.2017 19:33:59
KK
Hallo an alle hier,
ich arbeite mit Excel 2010 auf Win7 und stehe als ewiger Makro-Laie wieder einmal vor einem für mich schier unlösbaren Problem.
Das folgende Makro zur Erzeugung der Funktion „zählenspezial“ habe ich einem Forum entnommen – leider ist derjenige, der das erstellt hat dort nicht mehr registriert ….
Public Function zählenSpezial(Bereich As Range) As Long
Dim zelle As Range
Dim dic
Set dic = CreateObject("scripting.dictionary")
For Each zelle In Bereich
If Not zelle.Height = 0 And Not zelle.Value = "" And Not dic.exists(zelle.Value) Then
dic.Add zelle.Value, ""
End If
Next zelle
zählenSpezial = dic.Count
End Function
Mit dieser Funktion „zählenspezial“ lässt sich Anzahl2 nur eingeblendeter Zellen (Teilergebnis 103 = durch Autofilter oder durch manuell ausgeblendete Zellen) unter folgenden Bedingungen: ohne doppelte Werte, ohne leere Werte.
In Anlehnung an diese Funktion bräuchte ich jetzt noch für die gleiche Tabelle folgende Funktionen:
1) zählenspezial1
Anzahl2 wie oben unter folgenden Bedingungen:
mit doppelten Werten, ohne leere Werte (““)
2) zählenspezial2
Anzahl2 wie oben unter folgenden Bedingungen:
mit doppelten Werten, ohne leere Werte (““), ohne Werte „nein“
3) zählenspezial3
Anzahl2 wie oben unter folgenden Bedingungen:
mit doppelten Werten, ohne leere Werte (““), ohne Werte „?“
4) zählenspezial4
Anzahl2 wie oben unter folgenden Bedingungen:
mit doppelten Werten, mit Werten „ja“
Vielleicht findet sich hier jemand, der mir bei der Lösung helfen kann. Bin für jeden Ratschlag dankbar.
Grüße
Konrad

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teilergebnis 103 – Anzahl2 mit Bedingungen
28.04.2017 09:59:15
ransi
hallo,
Teste mal diese 3:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

'1) zählenspezial1
'Anzahl2 wie oben unter folgenden Bedingungen:
'mit doppelten Werten, ohne leere Werte (““)
'
'2) zählenspezial2
'Anzahl2 wie oben unter folgenden Bedingungen:
'mit doppelten Werten, ohne leere Werte (““), ohne Werte „nein“
'
'3) zählenspezial3
'Anzahl2 wie oben unter folgenden Bedingungen:
'mit doppelten Werten, ohne leere Werte (““), ohne Werte „?“
'
'4) zählenspezial4
'Anzahl2 wie oben unter folgenden Bedingungen:
'mit doppelten Werten, mit Werten „ja“

Function ZählenSpezial1(bereich As Range) As Long
    Dim zelle As Range
    Dim mydic
    Dim L As Long
    Set mydic = CreateObject("scripting.dictionary")
    For Each zelle In bereich
        If zelle.Height <> 0 Then
            If zelle.Value <> "" Then
                L = L + 1
                mydic(L) = 0
            End If
        End If
    Next zelle
    ZählenSpezial1 = mydic.Count
End Function


Function ZählenSpezial2(bereich As Range) As Long
    Dim zelle As Range
    Dim mydic
    Dim L As Long
    Set mydic = CreateObject("scripting.dictionary")
    
    For Each zelle In bereich
        If zelle.Height <> 0 Then
            If zelle.Value <> "" Then
                If zelle.Value <> "nein" Then
                    L = L + 1
                    mydic(L) = 0
                End If
            End If
        End If
    Next zelle
    ZählenSpezial2 = mydic.Count
End Function


Function ZählenSpezial3(bereich As Range) As Long
    Dim zelle As Range
    Dim mydic
    Dim L As Long
    Set mydic = CreateObject("scripting.dictionary")
    
    For Each zelle In bereich
        If zelle.Height <> 0 Then
            If zelle.Value <> "" Then
                If zelle.Value <> "?" Then
                    L = L + 1
                    mydic(L) = 0
                End If
            End If
        End If
    Next zelle
    ZählenSpezial3 = mydic.Count
End Function


Zählenspezial 4 hab ich nicht verstanden.
Sollen da nur Zellen mit "ja" gezählt werden?
ransi
Anzeige
AW: Teilergebnis 103 – Anzahl2 mit Bedingungen
28.04.2017 15:20:06
KK
Hallo ransi,
vielen herzlichen Dank für deine perfekte Lösung!
zu Zählenspezial4:
richtig, es sollen nur Zellen mit "ja" gezählt werden - müßte der Code dann so aussehen?
Function ZählenSpezial4(bereich As Range) As Long
Dim zelle As Range
Dim mydic
Dim L As Long
Set mydic = CreateObject("scripting.dictionary")
For Each zelle In bereich
If zelle.Height  0 Then
'If zelle.Value  "" Then
If zelle.Value = "ja" Then
L = L + 1
mydic(L) = 0
End If
'End If
End If
Next zelle
ZählenSpezial4 = mydic.Count
End Function

Noch eine Bitte habe ich - nachdem deine Codes so sauber strukturiert sind:
könntest du den ursprünglichen Code für zählenSpezial ebenso sauber strukturiert als ZählenSpezial0 darstellen?
Grüße
Konrad
Anzeige

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige