erst mal sorry für den komischen Betreff... ich wusste nicht wie ich es am besten beschreiben soll.
Bin absoluter VBA Anfänger und bräuchte eure Hilfe! :-)
Das Makro soll bestimmte Daten aus einem Eingabeformular (Buchungsbeleg) in ein andere Excel Tabelle übertragen (Cash Flow Erstattungen.xls).
Funktioniert auch alles einwandfrei... bis auf ein Problem:
er überträgt die Werte noch nicht in die richtige Spalten!
Die Tabelle in die er die Daten übertragen soll ist so aufgebaut:
Spalte1: BKR | Spalte2: GES | Spalte3: Zeitraum | Spalte4: KSt | Spalte5: SolZ | Spalte6: Zins | Spalte7: GewSt | Spalte8: Zins
Bislang überträgt er die Werte einfach nach der Reihenfolge
'Ab hier werden die entsprechenden Werte eingetragen
wksZ.Cells(zeileZ, 1).Resize(, 6) = Array(BKR, GES, Zei, GewSt, Zins)
In Spalte 1 - 6.
Er soll aber in diesem Fall die Spalten | KSt | SolZ | Zins |, also
Spalte D - F überspringen und dort nichts eintragen!
Kann man das in die Formal einbauen?
'Ab hier werden die entsprechenden Werte eingetragen
wksZ.Cells(zeileZ, 1).Resize(, 9) = Array(BKR, GES, Zei, LEER, LEER, LEER _
_
_
GewSt, Zins)
Hier ist das ganze Makro:
Sub ÜbertragZahlungsinfo()
'Aus dem Buchungsbeleg sollen die Buchungen mit Zahlungsvorgang _
in die Zahlungsinfo übertragen werden.
'J.Keller, 12.05.2016
Dim BKR, Datei As String
Dim GES, Zei, Betrag, Fäll, GewSt, Zins
Dim zeileQ As Long, zeileZ As Long
Dim wksQ As Worksheet
Dim wkbZ As Workbook, wksZ As Worksheet
' _
_____________________________________________________________________________________________________
'Hier bitte innerhalb der Anführungszeichen die genaue Dateibezeichnung mit Pfad eintragen !!! _
_
_
_
'Dabei ".xls" nicht vergessen !!
Application.ScreenUpdating = False
Datei = "C:\Users\kellerjo\Desktop\Buchungsbeleg NEU - Test\Cash Flow Erstattungen.xls"
' _
______________________________________________________________________________________________________
Set wksQ = ActiveSheet
Set wkbZ = Workbooks.Open(Datei)
'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
BKR = wksQ.Cells(8, 2) 'Buchungskreis
GES = wksQ.Cells(9, 2) 'Gesellschaft
Fäll = wksQ.Cells(9, 8) 'Fälligkeit
Set wksZ = wkbZ.Sheets(Format(Fäll, "MMM YYYY"))
For zeileQ = 12 To 20 'erste Zeile mit Buchungen
Zei = wksQ.Cells(zeileQ, 9) 'Zeitraum
Betrag = wksQ.Cells(zeileQ, 10) 'Betrag
GewSt = wksQ.Cells(zeileQ, 11) 'KSt
Zins = wksQ.Cells(zeileQ, 12) 'Zins
If Betrag "" Then
'Wenn überhaupt kein Betrag eingetragen ist, erfolgt keine Übetragung an die SchnStelle
'Nachfolgende Schleife sucht die erste freie Zeile auf dem Blatt Schnittstelle
zeileZ = wksZ.Cells(Rows.Count, 2).End(xlUp).Row + 1
'Ab hier werden die entsprechenden Werte eingetragen
wksZ.Cells(zeileZ, 1).Resize(, 6) = Array(BKR, GES, Zei, GewSt, Zins)
End If
Next zeileQ
wkbZ.Close True
End Sub
Vielen lieben Dank im Voraus!
VG
John