Visual Basic Express PrintForm Methode of exporteren naar excel sheet

Status
Niet open voor verdere reacties.

andrenijmegen

Gebruiker
Lid geworden
14 sep 2011
Berichten
13
Beste Forum genoten,

Ik ben bezig een windows applicatie te maken in Visual Basic Express 2010.

Graag zou data van een printform willen printen.

Dit kan natuurlijk met de printform methode

alszijnde:

Code:
Public Class PrintMelding

    


    Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
        PrintForm1.PrintAction = Printing.PrintAction.PrintToPreview
        PrintForm1.Print()

    End Sub
End Class

Echter de kwaliteit is erg belabberd, erg onduidelijk.

Nu ben ik aan het stoeien met exporteren van data uit mijn WindowsForm naar een excel sheet/workbook.

Nu gaat dit niet erg best, krijg het niet voor elkaar om data te exporteren naar een bestaand excel sheet ( waarin ik een mooi layout heb gemaakt)

In de excel sheet werk ik met gedefineerde namen en daar gaat het denk ik fout.

Heb al verschillende codes geprobeerd van de microsoft msdn site maar ik kom er niet uit dus.


Het openen van het excel workbook gaat goed enkel overdracht van PrintMelding.vb gaat niet goed
Dit is de code die ik gebruik voor het openen van excel workbook

Code:
 System.Diagnostics.Process.Start("C:/template.xls")

gebruikte sheet is blad1
Gebruikte gedefineerde namen: naam, adres, huisnummer, postcode, plaats.

Kan iemand mij op weg helpen?

1) met het exporteren naar deze gedefineerde namen vanuit PrintMelding.vb
2) het opslaan als een variable naam uit TextBox1.Text als documentnaam welke opgeslagen word in C:/

Het template blijft dus template en het excel workbook word opgeslagen als met de value uit TextBox1.Text

Met vriendelijke groet,

André
 
Ik ben weer even aan het stoeien en ben al een stukje verder. De volgende code gebruik in op het workbook te openen data te transporteren en op te slaan als een xls bestand in vaste locatie.

Code:
 Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
        Dim MyExcel As New Excel.Application
        'bij relaease installeren op C:\Hamerslag vastgoed service storingsmelder\template.xlsx en dan aanpassen regel hieronder
        MyExcel.Workbooks.Open("C:\Program Files (x86)\Hamerslag vastgoed service storingsmelder\template.xlsx")

        MyExcel.Range("naam").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.NaamTextBox.Text
        MyExcel.Range("adres").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.AdresTextBox.Text
        MyExcel.ActiveWorkbook.SaveAs("C:\Storingsmelding" & " " & Me.StoringsnummerLabel1.Text)
        
     
        MyExcel.Visible = True
    End Sub
End Class

Nu zou ik de excel sheet niet willen opslaan als .xls maar exporteren als .pdf en dan opslaan als pdf

Wie kan mij helpen??

De code zal er uitzien als bijvoorbeeld hieronder:

Code:
 Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
        Dim MyExcel As New Excel.Application
        'bij relaease installeren op C:\Hamerslag vastgoed service storingsmelder\template.xlsx en dan aanpassen regel hieronder
        MyExcel.Workbooks.Open("C:\Program Files (x86)\Hamerslag vastgoed service storingsmelder\template.xlsx")

        MyExcel.Range("naam").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.NaamTextBox.Text
        MyExcel.Range("adres").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.AdresTextBox.Text
        MyExcel.ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF FileName:="C:\Storingsmelding" & " " & Me.StoringsnummerLabel1.Text.pdf"  Quality:=xlQualityStandard DisplayFileAfterPublish:=True 
        
     'openen workbook vermijden zodat gebruiker template niet kan wijzigen, en applicatie sluiten na export as pdf.
        MyExcel.Workbooks.Close
        MyExcel = Nothing
    End Sub
End Class

maar dit werkt niet
 
Ik ben inmiddels weer iets verder met deze code.

Code:
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
        Dim MyExcel As New Excel.Application
        'bij relaease installeren op C:\Hamerslag vastgoed service storingsmelder\template.xlsx en dan aanpassen regel hieronder
        MyExcel.Workbooks.Open("C:\Program Files (x86)\Hamerslag vastgoed service storingsmelder\template.xlsx")

        MyExcel.Range("naam").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.NaamTextBox.Text
        MyExcel.Range("adres").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.AdresTextBox.Text
        MyExcel.ActiveWorkbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, Filename:="C:\" & "Storing " & StoringsnummerLabel1.Text & ".pdf", OpenAfterPublish:=True)


        
        'openen workbook vermijden zodat gebruiker template niet kan wijzigen, en applicatie sluiten na export as pdf.
        MyExcel.Workbooks.Close()
        MyExcel = Nothing
    End Sub

Deze werkt ben nu aan het stoeien met de quality
 
Het een en ander werkt gedeeltelijk krijg een paar melding. o.a. dat het een melding dat een alleen lezen bestand niet bewerkt kan worden. hij bedoelt de .xlsx werkmap

Ook meende ik te zien dat Excel.exe niet steeds afgesloten word terwijl ik wel een stukje code heb opgenomen om dit te doen.

Code:
rivate Sub ToolStripButton1_Click_1(sender As Object, e As EventArgs) Handles ToolStripButton1.Click

        Dim MyExcel As New Excel.Application

        'bij release installeren op C:\Hamerslag vastgoed service storingsmelder\template.xlsx en dan aanpassen regel hieronder

        MyExcel.Workbooks.Open("C:\HamerslagSoftware\template.xlsx")
        'Opgeroepen door
        MyExcel.Range("opgeroepen").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.Opgeroepen_doorComboBox.Text
        'Werknemer
        MyExcel.Range("werknemer").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.WerknemerComboBox.Text
        'datum naar datum
        MyExcel.Range("datum").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.DatumDateTimePicker.Text
        'vertrek thuis
        MyExcel.Range("vertrek").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.Vertrek_thuisDateTimePicker.Text
        'aankomst thuis
        MyExcel.Range("aankomst").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.Aankomst_thuisDateTimePicker.Text
        'gewerkte uren
        MyExcel.Range("gewerkt").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.Gewerkte_urenTextBox.Text
        'naam klant naar naam klant
        MyExcel.Range("naam").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.NaamTextBox.Text
        'adres klant naar adres klant
        MyExcel.Range("adres").Activate()
        MyExcel.ActiveCell.FormulaR1C1 = Me.AdresTextBox.Text & "   " & "NR: " & Me.HuisnummerTextBox.Text & "   " & "Postcode: " & Me.PostcodeMaskedTextBox.Text

        MyExcel.ActiveWorkbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, Filename:="C:\" & "Storing " & StoringsnummerLabel1.Text & ".pdf", OpenAfterPublish:=True)

        MyExcel.Application.DisplayAlerts = False
        MyExcel.ActiveWorkbook.SaveAs("C:\HamerslagSoftware\template.xlsx")
        MyExcel.Application.DisplayAlerts = True

        'openen workbook vermijden zodat gebruiker template niet kan wijzigen, en applicatie sluiten na export as pdf.

        MyExcel.Workbooks.Close()
        MyExcel = Nothing

    End Sub

Nu weer even geprobeerd en loopt nu wel goed maar stabiel weet ik niet wat doe ik eventueel verkeerd???
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan