Thema Datum  Von Nutzer Rating
Antwort
11.08.2009 11:30:18 Sabine
NotSolved
Blau Aw:Unterschiedlich große Bereiche bearbeiten
11.08.2009 13:38:23 Holger
NotSolved
18.08.2009 15:25:13 Sabine
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
11.08.2009 13:38:23
Views:
746
Rating: Antwort:
  Ja
Thema:
Aw:Unterschiedlich große Bereiche bearbeiten
Hallo Sabine,
es ist unklar, was du unter Summe über alle Zeilen verstehst. Ich nehme an, dass es spaltenweise sein soll und gebe dir ein Beispiel für die Spalte A, das du einfach verändern kannst.
Voraussetzung ist, dass es nur an den Grenzen der Bereiche Rahmenelemente gibt, sonst muss das Makro modifiziert werden. Es ist ohnehin nur quick-and-dirty erstellt und lässt sich bestimmt einfacher realisieren.
Im ersten Teil bestimme ich Bereichsgrenzen, indem ich prüfe, ob eine Zelle einen unteren Rahmen hat. Ist dies der Fall, schreibe ich die Zeilennummer ins Array grenze. Dabei setze ich die erste und letzte Grenze so, dass der erste Additionsvorgang in jedem Fall auch die Zeile 1 erfasst und der letzte bis zur letzten gefüllten Zelle läuft. Danach addiere ich die Werte zwischen zwei aufeinander folgenden Grenzen und schreibe die Ergebnisse in das Array summe, dessen Werte nach Abschluss der Bearbeitung beispielhaft in einer MsgBox ausgegeben werde.

Sub Border_prüfen()
ReDim grenze(0)
a = 0
grenze(a) = 0
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row - 1
If ActiveSheet.Range("A" & i).Borders(xlEdgeBottom).LineStyle <> -4142 Then
a = a + 1
ReDim Preserve grenze(a)
grenze(a) = i
End If
Next i
a = a + 1
ReDim Preserve grenze(a)
grenze(a) = i

ReDim summe(a - 1)
For i = 0 To a - 1
summe(i) = 0
For j = grenze(i) + 1 To grenze(i + 1)
summe(i) = summe(i) + Cells(j, 1)
Next j
Next i

s = ""
For i = 0 To a - 1
s = s + CStr(summe(i)) + vbCrLf
Next i
MsgBox s
Exit Sub

Ich denke, die Anpassung an die tatsächlichen Erfordernisse dürfte einfach sein. Dennoch wäre eine Rückmeldung wünschenswert.
Gruß
Holger


Sabine schrieb am 11.08.2009 11:30:18:

Hallo,

meine letzte Anfrage „Bereiche unterschiedlicher Größe bearbeiten, Summe“ ist wohl irgendwie untergegangen, deshalb versuch ich es einfach noch einmal.
Wie kann ich das Ende und den Anfang eines Bereiches bestimmen, dessen offensichtliche Begrenzung Rahmenlinien [Borders(xlEdgeBottom)] sind, um dann beispielsweise die Summe aus allen Zeilen des Bereichs zu bestimmen.
Hätten die Bereiche immer gleich viele Zeilen wäre dies kein Problem, leider sind diese aber immer unterschiedlich groß.
Die Tabelle besteht aus fortlaufenden Zeilen, getrennt sind Zeilenblöcke durch besagt Rahmenlinien.Die Bereiche sollen nacheinander bis zum Ende der Tabelle abgearbeitet werden.
Eine Idee würde mir schon genügen, schließlich will ich ja noch etwas dabei lernen.

Vielen Dank

Sabine

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
11.08.2009 11:30:18 Sabine
NotSolved
Blau Aw:Unterschiedlich große Bereiche bearbeiten
11.08.2009 13:38:23 Holger
NotSolved
18.08.2009 15:25:13 Sabine
NotSolved