Hallo Zusammen,
kann mir jemand ein Tipp geben, wie ich Paypal-Kontoauszug in csv-Format am einfachsten über ASCII importieren kann? Der Mandant hat mir die csv-Datei von Paypal zur Verfügung gestellt (ohne UN-Online). Ich habe es versucht, eigene Importvorlage zu erstellen, ich kriege aber nicht mit, wie ich die Kontenzuordnung einrichten kann. Die Datei von Paypal enthält ja mehrere spalten und ich weis nicht wie ich gleichzeitig zwei Gegenknoten für eine Zeile einrichten kann (zum Beispiel für Erlöse und für Gebühren, die in der Datei in jeder Zeile separat ausgewiesen sind)
Vielen Dank im Voraus 🙂
Gelöst! Gehe zu Lösung.
Und PayPal im REWE direkt verbuchen ist keine Option? Hat sicherlich auch ein paar Nachteile und kostet bei DATEV auch was, aber dann erübrigt sich Ihre Frage und auch der Mandant muss nichts mehr von Hand tun oder exportieren. Die Umsätze landen täglich automatisch im DATEV RZ und können direkt im REWE verbucht werden.
Ist nur ein Tipp, bevor man da jetzt viel Aufwand reinsteckt und PayPal sich wann entscheidet den CSV Export zu ändern und man dann an der Vorlage wieder basteln muss.
Vielen Dank für die Antwort, das wäre sicherlich eine Lösung für mich gewesen. In meinem Fall ist es aber eine einmalige Aktion, da der Mandant nur 8 Monaten sein Onlinehandel betrieben hat und dann eingestellt hat und ich muss jetzt nur die Betriebsaufgabe erklären, dabei kommen die Buchungen von Paypal für diese 8 Monaten, die jeweils ca 50 Umsätze enthält. Auf manuelle Buchung habe ich kein Bock 😞 Bin gerade beim Basteln
Hallo Frau @JWelz,
um PayPal per CSV-Datei einzuspielen habe hierfür hier ein VBSript erstellt und hier Online gestellt:
Übernahme PayPal-Bank in Rewe-Banken
Dazu muss eine Dummy-Bank eingerichtet werden und kann dann importiert werden. Ich arbeite damit seit mehreren Jahren absolut problemlos. Vorteil: Ich habe den gesamten PayPal-Kontoauszu in DATEV integriert.
Bei Fragen einfach hier melden.
Gruß Achilleus
Eben ausprobiert. Bei mir funktioniert es.
Vielleicht noch einmal klicken.
Das hat geklappt!
Ich habe nur nicht verstanden, im welchen Programm schreibt man ein Script und in welchem Format wird er gespeichert? Erklären Sie mir bitte
Ein VBSript ist im Grunde eine reine Textdatei die beim Aufrufen von Windows in Programmcode kompiliert und verarbeitet wird.
Daher erstellen Sie eine neue Text-Datei im Explorer:
-> Kontextmenü -> Neu -> Textdatei
Fügen Sie folgenden Inhalt in die geöffnete Textdatei ein:
'###################################
'# #
'# PayPal2DATEV #
'# (V. 2.0) #
'###################################
Option Explicit
Dim objFSO
Dim sPathExport
sPathExport="C:\Users\ama\Documents\Tools"
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(sPathExport & "\Banken.csv") Then
objFSO.DeleteFile(sPathExport & "\Banken.csv")
End If
On Error Resume Next
'############### Step 1 -> CSV in ANSI konvertieren
Private Const adReadAll = -1
Private Const adSaveCreateOverWrite = 2
Private Const adTypeBinary = 1
Private Const adTypeText = 2
Private Const adWriteChar = 0
UTF8toANSI WScript.Arguments(0), WScript.Arguments(0)
'############### Step 2 -> Über Excel in Spalten konvertieren
Dim objExcel
Dim objWkb
Dim objWks
Set objExcel = GetObject(,"Excel.Application")
If err.number<>0 Then
Err.Clear
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Add
End if
Set objWks = objExcel.Workbooks(1).Sheets(1)
objExcel.Visible = True
Dim objReadFile
Set objReadFile =objFSO.OpenTextFile(WScript.Arguments(0), 1)
Dim colBank(34) 'Spaltendefinition siehe DATEV-Schnittstelle (Feld 1 - 34)
Dim curGeb
Dim sTemp
Dim MyResult
Dim i, lCol, lRow
Do Until objReadFile.AtEndOfStream
sTemp=objReadFile.Readline
sTemp = Replace (sTemp,""",""",";")
sTemp = Replace (sTemp,"""","")
MyResult = Split(sTemp,";")
lRow=lRow+1
For i = 0 To UBound(MyResult)-1
lCol=i+1
Select Case lCol
Case 6,7,8,9,15,16
If IsNumeric(MyResult(i))=False Then
objWks.cells(lRow,lCol).Value=MyResult(i)
Else
objWks.cells(lRow,lCol).Value=CCur(MyResult(i))
End If
Case Else
objWks.cells(lRow,lCol).Value=MyResult(i)
End Select
Next
Loop
objWks.columns("J:J").Insert, -4152
lRow=1
Const sQuote = """"
With objWks 'Spaltenüberschriften der neuen Excel-Datei
.cells(lRow,1).value="BelegDatum"
.cells(lRow,6).value="Betrag"
.cells(lRow,10).value="Buchungstext"
End With
Dim MyFile
Set MyFile = objFSO.OpenTextFile(sPathExport & "\Banken.csv", 2, True)
Const xlCellTypeLastCell=11
lRow=objWks.usedrange.specialcells(xlCellTypeLastCell).row
lCol=objWks.usedrange.specialcells(xlCellTypeLastCell).Column
Dim sBereich 'Sortierung neu
sBereich= GetExcelCol(1,false) & 1 & ":" & GetExcelCol(lCol,False) & lRow
objWks.Range(sBereich).Sort objWks.Range("A1"), 1,,,,,,1, 1, 1, 1, , 0
lRow = 1
Dim lColWKZ 'Währungskennzeichen
Do While lColWKZ = 0
i=i+1
If objWks.cells(lRow,i).Value="Währung" Then
lColWKZ = i
End If
Loop
For i = 2 To objWks.usedrange.specialcells(xlCellTypeLastCell).row
lRow=lRow+1
If objWks.cells(lRow,lColWKZ).value="EUR" Then 'nur EUR-Beträge
If objWks.cells(lRow,13).value<>"" Then
objWks.cells(lRow,10).value = objWks.cells(lRow,11).value & " / " & _
objWks.cells(lRow,13).value
Else
objWks.cells(lRow,10).value = objWks.cells(lRow,11).value
End If
curGeb = curGeb + CCur(objWks.cells(lRow,7)) 'Summe PayPal-Gebühren
colBank(1) = sQuote & "89999999" & sQuote 'Blz
colBank(2) = sQuote & "123456" & sQuote 'KtoNr
colBank(5) = objWks.cells(lRow,1) 'Datum Valuta
colBank(6) = objWks.cells(lRow,1) 'Buchungsdatum
colBank(7) = FormatNumber(objWks.cells(lRow,6),2) 'Umsatz
colBank(8) = objWks.cells(lRow,13) 'Auftraggebername 1
colBank(12) = objWks.cells(lRow,11) 'Verwendungszweck 1(Transaktionscode)
colBank(13) = objWks.cells(lRow,12) 'Verwendungszweck 2 (EMail)
colBank(14) = objWks.cells(lRow,3) 'Verwendungszweck 3 (Beschreibung)
colBank(29) = FormatNumber(objWks.cells(lRow,7),2) 'Gebühren
sTemp=""
For lCol=1 To UBound(colBank)
sTemp = sTemp & colBank(lCol) & ";"
Next
sTemp = Left(sTemp,Len(sTemp)-1) 'letztes Semikolon löschen
MyFile.Writeline sTemp
End If
Next
'zuletzt noch als letzte Bankbewegung die summierten PayPal-Gebühren
sTemp=""
sTemp = sTemp & sQuote & "89999999" & sQuote & ";" 'Blz
sTemp = sTemp & sQuote & "123456" & sQuote & ";" 'KtoNr
sTemp = sTemp & ";" 'Auszug
sTemp = sTemp & ";" 'Datum Auszug
sTemp = sTemp & DateSerial(Year(objWks.cells(lRow,1)),Month(objWks.cells(lRow,1))+1,0) & ";" 'Datum Valuta
sTemp = sTemp & DateSerial(Year(objWks.cells(lRow,1)),Month(objWks.cells(lRow,1))+1,0) & ";" 'Datum Buchung
sTemp = sTemp & FormatNumber(curGeb,2) & ";" 'Umsatz
sTemp = sTemp & "PayPal" & ";" 'Auftraggebername 1
sTemp = sTemp & "" & ";" 'Auftraggebername 2
sTemp = sTemp & "" & ";" 'BLZ Auftraggeber
sTemp = sTemp & "" & ";" 'Kto Auftraggeber
sTemp = sTemp & "PayPal-Gebühren" & ";" 'Verwendungszweck 1
sTemp = sTemp & "" & ";" 'Verwendungszweck 2
MyFile.Writeline sTemp
MyFile.Close
MsgBox "PayPal-Buchungen können jetzt importiert werden.",,"Export PayPal"
Private Sub UTF8toANSI(ByVal UTF8FName, ByVal ANSIFName)
Dim strText
With CreateObject("ADODB.Stream")
.Open
.Type = adTypeBinary
.LoadFromFile UTF8FName
.Type = adTypeText
.Charset = "utf-8"
strText = .ReadText()
.Position = 0
.SetEOS
.Charset = "x-ansi" 'Use current ANSI codepage.
.WriteText strText, adWriteChar
.SaveToFile ANSIFName, adSaveCreateOverWrite
.Close
End With
End Sub
' bInitialCall gibt an, ob die Zählung bei 0 (False)
' oder bei 1 erfolgen soll (bInitialCall = True)
' GetExcelCol(1,False) => A
Public Function GetExcelCol(lIdx, bInitialCall)
If (bInitialCall) Then lIdx = lIdx + 1
If (lIdx = 0) Then Exit Function
GetExcelCol = GetExcelCol((lIdx - 1) \ 26, False) + Chr(65 + (lIdx - 1) Mod 26)
End Function
'WScript.Echo GetIndexOfExcelCol("AX", 0,False)
Public Function GetIndexOfExcelCol(ByVal strCol, ByVal slevel, ByVal bInitialCall)
Dim tInitialCall
If (CInt(slevel) = Len(strCol)) Then Exit Function
If CBool(bInitialCall) = True Then
tInitialCall=-1
Else
tInitialCall=0
End if
GetIndexOfExcelCol = GetIndexOfExcelCol(strCol,CInt(slevel) + 1, False) + _
((Asc(Mid(strCol, Len(strCol) - CInt(slevel), 1)) - 65) + 1) * _
26 ^ CInt(slevel) + CLng(tInitialCall)
End Function
Im Kopfbereich des Programmcodes müssen Sie jetzt lediglich die Zeile 11:
sPathExport="C:\Users\ama\Documents\Tools"
auf ihr eigenes Exportverzeichnis ändern. Die erstellte Datei hat den Namen "Banken.csv". Diese müssen in DATEV als Importquelle (incl. Pfad) angeben.
Anschließend speichern Sie die Textdatei unter irgendeinen Namen (z. B. Convert_PayPal.txt).
Im Explorer ändern Sie die Extension von Convert_PayPal.txt -> Convert_PayPal.vbs um.
Die Extension "vbs" ist der Dateityp für ein VBSript.
Anschließend ziehen Sie einfach ihr PayPal-Kontoauszug per Drag&Drop auf das VBSript. Es wird jetzt eine Banken-Datei erstellt, die in DATEV-REWE eingelesen werden kann. Dazu müssen Sie erst eine Dummy-Bank einrichten. Ich verweise hierzu auf den Ursprungsbeitrag auf der ersten Seite. Hier habe ich alles mit Bildern u. Text beschrieben.
Wie gesagt, dass muss man einmal einrichten. Dann hat man aber keine Probleme mehr und ist alles kostenlos. 🙂
Ob sich allerdings der Aufwand in toto lohnt kann ich nicht entscheiden.
Bei Fragen einfach hier melden.
Gruß Achilleus
Lieber @Gelöschter Nutzer
vielen Dank nochmal, ich versuche und ich melde mich dann!
VG
Julia
Hallo Herr Martens,
erst einmal vielen Dank für Ihren Einsatz. Ich habe die letzte Version des Scripts genutzt und angepasst. Die Banken.csv wird auch erstellt, leider bekomme ich aber einen Fehler hinsichtlich des Imports.
Liegt es vermutlich daran, dass in der CSV das Datumsformat inkl. der Uhrzeit angegeben wird?
Viele Grüße
N.Borke
Hallo @NBO,
sorry, ich hatte ihre Frage komplett übersehen. 🙄
Ist das Problem noch aktuell?
Wenn ja, dann bitte einen Auszug aus der Banken.csv hier posten.*
Gruß Achilleus
Achtung: Echtdaten bitte durch Dummydaten ersetzen.
Liebe Frau Wels,
hat das bei Ihnen alles geklappt?
Ich habe die csv erstellt, scheitere jedoch gerade am Import der Datei, da ich die Zuordnung der Spalten nicht hinkriege - bin Anfänger.
Die erste Spalte enthält bei mir die BLZ der Dummy Bank - dann die Kontonummer der Dummy Bank - hierzu finde ich in der Zuordnung kein Feld.
Wo ist der Fehler?
LG
Claudia Degner
Hallo @c-degner-da ,
auf den Aufbau oder die Verwendung eines VBA-Skripts, können wir keine Hilfestellung geben.
Jedoch können Sie sich im Dokument Formatbeschreibung- ASII Weiterverarbeitungsformat informieren, wie eine umgewandelte csv-Datei für die Übernahme als Buchungsvorschlags-Datei ins Rechnungswesen-Programm aussehen muss.
Vielleicht hilft Ihnen das etwas weiter.