Hallo Leute, da wir schon beim Thema sind, hier einmal das VBS-Tool, mit dem ein Konto einfach als DATEV-Vorlauf exportieren kann. Der Import erfolgt dann einfach als "ASCII-Daten importieren" -> "Buchungsstapel" Option Explicit
On Error Resume Next
Set objExcel = GetObject(,"Excel.Application")
If err.number<>0 Then
Err.Clear
Set objExcel = CreateObject("Excel.Application")
End if
objExcel.Visible = True
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objExcel
Dim shtSource
Dim shtTarget
Dim iRow, q, iCol
Dim sValue(114) 'lt. Feldbeschreibung Buchungsstapel
Dim sTemp
Dim cDatum
Dim cBelegfeld1
Dim cBelegfeld2
Dim cBuchungstext
Dim cUmsatzSoll
Dim cUmsatzHaben
Dim cKOST2
Dim sTmp
Dim GGKto
'Pfade bitte anpassen
Dim sTarget: sTarget="C:\Users\ama\Documents\DATEV\DATEN\RWDAT\Export\Abschluss.csv"
If objFSO.FileExists(sTarget) then objfso.DeleteFile(sTarget)
Set shtSource = objExcel.ActiveSheet
sTmp = Split(shtSource.cells(1,1),"-") 'Auslesen des GGKto.
GGKto = Trim(sTmp(5))
Const xlCellTypeLastCell=11
Const xlCellTypeVisible=12
'Auslesen der Feldreihenfolge
For iCol=1 To shtSource.usedrange.specialcells(xlCellTypeLastCell).Column
Select Case shtSource.cells(2,iCol).Text
Case "Datum": cDatum=iCol
Case "Belegfeld1": cBelegfeld1=iCol
Case "Belegfeld2": cBelegfeld2=iCol
Case "Buchungstext": cBuchungstext=iCol
Case "Umsatz Soll": cUmsatzSoll=iCol
Case "Umsatz Haben": cUmsatzHaben=iCol
Case "KOST2" cKOST2=iCol
End Select
Next
Dim MyFile
Set MyFile = objFSO.OpenTextFile(sTarget, 2, True)
'Spaltenüberschriften
For iCol = 1 To 114
sTemp = sTemp & "Spalte " & iCol & ";"
Next
MyFile.Writeline sTemp
For iRow = 3 To shtSource.usedrange.specialcells(xlCellTypeLastCell).row
If shtSource.Rows(iRow).RowHeight > 0 Then
If shtSource.cells(iRow,cUmsatzSoll) <>"" Then
sValue(1) = shtSource.cells(iRow,cUmsatzSoll)
sValue(2)="H"
Else
sValue(1) = shtSource.cells(iRow,cUmsatzHaben)
sValue(2)="S"
End If
sValue(7) = GGKto
sValue(8) = Trim(shtSource.cells(iRow,cKOST2))
sValue(10) = FormatExt(Day(shtSource.cells(iRow,cDatum)),2) & FormatExt(Month(shtSource.cells(iRow,cDatum)),2)
sValue(11) = Trim(shtSource.cells(iRow,cBelegfeld1))
sValue(12) = Trim(shtSource.cells(iRow,cBelegfeld2))
sValue(14) = Trim(shtSource.cells(iRow,cBuchungstext))
sValue(114) = 0
sTemp=""
For q = 1 To 114
sTemp = sTemp & sValue(q) & ";"
Next
MyFile.Writeline sTemp
End If
Next
MyFile.close
MsgBox "Fibu-Werte stehen zur Verfügung."
'Hilfsfunktion
Function FormatExt(Zahl,Anzahl)
FormatExt= Right(String(Anzahl, "0") & zahl,Anzahl)
End Function Den Code bitte kopieren und als Textdatei mit den Namen Konto2Fibu.vbs speichern. Vorgehensweise: Einfach das Transitkonto z. B. 1591 nach Excel exportieren. Im Feld KOST1 steht die Ziel-MdNr. und in KOST2 des Konto, wohin die Buchung soll. In Excel jetzt einfach auf KOST1 filtern und das Tool Konto2Fibu.vbs per Doppelklick starten. Danach einfach beim Empfängermandanten importieren. Für Fragen stehe ich gerne zur Verfügung. Es werden keine Änderungen am System vorgenommen. Ich übernehme aber keine Haftung. Ich habe das Tool bei mir getestet und es hat funktioniert. Gruß Achilleus
... Mehr anzeigen