• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Text schrijven in word

Status
Niet open voor verdere reacties.

gast0219

Gebruiker
Lid geworden
7 feb 2017
Berichten
107
Geachte helpers van het forum,

Momenteel probeer ik vanuit excel een word bestand te openen en diverse waardes en text weg te laten schrijven naar het textbestand in word. Hierover heb ik het een en het ander kunnen vinden op internet. Dit doe ik momenteel dmv
Code:
Private Sub CommandButton17_Click() ''Maak schriftelijke offerte
[COLOR="#FF0000"]Sheets("Menu").Range("D15").Value = Me.TextBox14.Value[/COLOR]
Dim i As Integer
Dim oApp As Object
Dim oDoc As Object
Dim cFileName As String

'Nieuwe "instance" van Word openen
Set oApp = CreateObject("Word.application")

'Offerte openen en onderbrengen in een object.
oApp.Documents.Open Filename:=ThisWorkbook.Path & "\Offerte schriftelijk blank.docx", ReadOnly:=True
Set oDoc = oApp.Documents("Offerte schriftelijk blank.docx")


    With oDoc
            .Content.InsertAfter ThisWorkbook.Sheets("Menu").Range("C18").Value ''Factuurnaam
            .Content.InsertParagraphAfter
            .Content.InsertAfter ThisWorkbook.Sheets("Menu").Range("C19").Value ''Factuur t.a.v.
            .Content.InsertParagraphAfter
            .Content.InsertAfter ThisWorkbook.Sheets("Menu").Range("C20").Value ''Factuuradres
            .Content.InsertParagraphAfter
            .Content.InsertAfter ThisWorkbook.Sheets("Menu").Range("C21").Value ''Factuurpostcode
            .Content.InsertAfter ThisWorkbook.Sheets("Menu").Range("A22").Value ''spatie
            .Content.InsertAfter ThisWorkbook.Sheets("Menu").Range("C22").Value ''Factuurstad
            .Content.InsertParagraphAfter
           [COLOR="#00FF00"] ''.Content.InsertAfter ThisWorkbook.Sheets("Offerte").Range("B18").Value ''Leeg
            ''.Content.InsertAfter ThisWorkbook.Sheets("Menu").Range("D15").Value ''Datum[/COLOR]
            .Content.InsertParagraphAfter
            .Content.InsertParagraphAfter
            .Content.InsertAfter ThisWorkbook.Sheets("Offerte").Range("B19").Value ''Text offertenummer
            .Content.InsertAfter ThisWorkbook.Sheets("Menu").Range("A22").Value ''Leeg
            .Content.InsertAfter ThisWorkbook.Sheets("Menu").Range("C4").Value ''Offerteummer
            .Content.InsertParagraphAfter
            [COLOR="#00FF00"]''.Content.InsertTypeText Text:="Wij hebben het genoegen u te offereren inzage" & ( zie uitleg )[/COLOR]
            

End With

'Saven als Word bestand.
cFileName = ThisWorkbook.Sheets(1).Range("C4").Value
oDoc.SaveAs Filename:=ThisWorkbook.Path & "\" & cFileName, FileFormat:=0

'Offerte sluiten zonder saven.
oDoc.Close SaveChanges:=0  'wdDoNotSaveChanges

Set oDoc = Nothing
Set oApp = Nothing


MsgBox "Offerte opgeslagen als " & cFileName
End Sub

Ik loop momenteel eigenlijk tegen een paar kleine dingen op waar ik een kleine duw in de goede richting in hoop te krijgen, en dat is:

1. de regels in het groen, de datum, ik laat als eerste de datum van vandaag wegschrijven naar het excelblad ( zie onder knop in rood ). Deze wil ik tonen in het word bestand, maar dan de lange uitgeschreven versie. Ik laat eerst een lange spatie neerzetten in het bestand en dan de datum omdat ik niet zou weten hoe ik deze rechts zou moeten uitlijnen of hoe ik dus de lange uitgeschreven datum kan laten noteren.

2. de laatste regel van het wegschrijven in het groen, hier wil ik tekst gaan schrijven, een standaard opmaak van tekst gecombineerd met waardes uit het eerste blad. B.V.
"Wij hebben het genoegen u te offereren inzage" & ( Sheets("Menu").Range("C10")) & "te" & ( Sheets("Menu").Range("C13")) & (",") & ("betreffende de uitvoering van onze werkzaamheden zoals wij deze met u hebben besproken c.q. conform uw aanvraag:")

Oftewel het lukt me niet om dingen te combineren of gewoon normaal tekst weg te laten schrijven, alleen vanuit een range van een cell.
Hopelijk is de uitleg een beetje duidelijk en zijn er beste helpers die mij een duw de goede richting op kunnen geven.

Alvast hartelijk bedankt voor alle reacties,

Mvg,
 
Laatst bewerkt door een moderator:
Stel eerst gewoon een string samen in Excel. Het resultaat te controleren met msgbox.
Schrijf die in 1 keer in het Word-bestand.
 
Beste snb,

Bedankt voor je reactie, uiteraard werk dit zoals ik had bedacht. Bedankt voor de tip!! probleem opgelost
 
eigenlijk nog een kleine vraag, hoe moet ik de lettertype aanpassen naar een groter formaat, kleur en vetgedrukt?? in excel staat het bv op lettertype 16, vetgedrukt en in het rood...
 
Gebruik de macrorecorder in Word en een wereld gaat voor je open.
 
Beste snb,

Bedankt voor de tip, dit had ik al geprobeerd en toen kreeg ik dit,

Code:
Sub KLEURenVET()
'
' KLEURROODenVET Macro
'
'
    Selection.Font.Size = 24
    Selection.Font.Color = 192
    Selection.Font.Bold = wdToggle
End Sub

en

Code:
Sub VET()
'
' VET Macro
'
'
    Selection.Font.Bold = wdToggle
End Sub

Probleem (voor mij ) is alleen ik schrijf het zo weg wat dus niet werkt vanuit excel:
Code:
.Content.InsertAfter
[COLOR="#FF0000"]Selection.Font.Size = 24(Op diverse manieren geprobeert aan te passen)
Selection.Font.Color = 192(Op diverse manieren geprobeert aan te passen)
Selection.Font.Bold = wdToggle(Op diverse manieren geprobeert aan te passen)[/COLOR]
.Content.InsertAfter ThisWorkbook.Sheets("Offerte").Range("R12").Value ''Offerte moet maat 24, rood (kleur 192) en vet worden
.Content.InsertParagraphAfter
[COLOR="#FF0000"]Selection.Font.Bold = wdToggle (Op diverse manieren geprobeert aan te passen)[/COLOR]
.Content.InsertAfter ThisWorkbook.Sheets("Offerte").Range("B31").Value ''Text werkzaamheden bestaan uit ( moet vet en zwart )
.Content.InsertParagraphAfter
.Content.InsertParagraphAfter

ik laat vanuit excel alles dus zo wegschrijven, dit gaat goed, ik zit nu dus alleen nog met de letterformaat, kleur en dikte aanpassen om dit compleet te kunnen maken.

En ik hoop als allerlaatste als kers op de taart iets te kunnen maken dat er een kleine afbeelding onderin wordt ingeladen vanuit excel naar het word bestand en aan die aan een bepaalde formaat voldoet.

Maar hopenlijk kan en wil iemand mij nog helpen met het lettertype en alles aan te kunnen passen als eerste,
de eventeule foto moet tussen deze lege rijen komen, mocht iemand me daarmee kunnen helpen
Code:
.Content.InsertAfter ThisWorkbook.Sheets("Offerte").Range("B136").Value
            .Content.InsertParagraphAfter
            .Content.InsertParagraphAfter
            .Content.InsertParagraphAfter
            .Content.InsertParagraphAfter
            .Content.InsertParagraphAfter
            .Content.InsertAfter ThisWorkbook.Sheets("Offerte").Range("B142").Value

In ieder geval bedankt voor alle reacties
 
Laatst bewerkt:
Toch maar iets meer in de VBA-bibliotheek van Word duiken.
Dan zul je zien dat insertpragraph volstrekt overbodig is. Gebruik vbCr.
 
Laatst bewerkt:
Dat voorbeeld had ik allemaal op internet gevonden, en het bereikte wat ik wilde, een enter achter die regel en naar de volgende regel gaan. Ik probeer me momenteel verder in te verdiepen maar ik weet niet wat ik nu precies moet gebruiken. Excel VBA omdat ik een bestand maak vanuit excel of dus Word VBA omdat ik in word alles wegschrijf??

Maar als ik voor het lettertype probeer te veranderen dmv:

Code:
.Content.Font.Size = 24
.Content.Font.Bold = wdToggle
.Content.Font.Color = 192
dan doet hij dit met alles van mijn pagina, en dat is ook niet helemaal me bedoeling :( Ik snap dus even niet hoe ik moet aangeven om vanaf die regel ( of alleen die regel ) in die lettertypen te doen.
 
en zoals ik het met excel zou doen werkt ook niet zoals ik zou willen

Code:
    With Selection.Font
        .Name = "Arial"
        .Size = 24
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
        .Color = -16776961
        .TintAndShade = 0
        Selection.Font.Bold = True
    End With
 
na nog een dagje zoeken en proberen heb ik het gevonden..... ik bewerk het word document nu met objSelection en daar werkt het perfect mee.

Bedankt nog voor de tips en hulp

mvg,
 
Laatst bewerkt door een moderator:
Mijn aanpak:

Code:
Private Sub CommandButton17_Click()
  sn=ThisWorkbook.Sheets("Menu").Range("A1:D22")

  with getobject(ThisWorkbook.Path & "\Offerte schriftelijk blank.docx")
    .content=join(array(sn(18,3),sn(19,3),sn(20,3),sn(21,3),sn(22,1) & " " &,sn(22,3),TextBox14,"Hierbij de offerte"),vbcr)
    with .paragraphs(4).range.font
        .Bold = True
        .ColorIndex = 6
        .Size = 14
    end with
    .windows(1).visible=true
    .saveas ThisWorkbook.Path & "\" & sn(4,3),0      
  end with
End With
 
Laatst bewerkt:
Hartstikke bedankt voor uw hulp snb, uw script werkt uiteraard perfect, is ook een stuk korter als de manier waarop ik het nu heb staan. Ik ga alleen een kleine aanpassing eraan maken zodat het de goede waardes overneemt.
Maar nogmaals bedankt voor uw hulp, en uiteraard uw voorbeeldscript. Ik kan weer vooruit.

Mvg,
 
Laatst bewerkt door een moderator:
Daar is het inderdaad voor bedoeld: een uitgangspunt om je eigen code te maken.
 
Doordat u mij helpt op een manier waarop ik even goed moet nadenken kom ik steeds verder en begrijp ik steeds meer van het scripten. Ik ben nog lang geen professional zoals u en vele andere helpers hier op het forum, maar dit is zeker goed van u en voor mij en mijn evaluatie hierin.
Nogmaals bedankt voor de tip, uw script en "het aan het denken zetten".

Mvg,
 
Laatst bewerkt door een moderator:
Beste snb, ik ben druk bezig met uw code aan te passen naar mijn bestand, dit gaat goed, ik heb hierover eigenlijk alleen nog 1 vraagje.
bij het volgende stukje wil ik eigenlijk een foto invoegen pic
Code:
so(49, 2), pic, so(51, 2)), vbCr)

ik hoopte dat ik de foto kon aangeven dmv
Code:
objDoc.Documents.Open Filename:=ThisWorkbook.Path & "\" & "Digitaal" & (".jpg"), LinkToFile:=False, SaveWithDocument:=True
of
Code:
pic = ThisWorkbook.Path & "\" & "Digitaal" & (".jpg")

helaas lukt mij dit niet om te realiseren, ik hoop dat u mij hiermee kan helpen.

mvg,
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan