Hallo ich bin gerade dabei in Excel für eine Firma eine Rechnungsvorlage zu erstellen. Leider habe ich noch nie mit Makros gearbeitet und daher auch keine Ahnung wie man sie programmiert. Mein Problem ist nun in Excel2000 Wie ich es anstellen kann, dass es mir in Spalte „K“ auf Buttondruck auf den Button „Endbetrag“ nach der Eingabe aller Werte die berechnet werden sollen, den Endbetrag berechnet. Ich brauche diese Funktion da ich bei der Rechnung nicht genau abschätzen kann wie viele Werte ich immer eingebe, deshalb soll es mir den Endwert berechnen, wenn ich auf den programmierten Button „Endbetrag“ drücke.
Hoffe mir kann jemand helfen, wäre wirklich nett, am besten mit einem Makro!
Wenn ich’s richtig verstanden habe, dann willst Du die Zellen A bis J aufaddieren und in K ausgeben lassen, wobei nicht zwingend alle Zellen A bis J ausgefüllt sein müssen, richtig? Wenn ich’s richtig verstanden habe brauchst Du kein Makro, wenn ich’s falsch verstanden habe musst Du’s nochmal erklären 
moe.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Also nochmal, in Spalte K sollen Werte eingegeben werden, jedoch keine bestimmte Anzahl sondern einmal vielleicht nur 8 Werte die addiert werden sollen, manchmal auch 40 Werte die addiert werden sollen usw. Jedoch soll es beim ausdruck der Rechnung stets direkt unter den Werten die Summe anzeigen egal ob es nur 8 und egal ob es 40 Werte sind. Klar ausgedrückt?
Danke im voraus
Hallo,
-
über die Symbolleiste „Visual Basic“ eine Befehlsschaltfläche einfügen (CommandButton).
-
Rechtsklick auf den Commandbutton und „Code anzeigen“ auswählen
-
in der erscheinenden Prozedur (sub CommandButton1_Click()) die folgenden Befehle eingeben :
Dim letzteZeile As Integer
Const Rechnungsblatt As String = „Rechnung“
Const Spalte As String = „K“
Const ersteMglZeile As Integer = 2
Const letzteMglZeile As Integer = 15
With Worksheets(Rechnungsblatt)
If .Range(Spalte & letzteMglZeile) = „“ Then
letzteZeile = .Range(Spalte & letzteMglZeile).End(xlUp).Row
Else
letzteZeile = letzteMglZeile
End If
.Range(Spalte & CStr(letzteZeile + 1)).Formula = _
„=Sum(“ & Spalte & ersteMglZeile & „:“ & Spalte & letzteZeile & „)“
End With
Den Konstantenbereich (Zeilen beginnend mit „Const“) wie folgt anpassen:
Rechungsblatt - Name des Tabellenblattes mit der Rechnung
Spalte - Buchstabe der Spalte mit den zu summierenden Eingabewerten
ersteMglZeile - Nummer der ersten für die Eingabe der Einzelbeträge zur Verfügung stehenden Zeile
letzteMglZeile - Nummer der letzten für die Eingabe der Einzelbeträge zur Verfügung stehenden Zeile
- Visual Basic Editor schließen
- in der Symbolleiste „Visual Basic“ den Entwurfsmodus ausschalten
Jetzt kann die Befehlsschaltfläche genutzt werden. Das Makro sucht im Eingabebereich die Zeile mit dem letzten Eingabewert und fügt in der darunterliegenden Zeile die notwendige Summenformel ein.
Viele Grüße
Hi erst mal Danke für deine Mühe die du dir gemacht hast, es zeigt mir jedoch wenn ich auf den Button klicke „Index außerhalb des gültigen Bereichs an“ und zeigt dabei die Befehlszeile „With Worksheets(Rechnungsblatt)“ gelb unterlegt, was ist falsch und muss geändert werden?
Danke
Index außerhalb des gültigen Bereichs
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Die Konstante Rechnungsblatt in der Prozedur ist nicht richtig angepasst.
Habe diese voreingestellt, auf den Wert „Rechnung“ , d.h. es muß ein Tabellenblatt mit der Bezeichnung Rechnung auch vorliegen.
Also benenne das Tabellenblatt mit Deiner Rechnung in Rechnung um, bzw. ändere die o.g Konstante auf den Namen des betreffenden Tabellenblattes, z.B. auf den Wert „Tabelle1“
Nun müßte es funktionieren.
Hi Daniel,
ich habe den Tread nicht ganz durchgelesen, aber das heißt der Name stimmt nicht.
Gruß
Reinhard