Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
11.08.2009 11:30:18 |
Sabine |
|
|
Aw:Unterschiedlich große Bereiche bearbeiten |
11.08.2009 13:38:23 |
Holger |
|
|
|
18.08.2009 15:25:13 |
Sabine |
|
|
Von:
Holger |
Datum:
11.08.2009 13:38:23 |
Views:
756 |
Rating:
|
Antwort:
|
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
|
- 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
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- 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 |
|
|
Aw:Unterschiedlich große Bereiche bearbeiten |
11.08.2009 13:38:23 |
Holger |
|
|
|
18.08.2009 15:25:13 |
Sabine |
|
|