Rechnung schreiben und Daten speichern



Excel-Version: 5.0/7.0
nach unten

Betrifft: Rechnung schreiben und Daten speichern
von: UliP.
Geschrieben am: 13.06.2002 - 14:22:51

Hallo zusammen,

ich hatte vor kurzem die Frage ins Forum gestellt, wie ich eine Rechnung schreiben und nach dem Druck die relevanten Rechungsdaten (Datum, Name, Betrag) in einem gesonderten Arbeitsblatt speichern kann. Auf den Rat von Hans W. Herber habe ich den unten stehenden Code in ein Modul geschrieben und einem Arbeitsblatt den Namen "Journal" gegeben. Wenn ich das Makro starte, passiert aber nix. Lediglich meine Mappe wird dupliziert. Kann mir jemand sagen, was ich falsch mache?

hier der Code, den ich aus einem Beitrag von H.H. kopiert habe (bei mir stehen die zu speichernden Daten in B9, B10; B12 und K22, ich habe den Code hier aber aus Verständnisgründen unverändert wiedergegeben)

Vielen Dank für eure Mühe
Gruß Uli

'StandardModule: modMain

Sub NeueRechnung()
Dim shJournal As Worksheet
Dim intRowT As Integer, intRowS As Integer, intCounter As Integer
Set shJournal = Worksheets("Journal")
With Worksheets("Journal")
intRowT = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
intRowS = 28
For intCounter = 6 To 8
.Cells(intRowT, intCounter) = Cells(46, intCounter)
Next intCounter
Do Until IsEmpty(Cells(intRowS, 1))
.Cells(intRowT, 1) = Range("H19")
.Cells(intRowT, 2) = Range("H21")
.Cells(intRowT, 3) = Range("H20")
.Cells(intRowT, 4) = Cells(intRowS, 1)
.Cells(intRowT, 5) = Cells(intRowS, 4)
intRowS = intRowS + 1
intRowT = intRowT + 1
Loop
End With
ActiveSheet.Copy
ThisWorkbook.Activate
Range("A8:A13, H20,A28:H45").ClearContents
Range("H19") = Range("H19") + 1
Range("H21") = Date
End Sub




nach oben   nach unten

Re: Rechnung schreiben und Daten speichern
von: Silvio
Geschrieben am: 13.06.2002 - 14:42:32

Ändere den Code folgender Weise ab:
Dann erhälst du immer eine neue Arbeitsmappe mit den gespeicherten Werten diese schließt sich dann auch wieder autom.
und du kannst mit der aktiven Tabelle weiter arbeiten:


Sub NeueRechnung()
Dim shJournal As Worksheet
Dim intRowT As Integer, intRowS As Integer, intCounter As Integer
Set shJournal = Worksheets("Journal")
With Worksheets("Journal")
intRowT = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
intRowS = 28
For intCounter = 6 To 8
.Cells(intRowT, intCounter) = Cells(46, intCounter)
Next intCounter
Do Until IsEmpty(Cells(intRowS, 1))
.Cells(intRowT, 1) = Range("H19")
.Cells(intRowT, 2) = Range("H21")
.Cells(intRowT, 3) = Range("H20")
.Cells(intRowT, 4) = Cells(intRowS, 1)
.Cells(intRowT, 5) = Cells(intRowS, 4)
intRowS = intRowS + 1
intRowT = intRowT + 1
Loop
End With
ActiveSheet.Copy
ActiveWorkbook.SaveAs
ActiveWindow.Close
ThisWorkbook.Activate
Range("A8:A13, H20,A28:H45").ClearContents
Range("H19") = Range("H19") + 1
Range("H21") = Date
End Sub


nach oben   nach unten

Re: Rechnung schreiben und Daten speichern
von: UliP.
Geschrieben am: 13.06.2002 - 15:05:05

Danke für deine Mühe, Silvio,

ich kann aber nicht erkennen, wo du den Code-Text verändert hast.
Vielleicht noch zum besseren Verständnis: Ich will nicht die ganze Rechnung speichern, sondern die relevanten Daten der Rechnung sollen in Listenform in ein weiteres Tabellenblatt geschrieben werden (das soll hier Journal heißen). Sonst hätte ich bei 10 Rechnungen am Tag bald eine unübersichtliche Menge Excel-Dateien in der Kiste. Der Rechnungsvordruck selbst soll nach dem Listeneintrag geleert werden (das würde ich mit einem einfachen Makros schon hinkriegen).
Nach der ganzen Aktion müsste dann die Arbeitsmappe in Tabelle 1 den Rechnungsvordruck enthalten und in Tabelle (Journal) die bisher geschriebenen Rechnungsdaten.
Nochmals vielen Dank im voraus für Lösungen und entschuldigt bitte meine langen Ausführungen.
Gruß
Uli



nach oben   nach unten

Re: Rechnung schreiben und Daten speichern
von: Silvio
Geschrieben am: 14.06.2002 - 01:57:17

Lösungsvorschlag:
Lege Dir in deiner Arbeitsmappe zwei Tabellenblätter an...
Das erste Tabellenblatt nennst du "Rechnung" und das zweite Tabellenblatt nennt du "Journal"...
Rechnung (ist die Tabelle mit dem Rechnungsvordruck)
Journal (hier werden später die Eingaben gesichert)

Gehe jetzt in die Tabelle(Journal) und schreibe in die Zellen:

MS Excel von Silvio an UliP.
 ABCD
1=Rechnung!B9=Rechnung!B10=Rechnung!B12=Rechnung!K22

Beachte! Die Zellenangaben in dieser Tabelle müßen unbedingt eingehalten werden!

Jetzt diesen Code in ein Modul einfügen...


Sub Uebertrag()
Sheets("Journal").Select
Dim laR As Long
Dim As Byte
    laR = Worksheets("Journal").Cells(Rows.Count, 1).End(xlUp).Row
    If laR < 9 Then laR = 9
    For i = 1 To Step 1
    Worksheets("Journal").Cells(laR + 1, i).Value = Cells(1, i).Value
    Next i
    Sheets("Rechnung").Select
    Range("B9:B10, B12, K22").ClearContents
End Sub

Jetzt gehst du in die Tabelle Rechnung und erstellst ein Button
und gibt dieser Schaltfläche dieses Makro....

Achtung bei Ausführung des Codes wird in der Tabelle "Rechnung"
folgende Zellen gelöscht: B9,B10,B12,K22

Ich hoffe es funktioniert so wie du es wolltest...
Bye Silvio



 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Rechnung schreiben und Daten speichern"