Ladelog als PDF für Abrechnung mit Arbeitgeber?

Fragen zur Nutzung, Features, usw..
Benutzeravatar
mrinas
Beiträge: 2179
Registriert: Mi Jan 29, 2020 10:12 pm
Has thanked: 11 times
Been thanked: 14 times

Monatsgraph passt nicht

Beitrag von mrinas »

Falls andere auch darüber gestoplert sind, die Energiemengen im Graphen zur Monatsauswertung passen bei mir so gar nicht: https://github.com/openWB/core/issues/663
15,2kWp SMA (SB4000TL-21, SB3.0, STP6.0-SE + BYD HVS, EnergyMeter), openWB Standard+, openWB Pro, Smart #1 (ersetzt den e2008), Tesla Model Y LR.
jannemann
Beiträge: 4
Registriert: Di Dez 13, 2022 1:42 pm

Re: Ladelog als PDF für Abrechnung mit Arbeitgeber?

Beitrag von jannemann »

Vielleicht hilft das ja :)

viewtopic.php?f=10&t=6243
Gero
Beiträge: 3535
Registriert: Sa Feb 20, 2021 9:55 am
Has thanked: 7 times
Been thanked: 73 times

Re: Ladelog als PDF für Abrechnung mit Arbeitgeber?

Beitrag von Gero »

Hier mal der Link zum klicken: viewtopic.php?f=10&t=6243
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
tripleeight
Beiträge: 4
Registriert: Di Nov 21, 2023 12:32 pm

Re: Ladelog als PDF für Abrechnung mit Arbeitgeber?

Beitrag von tripleeight »

Ist hier jemand schon mal weitergekommen?
Die Abrechnung muss ich monatlich beim Arbeitgeber einreichen und es wäre schön, wenn es relativ automatisiert geht.

Denkbar ist natürlich sich den Rahmen in Excel zu bauen und nach einem Import der CSV die Daten in den richtigen Bereich einzufügen. Geht, ist aber doch jedes mal manuelle Arbeit.

Das Ausdrucken der Webseite als PDF ist auch möglich, aber man ein paar Randdaten wären noch schöner. Zum Beispiel ist die Nennung des aktuellen Stromtarifs nicht verkehrt.

Die Variante mit dem Python Script habe ich auch gesehen, aber extra dafür sich da komplett einzuarbeiten und ggf. einen Raspi zu kaufen ist auch irgendwie unschön.

Aktuell sieht es damit für mich nach der manuellen Excel Bearbeitung aus. Aber ggf. hat ja jemand mal mit VBA was schickeres gebaut?!?
PyvanPyro
Beiträge: 2
Registriert: Mo Apr 01, 2024 7:02 am
Been thanked: 1 time

Re: Ladelog als PDF für Abrechnung mit Arbeitgeber?

Beitrag von PyvanPyro »

Hallo Zusammen,
ich habe mir eine Lösung über PowerQuery gebastelt die Großteils automatisiert funktioniert.

Das Prinzip funktioniert wie folgt:

Ich muss händisch jeden Monat die CSV Datei des Abrechnungsmonats herunterladen und in meinen "Hot Folder" ablegen.
Dort habe ich eine xlsm-Datei bei deren Start wird automatisch die CSV Datei eingelesen, Formatierungen (Datum, Währung) und überschüssige Spalten entfernt und auf dem jeweiligen Kalendermonat übertragen.
2.PNG
2.PNG (29.48 KiB) 399 mal betrachtet
1.PNG
1.PNG (21.05 KiB) 399 mal betrachtet
Im Kopfbereich werden händisch die Benutzerdaten Name , KFZ-Kennzeichen, Strompreis gehegt.
Da ich noch eine Aufwandsentschädigung für meine Private WB bekomme, steht der Einfachheit die Gesamtsumme im Kopf.

Per VBA Makro erstelle ich eine PDF, öffne Outlock und bereite Empfänger, Betreff und Inhalt der Mail per Standardinhalt vor.

Code: Alles auswählen

