Excel 2010 // Makro
03.05.2016 10:40:48
Keller
ich will mit einem Makro Werte von einer Excel-Datei (Buchungsbeleg.xls) in eine andere Excel-Datei (Cash Flow KSt-SolZ Zahlungen.xls) übertragen.
Auf dem Buchungsbeleg gibt man in einer Zelle ein Fälligkeitsdatum ein, z. B. 03.05.2016.
Die Datei Zahlungsinfodatei (Cash Flow..) ist in verschiedene Reiter unterteilt:
Jan 2016, Feb 2016, ... Mai 2016.
Der Übertrag funktioniert einwandfrei... jedoch nur weil ich bisher
Workbooks("Cash Flow KSt-SolZ Zahlungen.xls").Sheets("Mai 2016").Activate
direkt das richtige Sheet angegeben habe.
Gibt es eine Möglichkeit, dass er anhand des eingegebenen Fälligkeitsdatum
Fäll = ActiveWorkbook.ActiveSheet.Cells(9, 8) erkennt, in welchen Monat er die Daten übertragen soll?
Um die Verwirrung perfekt zu machen, anbei noch das Makro:
Option Explicit
Sub ÜbertragZahlungsinfo()
'Aus dem Buchungsbeleg sollen die Buchungen mit Zahlungsvorgang in die Zahlungsinfo übertragen _
_
werden.
'J.Keller, 02.05.2016
Dim BKR, Datei As String
Dim GES, StArt, Betrag, Fäll, KSt, SolZ
Dim zeileQ, zeileZ
'_____________________________________________________________________________________________________
'Hier bitte innerhalb der Anführungszeichen die genaue Dateibezeichnung eintragen !!!!!
'Dabei ".xls" nicht vergessen !!
Datei = "Buchungsanweisung_Keller_KSt.xls"
'______________________________________________________________________________________________________
'Nachfolgende Schleife springt von Zeile zu Zeile und überträgt die Daten,
'wenn ein Betrag eingetragen ist
'Diese Schleife durchläuft den oberen Teil des Buchungsbeleges
zeileQ = 12 'erste Zeile mit Buchungen
Do
BKR = ActiveWorkbook.ActiveSheet.Cells(8, 2) 'Buchungskreis
GES = ActiveWorkbook.ActiveSheet.Cells(9, 2) 'Gesellschaft
StArt = ActiveWorkbook.ActiveSheet.Cells(zeileQ, 9) 'Steuerart
Betrag = ActiveWorkbook.ActiveSheet.Cells(zeileQ, 10) 'Betrag
Fäll = ActiveWorkbook.ActiveSheet.Cells(9, 8) 'Fälligkeit
KSt = ActiveWorkbook.ActiveSheet.Cells(zeileQ, 13) 'KSt
SolZ = ActiveWorkbook.ActiveSheet.Cells(zeileQ, 14) 'SolZ
If Betrag = "" Then GoTo Ziel1
'Wenn überhaupt kein Betrag eingetragen ist, erfolgt keine Übetragung an die SchnStelle
Workbooks("Cash Flow KSt-SolZ Zahlungen.xls").Sheets("Mai 2016").Activate 'Ansprechen _
der Schnittstellen-Datei
'Nachfolgende Schleife sucht die erste freie Zeile auf dem Blatt Schnittstelle
zeileZ = 4
Do
zeileZ = zeileZ + 1
Loop Until ActiveWorkbook.ActiveSheet.Cells(zeileZ, 2) = ""
'Ab hier werden die entsprechenden Werte eingetragen
ActiveWorkbook.ActiveSheet.Cells(zeileZ, 1) = BKR
ActiveWorkbook.ActiveSheet.Cells(zeileZ, 2) = GES
ActiveWorkbook.ActiveSheet.Cells(zeileZ, 3) = StArt
ActiveWorkbook.ActiveSheet.Cells(zeileZ, 4) = Betrag
ActiveWorkbook.ActiveSheet.Cells(zeileZ, 5) = Fäll
ActiveWorkbook.ActiveSheet.Cells(zeileZ, 6) = KSt
ActiveWorkbook.ActiveSheet.Cells(zeileZ, 7) = SolZ
Workbooks(Datei).Sheets("Beleg").Activate
'Die Datei Buchungsanweisung wird wieder angesprochen;
Ziel1:
zeileQ = zeileQ + 1
Loop Until zeileQ > 20
End Sub