Formel zählen leere Zellen
#1
Guten Tag Leute,

ich versuche gerade per Makro Formel in Zelle zu schreiben. Das klappt alles soweit. Nur habe ich ein Problem. Meine Formel zählt nur die Skills a,b 1,2. Ich denke das wird aus der Datei ersichtlich. Nun möchte ich allerdings, wenn jemand keine Skills einträgt, sozusagen das leere Feld gezählt wird. In der Datei dargestellt durch "Musterkind" sollte dieser Datensatz in Tabelle2!D6 eine 1 ausgeben. Das ist das Ziel.

Ich hatte eine Idee, leider funktioniert diese nicht.

Code:
.Range("b4").FormulaLocal = "=ZÄHLENWENNS(" & .Range("e1") & "!c2:c4;b3;" & .Range("e1") & "!d2:d4;a4)"
Ich wollte diese funktionierende Formel aus B4 folgendermaßen für B6 erweitern:
Code:
.Range("b6").FormulaLocal = "=ZÄHLENWENNS(" & .Range("e1") & "!c2:c4;b3;" & .Range("e1") & "!d2:d4;"")"

jetzt gibt es ein Problem am Ende der Formel wenn ich sozusagen leere Zellen zählen möchte mache ich ja eig "" allerdings kommt bei dem Makro dann ein Problem. Hat jemand eine Lösung. Ich hoffe ich habe mich verständlich ausgedrückt. 
P.S.: kurze Erklärung: Schaltfläche3 befüllt die Tabelle mit Formeln und Schaltfläche1 schreibt in E3 den Tabellenblattnamen, von welchem die Daten kommen sollen.


Angehängte Dateien
.xlsm   test forum.xlsm (Größe: 23,83 KB / Downloads: 6)
Top
#2
Wie wäre es mit
Code:
=ZÄHLENWENNS(...)+ANZAHLLEEREZELLEN(...)
?

Und wieso trägst du mit VBA die Formeln ein und nicht gleich die Werte?
Schöne Grüße
Berni
Top
#3
Hallo,

lasse Zelle A6 und D3 jeweils leer und nimm SUMMENPRODUKT:
Code:
.Range("b4:d6").FormulaR1C1 = "=SUMPRODUCT((Tabelle1!R2C3:R4C3=R3C)*(Tabelle1!R2C4:R4C4=R[-4]C1))"
Gruß
Michael
Top
#4
Hallo ihr beiden und danke für eure Vorschläge.
Ich glaube eine Sache habe ich nicht ganz korrekt rüber gebracht.

Es soll in der Formel der Bezug zu der Zelle E1 gegeben sein. Da diese Befüllung der Tabelle in Summe über 100 mal geschehen soll und daher wäre jedes mal Formel eintragen etwas umständlich.
Top
#5
Was hat jetzt bitte die Zelle E1 mit den leeren Zellen zu tun? Ich versteh grad nur Bahnhof.
Deine Formel
Code:
.Range("b4").FormulaLocal = "=ZÄHLENWENNS(" & .Range("e1") & "!c2:c4;b3;" & .Range("e1") & "!d2:d4;a4)"
funktioniert doch tadellos. Ich habe dazu vorgeschlagen, dass du die leeren Zellen mit der zusätzlichen Formel ANZAHLLEEREZELLEN zählst.
Schöne Grüße
Berni
Top
#6
Hey Berni,

in Zelle E1 steht der Tabellenblattname auf welchen sich die Tabelle sich bezieht. Nachher habe ich eine ExcelDatei mit sehr vielen Tabellenblättern. Mir geht es darum das ich Zellenkombinationen zählen will. wie z.b. leere Zelle und 1.
Top
#7
Ach jetzt weiß ich, was dein Problem ist. Das hat aber mit E1 gar nichts zu tun, du brauchst nur die richtige Syntax für die Suche nach "" (leer). Ob du dann den Verweis auf die Zelle E1 einbaust oder nicht, ist völlig unerheblich.

Code:
.Range("b6").FormulaLocal = "=ZÄHLENWENNS(" & .Range("e1") & "!c2:c4;b3;" & .Range("e1") & "!d2:d4;"""")"
.Range("c6").FormulaLocal = "=ZÄHLENWENNS(" & .Range("e1") & "!c2:c4;c3;" & .Range("e1") & "!d2:d4;"""")"
.Range("d6").FormulaLocal = "=ZÄHLENWENNS(" & .Range("e1") & "!c2:c4;"""";" & .Range("e1") & "!d2:d4;"""")"
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • elamigo
Top
#8
Hey Berni,

danke dir genau das habe ich gesucht! 
Ja ich gebe zu das mit dem E1 war wohl etwas verwirrend...mea culpa

DANKE nochmal Berni :18:
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste