Hallo beste VBA experts,
Ik ben bezig om enkele documenten te maken welke ik gezamenlijk wil gaan gebruiken. voor deze toepassing heb ik een Excel document welke ik gebruik als een soort van intake formulier. als deze (met formules) is gevuld sla ik deze als nieuw bestand op. Vervolgens open ik mijn Word sjabloon en haal doormiddel van een Userform met knoppen de gegevens op uit dit Excel bestand en plaats de gegevens in textboxen. Dit werkt op zich prima. echter zijn er enkele cellen die opgemaakt zijn in Excel als getal of als valuta. Alleen deze worden weer als tekst geplaatst in de textbox. is het mogelijk om de opmaak vanuit Excel te behouden? ik gebruik voor het ophalen en vervolgens plaatsen in Word de volgende codes.
Ik ben bezig om enkele documenten te maken welke ik gezamenlijk wil gaan gebruiken. voor deze toepassing heb ik een Excel document welke ik gebruik als een soort van intake formulier. als deze (met formules) is gevuld sla ik deze als nieuw bestand op. Vervolgens open ik mijn Word sjabloon en haal doormiddel van een Userform met knoppen de gegevens op uit dit Excel bestand en plaats de gegevens in textboxen. Dit werkt op zich prima. echter zijn er enkele cellen die opgemaakt zijn in Excel als getal of als valuta. Alleen deze worden weer als tekst geplaatst in de textbox. is het mogelijk om de opmaak vanuit Excel te behouden? ik gebruik voor het ophalen en vervolgens plaatsen in Word de volgende codes.
Code:
Private Sub AutomateExcel(ByVal strPath As String)
Dim objExcel As Object
Dim objWorkbook As Object
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
Set objWorkbook = objExcel.workbooks.Open(strPath)
Call ReadData(objWorkbook)
objExcel.Application.Quit
End Sub
Private Sub ReadData(ByRef objWorkbook As Object)
Dim i As Integer
TBnaam.Value = objWorkbook.Sheets(1).Range("B3").Value
TBachternaam.Value = objWorkbook.Sheets(1).Range("C3").Value
TBprijs.Value = objWorkbook.Sheets(1).Range("D3").Value
TBbesparing.Value = objWorkbook.Sheets(1).Range("E3").Value
End Sub
Private Sub maakofferte_Click()
Me.Hide
RangeMyBookmark "naam", Me.TBnaam.Text
RangeMyBookmark "achternaam", Me.TBachternaam.Text
RangeMyBookmark "prijs", Me.TBprijs.Text
RangeMyBookmark "besparing", Me.TBbesparing.Text
ActiveDocument.Fields.Update
Unload Me
End Sub
Private Sub RangeMyBookmark(sBm As String, sCtl As String)
Dim oRange As Word.Range
With ActiveDocument
Set oRange = .Bookmarks(sBm).Range
oRange.Text = sCtl
.Bookmarks.Add sBm, oRange
Set oRange = Nothing
End With
End Sub