Anzeige
Archiv - Navigation
1296to1300
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

Bereich für worksheet.function

Bereich für worksheet.function
09.02.2013 19:56:36
Erwin
Hallo Experten,
ich füge in einer "Gesamt"-Excel-Datei in unregelmäßigen Abständen andere gleich aufgebaute Dateien zusammen und hole mir aus deren Bereich C1:O10 dazu die Daten mit der Zählenwenn-Funktion. Und da liegt mein Problem. Ich bekam zwar dankenswerterweise in diesem Forum auf meine Frage die Antwort, in der Tabelle in der alles zusammgezählt wird folgenden Programmcode einzusetzen:
Range("B2").formulalocal= "=Zählenwenn_Deine Formel"
Range("B2").autofill destination:=Range("B2:B12")
Aber wie spreche ich bei der Zählenwennfunktion/countif das Argument Bereich an, also die eingefügten Tabellenblätter die ja jedesmal unterschiedlich sind. Ich hab mal was von der Funktion UBound gelesen. Aber brauch ich dazu eine Schleife oder With-Anweisung? Ich bin jetzt -kurz vorm Ziel- ziemlich mit den Nerven fertig. Eigentlich bräuchte ich eine ganz stinknormale Zählenwennfunktion in B2:B12 in der Form =zählenwenn(Tabelle2:letzteTabelle!C1:O10;$A$2), halt nur in der VBA-Sprache.
Kann mir vielleicht jemand helfen.
Wäre super.
Danke
Erwin

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich für worksheet.function
10.02.2013 13:35:38
Gerd
Hallo Erwin!
Sub start()
Tabelle1.Cells(2, 2).Formula = "=SumCtIf(C1:O10,$A$2)"
End Sub
in allgemeinem Modul u. Datei speichern
Public Function SumCtIf(Bereich As Range, Kriterium As Variant)
Dim i As Integer
For i = 2 To Sheets.Count
SumCtIf = SumCtIf + WorksheetFunction.CountIf(Worksheets(i).Range(Bereich.Address),  _
Kriterium)
Next
End Function
Gruß Gerd

AW: Bereich für worksheet.function
10.02.2013 14:58:10
Erwin
Hallo Gerd,
danke für Deine Antwort, aber ganz bekomme ich es nicht auf die Reihe.
Wenn ich die "Function SumCtIf..." Prozedur starte kommt ein Fenster, ob ich das Makro "start" aufrufen möchte. Lass ich das Makro ausführen passt alles super. Aber nur halt in der ersten Zelle B2.
Wie kann ich jetzt noch die Formel automatisch bis B12 runterkopiern.
Kannst Du mir das bitte noch erklären und könnte man vielleicht das Makro "start" gleich ausführen lassen ohne Nachfrage?
Wäre super, wenn Du mir das noch erklären könntest!!!
Vielen Dank schon mal im voraus
Erwin

Anzeige
AW: Bereich für worksheet.function
10.02.2013 18:34:06
Gerd
Hallo Erwin!
Lassen wir beiseite, dass ich das beschriebene Verhalten erstmal nicht nachvollziehen kann.
Auf welche Bereiche soll "SumCtIf" in B3,B4 u. B12 angesetzt werden?
Gruß Gerd

AW: Bereich für worksheet.function
10.02.2013 20:07:26
Erwin
Hallo Gerd,
also der Bereich bleibt immer gleich (von Sheets(2) bis letztes Sheet "C1:O10"). Aber die Argumente ändern sich (A3, A4, A5 usw.). Du musst Dir das so vorstellen: In A2 bis A12 stehen fest 11 Orte und in den eingefügten Tabellenblätter sind im Bereich C1:O10 diese Orte aufgeführt, wo der Vertreter halt war.
Und in B2 bis B12 soll dann halt immer die Gesamtzahl hinter den Orten stehen, wie oft dort ein Vertreter war.
Schöne Grüße
Erwin

Anzeige
AW: Bereich für worksheet.function
10.02.2013 20:52:15
Gerd
Hallo Erwin,
mache einfach die Zeile des Kriteriums relativ.
Tabelle1.Cells(2, 2).Formula = "=SumCtIf(C1:O10,$A2)"
Gruß Gerd

AW: Bereich für worksheet.function
10.02.2013 21:02:09
Erwin
Hallo Gerd,
super!!!
Hätte darauf auch selber kommen können/müssen, aber manchmal sieht man vor lauter Bäume halt den Wald nicht mehr!
Auf alle Fälle hast Du mir super geholfen, ich danke Dir und wünsche noch einen schönen Abend
Schöne Grüße
Erwin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige