tim589
Goto Top

Aus Excel speichern als PDF mit Nummerierung

Ich habe ein kleines Programm geschrieben, bei dem man mit einer Excel Vorlage eine Rechnung schreiben kann. Im Fenster, was ich geschrieben habe, werden Name, Adresse usw. alle Daten auf der Rechnung eingegeben, danach öffnet sich Excel mit den eingefüllten Werten.

Mir fehlt jetzt nur noch das Automatische abspeichern als PDF. Hier würde ich gerne beim PDF-Name die Rechnungsnummer01 (diese wird immer generiert) verwenden + falls der Name bereits existiert, soll hochgezählt werden mit 02,03,... also der erste Name ist quasi am: Rechnungsnummer01 falls dieser Dateiname schon existiert Rechnungsnummer02.
Und die Rechnungsnummer muss natürlich auf der Rechnung genauso abgeändert werden.

Ich habe hier einen Code gefunden aber mir ist hier einiges unklar, somit habe ich es leider nicht fertig gebracht diesen für mich umzuschreiben.

ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="C:\" & Sheets("Maskeneingabe").Range("A8").text & " " & Sheets("Maskeneingabe").Range("A9").text & ".pdf", _  
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False


Hier wäre mal der Code von meinem Programm:

Public Class Rechnung
    

    Private Sub Rechnung_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        
    End Sub

    Private Sub Rechnung_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Rechnung_Button.Click
        If Betrag1_TextBox.Text = "" Then Betrag1_TextBox.Text = 0  
        If Betrag2_TextBox.Text = "" Then Betrag2_TextBox.Text = 0  
        If Betrag3_TextBox.Text = "" Then Betrag3_TextBox.Text = 0  
        If Betrag4_TextBox.Text = "" Then Betrag4_TextBox.Text = 0  
        If Betrag5_TextBox.Text = "" Then Betrag5_TextBox.Text = 0  
        If Betrag6_TextBox.Text = "" Then Betrag6_TextBox.Text = 0  

        'Ergebnisberechnung  
        Gesamtbetrag_Ergebnis_Label.Text = Betrag1_TextBox.Text + +Betrag2_TextBox.Text + +Betrag3_TextBox.Text + +Betrag4_TextBox.Text + +Betrag5_TextBox.Text + +Betrag6_TextBox.Text

        'Excel aus Dateivorlage öffnen  
        Dim Projekt As Object
        Projekt = CreateObject("excel.application")  
        Projekt.Application.Workbooks.Open("C:\Users\t.mueller\Downloads\Rechnungsvorlage")  
        Projekt.Visible = True

        'Excel Zelle füllen  
        Projekt.range("I16").value = Datum_TextBox.Text  
        Projekt.range("B8").value = Vorname_TextBox.Text & " " & Nachname_TextBox.Text  
        Projekt.range("B9").value = Straße_TextBox.Text  
        Projekt.range("B10").value = Straße_TextBox.Text & " " & Ort_TextBox.Text  
        Projekt.range("B23").value = Eingabe1_TextBox.Text  
        Projekt.range("H23").value = Betrag1_TextBox.Text  
        Projekt.range("B24").value = Eingabe2_TextBox.Text  
        Projekt.range("H24").value = Betrag2_TextBox.Text  
        Projekt.range("B25").value = Eingabe3_TextBox.Text  
        Projekt.range("H25").value = Betrag3_TextBox.Text  
        Projekt.range("B26").value = Eingabe4_TextBox.Text  
        Projekt.range("H26").value = Betrag4_TextBox.Text  
        Projekt.range("B27").value = Eingabe5_TextBox.Text  
        Projekt.range("H27").value = Betrag5_TextBox.Text  
        Projekt.range("B28").value = Eingabe6_TextBox.Text  
        Projekt.range("H28").value = Betrag6_TextBox.Text  
        Projekt.range("H29").value = Gesamtbetrag_Ergebnis_Label.Text  

        Dim Rechnungsnummer As String
        If System.DateTime.Now.Day.ToString < 10 Then
            Rechnungsnummer = System.DateTime.Now.Year.ToString() & "-" & "0" & System.DateTime.Now.Day.ToString()  
            Else
            Rechnungsnummer = System.DateTime.Now.Year.ToString() & "-" & System.DateTime.Now.Day.ToString()  
        End If
        If System.DateTime.Now.Month.ToString < 10 Then
            Rechnungsnummer = Rechnungsnummer & "0" & System.DateTime.Now.Month.ToString()  
        Else
            Rechnungsnummer = Rechnungsnummer & System.DateTime.Now.Month.ToString()
        End If


        Projekt.range("B18").value = Rechnungsnummer & "01"  

    End Sub
End Class

Content-Key: 276240

Url: https://administrator.de/contentid/276240

Printed on: April 19, 2024 at 04:04 o'clock

Mitglied: 114757
114757 Jul 02, 2015 updated at 10:37:31 (UTC)
Goto Top
Moin,
wenn du Netiquette beherzigst hilft dir hier vielleicht eher jemand.

Gruß jodel32
Member: TIM589
TIM589 Jul 02, 2015 at 21:21:21 (UTC)
Goto Top
Da hast du vollkommen recht ich hätte das vll mal im forum suchen sollen ich wollte das immer mit (Quote) (/Quote) machen aber das geht hier nicht ^^
jetzt weiß ich es besser face-smile
Member: TIM589
TIM589 Jul 09, 2015 at 19:54:23 (UTC)
Goto Top
Ich hab nun die Lösung doch noch selber gefunden. Hier habe ich ein kleines Testprogramm gebastelt, womit das wunderbar klappt:
Public Class Form1
    Dim Datum As String, Jahr As String
    Dim x As Integer = 0
    Dim Rechnungsnummer As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Jahr = System.DateTime.Now.Year.ToString

        Datum = System.DateTime.Now.Month.ToString & System.DateTime.Now.Day.ToString

        Do While My.Computer.FileSystem.FileExists("C:\Users\Timo\Desktop\Musikschnitte\_Rechnungen\" & "RE" & Jahr & "-" & Datum & x & ".txt")  
            x = x + +1
        Loop

        Rechnungsnummer = "RE" & Jahr & "-" & Datum & x  

        Label1.Text = Rechnungsnummer

    End Sub
End Class

Das pflege ich nun in das andere Programm ein dann passt das face-smile Falls jmd ein ähnliches Problem hat also hier die Lösung