Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1416to1420
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

statische CountIf-Funktion in dynamisch umwandeln?

statische CountIf-Funktion in dynamisch umwandeln?
07.04.2015 11:24:45
Robert
Hallo,
ich habe eine statische Funktion die mir die Anzahl verschiedener Kostenstellen in einer Spalte berechnet:
anzahlKostenstellen = Evaluate("=Sum(If(F2:F1293"""",1/CountIf(F2:F1293,F2:F1293)))")

Diese Funktion möchte ich nun so umändern, dass ich Spalte und Zeilenende vorgebe. Die gesucht Spalte (Dim spalteKostenstelle As Integer) und das gesuchte Zeilenende (Dim letzteZeile As Integer) habe ich mir bereits errechnet. Aber wie bekomme ich diese Variablen in die Funktion?
Ich habe es bereits für F2:F1293 folgendes probiert:
Range(Cells(2, spalteKostenstelle), Cells(letzteZeile, spalteKostenstelle))
Das sieht dann so aus:
anzahlKostenstellen = Evaluate("=Sum(If(Range(Cells(2, spalteKostenstelle), Cells(letzteZeile, spalteKostenstelle))"""",1/CountIf(Range(Cells(2, spalteKostenstelle), Cells(letzteZeile, spalteKostenstelle)),Range(Cells(2, spalteKostenstelle), Cells(letzteZeile, spalteKostenstelle)))))")
Dann kommt aber der Fehler "Laufzeitfehler 13 - Typen unverträglich"
Kann jemand helfen?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: statische CountIf-Funktion in dynamisch umwandeln?
07.04.2015 11:30:01
Born
Hallo Robert,
kommt der Fehler auch, wenn Du nur einen der beiden Parameter dynamisch machst, den anderen aber erstmal statisch lässt? SInd die beiden Variablen vor dem Aufruf der Funktion schon mit einem Wert belegt?
Viele Grüße,
M. Born

AW: statische CountIf-Funktion in dynamisch umwandeln?
07.04.2015 11:36:37
Robert
Hi Born,
also die beiden dynamischen Werte werden vorher belegt und sind somit vorhanden. Meinst Du anstelle von "letzteZeile" einen festen Wert eintragen damit nur noch spalteKostenstelle dynamisch ist z.B. so:
anzahlKostenstellen = Evaluate("=Sum(If(Range(Cells(2, spalteKostenstelle), Cells(1293, spalteKostenstelle))"""",1/CountIf(Range(Cells(2, spalteKostenstelle), Cells(1293, spalteKostenstelle)),Range(Cells(2, spalteKostenstelle), Cells(1293, spalteKostenstelle)))))")
Es kommt immernoch die gleiche Fehlermeldung :-(

Anzeige
AW: statische CountIf-Funktion in dynamisch umwandeln?
07.04.2015 11:38:35
Born
Hallo Robert,
genau das meinte ich. Probiere mal dasselbe, indem Du jetzt die andere Variable nutzt und so Dich Schritt für Schritt an den Fehler herantastest.
Viele Grüße,
M. Born

AW: statische CountIf-Funktion in dynamisch umwandeln?
07.04.2015 11:41:40
Daniel
Hi
für das Evaluate brauchst du den Textstring in genau dieser Form mit der A1-Addressierung.
am einfachsten gehts so:
erstelle erstmal den Formeltext für die Evaluierung mit Dummy-Zeichen ("xxx") für den Bereich der Variabel sein muss.
"Berechne" den einzusetzenden Text und ersetze die Dummy-Zeichen durch diesen Text.
Sub test()
Dim anzahlKostenstellen As Long
Dim strEVA As String
Dim letzteZeile As Long
Dim Spalte As Long
Dim strZellbereich As String
letzteZeile = 1293
Spalte = 6
strEVA = "=Sum(If(xxx"""",1/CountIf(xxx,xxx)))"
strZellbereich = Range(Cells(2, Spalte), Cells(letzteZeile, Spalte)).Address(0, 0)
strEVA = Replace(strEVA, "xxx", strZellbereich)
anzahlKostenstellen = Evaluate(strEVA)
End Sub
Gruß Daniel

Anzeige
AW: statische CountIf-Funktion in dynamisch umwandeln?
07.04.2015 12:28:15
Robert
Vielen Dank.
Das hat geklappt :-)

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige