EXCEL 2010 VBA: Anzahl Zeilen und Spalten eines Range-Objektes bestimmen Aktualisiert Montag, den 04. November 2013 um 19:41 Uhr Wie viele Zeilen und Spalten hat ein Rangeobjekt? Schreibt man selbst Funktionen für eine EXCEL-Tabelle und erweitert somit den Funktionsumfang von EXCEL, ist es oftmals angezeigt, direkt Bereiche (Range) aus einer EXCEL-Tabelle an eine Funktion zu übergeben, um dann innerhalb der Funktion mit den Inhalten des übergebenen Bereichs weiterarbeiten zu können. In diesem Artikel wird die Summenfunktion, die EXCEL zugegebenermaßen schon bietet, nachempfunden. Das ist ein transparentes, nachvollziehbares Beispiel und dann in der Folge dazu geeignet, an die eigenen Zwecke angepasst zu werden. Aufgabenstellung Für den folgenden Bereich soll eine Summe berechnet werden, innerhalb der Funktion muss die Anzahl Zeilen und Spalten des Range-Objektes ermittelt werden, da eine Übergabe von Bereichen aus der Tabelle heraus flexibel erfolgen kann: 1/5 EXCEL 2010 VBA: Anzahl Zeilen und Spalten eines Range-Objektes bestimmen Aktualisiert Montag, den 04. November 2013 um 19:41 Uhr Derschreiben, Funktion Aufruf derBerechnung EXCEL-Summe ist einfach: InVorarbeiten Zelle B17 (verbundene Zelle) befindet sich die =SUMME(A2:D15). zu Für die eigne die ich hier "MeineSumme" der Summe sind nenne. in VBA notwendig. Es ist eine Funkton Entwicklung einer eigenen Summenfunktion Begonnen wird mit der Definition der Funktion "MeineSumme", die dann aus der Tabelle heraus als Funktion verwendet werden kann. Als Übergabeparameter wird eine Range erwartet, die auf den Namen "vBereich" hört. Function MeineSumme(ByVal vBereich As Range) As Double ... End Function 2/5 EXCEL 2010 VBA: Anzahl Zeilen und Spalten eines Range-Objektes bestimmen Aktualisiert Montag, den 04. November 2013 um 19:41 Uhr Folgende Variablen werden in der Funktion verwendet und zu Beginn der Funktion bekannt gemacht und typisiert (Definition der Vartiablenart wie Ganzzahl, Text, reelle Zahl etc). Dim lZeilen As Long Dim lSpalten As Long Dim lZaehlerZeilen As Long Dim lZaehlerSpalten As Long Dim dSumme As Double Die beiden folgenden Zeilen ermitteln die Anzahl Zeilen und Spalten der Range und somit ist das Rätsel der Ermittlung von der Anzahl von Zeilen und Spalten einer Range gelöst. lZeilen = vBereich.Rows.Count ' Die Anzahl Zeilen werden bestimmt lSpalten = vBereich.Columns.Count ' Die Anzahl Spalten werden bestimmt Jetzt muss nur noch die Summe gerechnet werden und der Funktion "MeineSumme" als Rückgabewert übergeben werden. For lZaehlerZeilen = 1 To lZeilen ' Hier werden die Werte in den einzelnen Zellen aufsummiert For lZaehlerSpalten = 1 To lSpalten dSumme = dSumme + vBereich.Cells(lZaehlerZeilen, lZaehlerSpalten).Value Next lZaehlerSpalten Next lZaehlerZeilen MeineSumme = dSumme Hier noch einmal der Programmcode im Zusammenhang 3/5 EXCEL 2010 VBA: Anzahl Zeilen und Spalten eines Range-Objektes bestimmen Aktualisiert Montag, den 04. November 2013 um 19:41 Uhr Function MeineSumme(ByVal vBereich As Range) As Double Dim lZeilen As Long Dim lSpalten As Long Dim lZaehlerZeilen As Long Dim lZaehlerSpalten As Long Dim dSumme As Double lZeilen = vBereich.Rows.Count ' Die Anzahl Zeilen werden bestimmt lSpalten = vBereich.Columns.Count ' Die Anzahl Spalten werden bestimmt dSumme = 0 ' Wert Initialisieren, ist eigentlich in VBA bei erstmaliger Verwendung nicht notwendig, ' aber eine alte Gewohnheit For lZaehlerZeilen = 1 To lZeilen ' Hier werden die Werte in den einzelnen Zellen aufsummiert For lZaehlerSpalten = 1 To lSpalten dSumme = dSumme + vBereich.Cells(lZaehlerZeilen, lZaehlerSpalten).Value Next lZaehlerSpalten Next lZaehlerZeilen MeineSumme = dSumme ' Übergabe des Summenergebnisses an das Rückgabeergebnis von MeineSumme End Function Aufruf der Funktion "MeineSumme" Der Aufruf dieser Funktion erfolgt analog dem Aufruf der Funktion =SUMME(A2:D15), nämlich mit =Mein eSumme(A2:D15) . In der Beispieltabelle befindet sich diese Funktion in Zelle B16. Beispiel zum Download Hier konnen Sie sich das Beispiel herunterladen. Bitte lesen Sie auch den Artikel Die Verwendung von ParamArray , das Beispiel wird in diesem Artikel erweitert, so dass die Funktion schon fast so arbeitet wie die SUMME von EXCEL. 4/5 EXCEL 2010 VBA: Anzahl Zeilen und Spalten eines Range-Objektes bestimmen Aktualisiert Montag, den 04. November 2013 um 19:41 Uhr 5/5