Hallo Experten!
Hallo Wiedhalm,
Als Hobby-Makroschreiber stehe ich wieder einmal vor einer
für mich zur großen Hürde und ersuche um Hilfe:
Verwende VBA 6.5 in Excel .
Mein Makro soll zur Gänze in einer aktivierten Tabelle
ablaufen, jedoch in verschiedenen Tabellen nacheinander
angewandt werden können, wo neben anderem auch die Summierung
einer Spalte durchzuführen ist. Das Problem ist, daß die
Summierungbereiche stets unterschiedlich sind (zB. einmal b5
bis b20, in der nächsten Tabelle b5 bis b25, usw).
Mein Ansatz:
Dim anf As Range
Dim end As Range
Das glaube ich dir nicht. end ist ein Schlüsselwort, das kannst du nicht als Variablennamen benutzen.
.
.
.
Set anf = ActiveCell
Was passiert denn hier dazwischen? Aktiverst du per Makro die letzte Zelle?
Falls nicht, ist anf und end gleich. Falls ja: Activate ist in Makros fast immer überflüssig.
.
.
.
Set end = ActiveCell
.
.
.
ActiveCell.Formula = „=Sum(anf:end)“
Gleiche Frage: Hast du die aktive Zelle vorher im Code verschoben?
Wo liegt der Fehler? Fehlen nur irgendwo ein paar
Gänsefüßchen? Geht es nur ganz anders und wie ?
Da ist einiges im Argen.
anf und end (was ja eigentlich nicht geht) sind Variablennamen. Wenn du die in eine Formel schreibst, weiß Excel damit nichts anzufangen, es sei denn, du hättest sie als Namen für Zellen in Excel definiert.
Vorschlag: Ich vermute ja, dass du, bevor du den Makro startest, die erste aktive Zelle von Hand auswählst. Dann könntest du doch auch gleich den gesamten Bereich selektieren, der summiert werden soll. Dann könnte der Makro so aussehen:
Sub summeBilden()
Cells(Selection.End(xlDown).Row + 1, Selection.Column).Formula = "=SUM(" & Selection.Address & ")"
End Sub
Er schreibt die Summe unter die letzte ausgewählte Zelle
Besten Dank im Voraus für Eure Bemühungen und
freundliche Grüße
wiedhalm
Gruß,Andreas