Sub ExportAndEmailActiveSheet()
    Dim strPath As String
    Dim strFileName As String
    Dim outlookApp As Object
    Dim outlookMail As Object
    
    ' Pfadeinstellung anpassen (zum Desktop des aktuellen Benutzers)
    strPath = Environ("USERPROFILE") & "\Desktop\"
    
     ' Dateiname basierend auf dem Namen des aktiven Tabellenblatts
    strFileName = strPath & ActiveSheet.Name & ".pdf"
    
    ' Tabellenblatt als PDF exportieren
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFileName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    
    ' Outlook-Verbindung herstellen
    Set outlookApp = CreateObject("Outlook.Application")
    Set outlookMail = outlookApp.CreateItem(0)
    
    ' E-Mail-Einstellungen festlegen
    With outlookMail
        .To = "max.mustermann@geht.dich.nix.an.de" ' Hier die gewünschte E-Mail-Adresse eintragen
        .Subject = "Abrechnung WB Mustermann 2024 " & ActiveSheet.Name
        .Body = "Guten Tag xxx" & Chr(13) & _
                "anbei die Abrechnung der Wb vom letzten Monat." & Chr(13) & Chr(13) & _
                "Mit freundlichen Grüßen" & Chr(13)
        .Attachments.Add strFileName
        .Display ' Zum Anzeigen der E-Mail vor dem Senden
        ' .Send ' Zum automatischen Senden der E-Mail
    End With
    
    ' Aufräumen
    Set outlookMail = Nothing
    Set outlookApp = Nothing
End Sub
Mit dieser Lösung bin ich für ein Script Kiddy ganz zufrieden.
Was noch besser wäre wenn ich den Download der CSV, anpassen der Spaltenbreite und Auslösung des VBA Scripts automatisiert bekäme.

Wenn ich mal Zeit finde versuche ich das mithilfe von Power Bi noch weiter auszuwerten, evtl. findet sich ja jemand der da schon einen Ansatz verfolgt.

Gruß Py
zoe*in
Beiträge: 303
Registriert: Do Dez 03, 2020 4:10 pm
Has thanked: 26 times
Been thanked: 4 times

Re: Ladelog als PDF für Abrechnung mit Arbeitgeber?

Beitrag von zoe*in »

Hallo,

ich suche auch die Möglichkeit eine "einfache" PDF zu erhalten. Gibt es da mittlerweile schon eine benutzerfreundlichere Lösung?
zoe*in
Beiträge: 303
Registriert: Do Dez 03, 2020 4:10 pm
Has thanked: 26 times
Been thanked: 4 times

Re: Ladelog als PDF für Abrechnung mit Arbeitgeber?

Beitrag von zoe*in »

PyvanPyro hat geschrieben: Do Mai 16, 2024 11:00 am Hallo Zusammen,
ich habe mir eine Lösung über PowerQuery gebastelt die Großteils automatisiert funktioniert.

Das Prinzip funktioniert wie folgt:

Ich muss händisch jeden Monat die CSV Datei des Abrechnungsmonats herunterladen und in meinen "Hot Folder" ablegen.
Dort habe ich eine xlsm-Datei bei deren Start wird automatisch die CSV Datei eingelesen, Formatierungen (Datum, Währung) und überschüssige Spalten entfernt und auf dem jeweiligen Kalendermonat übertragen.

2.PNG
1.PNG

Im Kopfbereich werden händisch die Benutzerdaten Name , KFZ-Kennzeichen, Strompreis gehegt.
Da ich noch eine Aufwandsentschädigung für meine Private WB bekomme, steht der Einfachheit die Gesamtsumme im Kopf.

Per VBA Makro erstelle ich eine PDF, öffne Outlock und bereite Empfänger, Betreff und Inhalt der Mail per Standardinhalt vor.

Code: Alles auswählen

Sub ExportAndEmailActiveSheet()
    Dim strPath As String
    Dim strFileName As String
    Dim outlookApp As Object
    Dim outlookMail As Object
    
    ' Pfadeinstellung anpassen (zum Desktop des aktuellen Benutzers)
    strPath = Environ("USERPROFILE") & "\Desktop\"
    
     ' Dateiname basierend auf dem Namen des aktiven Tabellenblatts
    strFileName = strPath & ActiveSheet.Name & ".pdf"
    
    ' Tabellenblatt als PDF exportieren
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFileName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    
    ' Outlook-Verbindung herstellen
    Set outlookApp = CreateObject("Outlook.Application")
    Set outlookMail = outlookApp.CreateItem(0)
    
    ' E-Mail-Einstellungen festlegen
    With outlookMail
        .To = "max.mustermann@geht.dich.nix.an.de" ' Hier die gewünschte E-Mail-Adresse eintragen
        .Subject = "Abrechnung WB Mustermann 2024 " & ActiveSheet.Name
        .Body = "Guten Tag xxx" & Chr(13) & _
                "anbei die Abrechnung der Wb vom letzten Monat." & Chr(13) & Chr(13) & _
                "Mit freundlichen Grüßen" & Chr(13)
        .Attachments.Add strFileName
        .Display ' Zum Anzeigen der E-Mail vor dem Senden
        ' .Send ' Zum automatischen Senden der E-Mail
    End With
    
    ' Aufräumen
    Set outlookMail = Nothing
    Set outlookApp = Nothing
End Sub
Mit dieser Lösung bin ich für ein Script Kiddy ganz zufrieden.
Was noch besser wäre wenn ich den Download der CSV, anpassen der Spaltenbreite und Auslösung des VBA Scripts automatisiert bekäme.

Wenn ich mal Zeit finde versuche ich das mithilfe von Power Bi noch weiter auszuwerten, evtl. findet sich ja jemand der da schon einen Ansatz verfolgt.

Gruß Py
Ich habe mir das angesehen, leider scheitere ich an dem PowerQuery, das überfordert mich.

Gibt es hier eine Lösung in Richtung Plug&Play?
PyvanPyro
Beiträge: 2
Registriert: Mo Apr 01, 2024 7:02 am
Been thanked: 1 time

Re: Ladelog als PDF für Abrechnung mit Arbeitgeber?

Beitrag von PyvanPyro »

Hey,
mit Boardmitteln nicht, müsste mal schauen ob man die Datei so teilen kann das es einfacher geht.
zoe*in
Beiträge: 303
Registriert: Do Dez 03, 2020 4:10 pm
Has thanked: 26 times
Been thanked: 4 times

Re: Ladelog als PDF für Abrechnung mit Arbeitgeber?

Beitrag von zoe*in »

PyvanPyro hat geschrieben: Di Dez 03, 2024 5:58 pm Hey,
mit Boardmitteln nicht, müsste mal schauen ob man die Datei so teilen kann das es einfacher geht.
Ich habe es soweit hinbekommen mit powerquery. Ich habe eine Tabelle/Reiter mit meiner schönen Form, Titelleiste, etc.

Dann eine weitere Tabelle in die ich meine CSV-Datei ziehe bzw. automatisch aktualisiere. Das klappt soweit super.

Allerdings: Meine schöne Tabelle (Abrechnung) habe ich mit Bezug =Blatt_Import_Zelle_A1 , ....gestaltet. Das klappt. Sobald aber die andere Tabelle aktualisiert wird, passt das ganze nicht mehr. Dann ist die Zweite Zeile nicht mehr auf Zelle A2, A3, ... referenziert, sondern auf A28. Vermutlich wegen längerer/neuer Zelle.

Eigentlich hätte ich erwartet, dass einfach die erste Zeile im Abrechnungblatt FIX auf der ersten Zeile im Importblatt bleibt usw.

Was mache ich falsch?
zoe*in
Beiträge: 303
Registriert: Do Dez 03, 2020 4:10 pm
Has thanked: 26 times
Been thanked: 4 times

Re: Ladelog als PDF für Abrechnung mit Arbeitgeber?

Beitrag von zoe*in »

Gefunden, recht versteht: Bei Eigenschaften gibt es Auswahlmöglichkeiten bei "Wenn sich die Anzahl der Zeilen im Datenbereich bei der Aktualisierung ändert:"

Vorher: Zellen für neue Daten einfügen, nicht verwendete Zeilen löschen
Jetzt: Bestehende Zellinhalte überschreibne, nicht verwendete Zellen löschen

Klappt soweit.

Nun ist nur mein Problem, dass überflüssige Zeilen/Zellen im Abrechnungsblatt mit 00.01.1900 angezeigt werden. Manuelles löschen ist Fehleranfällig, da ich die Zeilenzahl immer anpassen muss. Gibts da eine bessere Lösung?

Ja, gibt es:
=WENN('ChargeLog'!A2="";"";'ChargeLog'!A2)
Antworten