Ich habe in einer Spalte jeweils mehrere Zeilen zu einer Zelle
zusammengefasst, in welcher die Anzahl von Eintraegen in davor
liegenden Spalten aufsummiert werden soll. Das Problem ist, dass die
Anzahl der verbundenen Zeilen variabel ist und ich keine Moeglichkeit
gefunden habe, die Anzahl Zeilen oder den Bereich (Start- und
Endzeile) zu ermitteln, die die verbundene Zelle einnimmt.
Kurz gefragt: Wie kann ich Start- und Endzeile einer verbundenen Zelle
ermitteln, bzw. die Anzahl der verbundenen Zeilen?
Tom
Sub GroesseVonMergeAreaErmitteln()
If Selection.MergeCells = True Then
MsgBox "Anzahl Zeilen: " & Selection.Rows.Count & vbLf _
& "Anzahl Spalten: " & Selection.Columns.Count
End If
End Sub
MfG Frank
_____________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
E-Mail: Thei...@t-online.de
Am Sun, 22 Jul 2001 22:46:35 CET, schrieb je...@gmx.de (Thomas Henkel)
in microsoft.public.de.excel zu "Anzahl Zeilen in verbundenen Zellen
zaehlen?":
> [...]
>
> Kurz gefragt: Wie kann ich Start- und Endzeile einer verbundenen Zelle
> ermitteln, bzw. die Anzahl der verbundenen Zeilen?
Also das funktioniert jetzt erstmal mit einer kleinen
benutzerdefinierten Funktion.
Aber dazu noch eine Nachfrage: Wie bekomme ich jetzt den Rückgabewert
dieser Funktion in einen Zellbezug? Etwas in der Art
=ANZAHLLEEREZELLEN(ZS(-8):Z(ZeilenMerge()-1)S(-8))
^^^^^^^^^^^^^
funktioniert leider nicht.
Tom
mit der folgenden Funktion solltest du die Anzahl verbundener Zellen
ermitteln
können:
Dim R1 As Object
Dim FirstRow As Long, FirstColumn As Long
Dim LastRow As Long, LastColumn As Long
Dim MyArea As String
Dim Position As Integer
Dim CountCells As Long
Set R1 = ActiveCell.MergeArea
' Liefert erste Zelle im Bereich
FirstRow = R1.Row
FirstColumn = R1.Column
With R1
If .MergeCells Then ' es sind zusammenhaengende Zellen
MyArea = .Address(ReferenceStyle:=xlR1C1)
Position = InStr(1, MyArea, ":", vbTextCompare)
MyArea = Right(MyArea, Len(MyArea) - Position)
Position = InStr(1, MyArea, "C", vbTextCompare)
' Liefert letzte Zelle des Bereichs
LastRow = CLng(Right(Left(MyArea, Position - 1), Position - 2))
LastColumn = CLng(Right(MyArea, Len(MyArea) - Position))
End If
End With
CountCells =LastRow-FirstRow 'Die Zahl ist nur gueltig, falls die
verbundenen Zellen sich in einer Spalte befinden
Ich hoffe, ich kann dir damit weiterhelfen.
Viele Grüße
Klaus
Thomas Henkel schrieb in Nachricht <7W1fL22...@gmx.de>...