• 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.

VBA Excel naar Word foutmeldingen

Status
Niet open voor verdere reacties.

mvanbe

Gebruiker
Lid geworden
7 mrt 2018
Berichten
87
Hallo!

Wie kan mij helpen; op dit gebied ben ik nieuw en ben al uren bezig met het volgende:

Ik heb een Word sjabloom met bookmarks die ik vullen met gegevens vanuit Excel met celverwijzingen middels VBA.

Dit lukt redelijk goed met onderstaande code maar ik krijg nu elke keer onregelmatig de volgende foutmelding:
4198 of 4605: Methode PasteSpecial van object Selection is mislukt.

Wat doe ik verkeerd?



Sub WordRapport()
Dim wdApp As Word.Application
Dim Savename As String
Dim FileExt As String

Set wdApp = CreateObject("Word.Application")

With wdApp
.Visible = True
.Activate

.Documents.Add "C:\Users\xxxxxxxxxxxx\OneDrive - xxxxxxxx B.V\Pr. Rekenmodel\templates\template nl dotx.dotx"

Sheets("Rapport AW Macro").Select
Range("A1:E35").Select
Selection.Copy

.Selection.GoTo -1, Name:="AWrapport"
.Selection.Paste

Sheets("Werkblad").Select
Range("E1").Select
Selection.Copy

.Selection.GoTo -1, Name:="bedrijfsnaam"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("E2").Select
Selection.Copy
.Selection.GoTo -1, Name:="adres"
.Selection.PasteSpecial DataType:=wdPasteText


Sheets("Werkblad").Select
Range("E3").Select
Selection.Copy
.Selection.GoTo -1, Name:="postcode"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("E4").Select
Selection.Copy
.Selection.GoTo -1, Name:="plaats"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("E5").Select
Selection.Copy
.Selection.GoTo -1, Name:="land"
.Selection.PasteSpecial DataType:=wdPasteText
Application.CutCopyMode = False

Sheets("Werkblad").Select
Range("H6").Select
Selection.Copy
.Selection.GoTo -1, Name:="taxateur"
.Selection.PasteSpecial DataType:=wdPasteText
Application.CutCopyMode = False

Sheets("Werkblad").Select
Range("E6").Select
Selection.Copy
.Selection.GoTo -1, Name:="wpdatum"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("E7").Select
Selection.Copy
.Selection.GoTo -1, Name:="taxatiedatum"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("H7").Select
Selection.Copy
.Selection.GoTo -1, Name:="rapnr"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O7").Select
Selection.Copy
.Selection.GoTo -1, Name:="Relatienummer"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O1").Select
Selection.Copy
.Selection.GoTo -1, Name:="opdrachtgever"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O2").Select
Selection.Copy
.Selection.GoTo -1, Name:="straatopdrachtgever"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O3").Select
Selection.Copy
.Selection.GoTo -1, Name:="postcodeplaatsopdrachtgever"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O4").Select
Selection.Copy
.Selection.GoTo -1, Name:="landopdrachtgever"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O5").Select
Selection.Copy
.Selection.GoTo -1, Name:="contactpersoon"
.Selection.PasteSpecial DataType:=wdPasteText

End With
End Sub
 
Laatst bewerkt door een moderator:
Hallo Marco,

Ten eerste: plaats je code tussen ##, dat maakt het wat leesbaarder:
Code:
Sub WordRapport()
Dim wdApp As Word.Application
Dim Savename As String
Dim FileExt As String

Set wdApp = CreateObject("Word.Application")

With wdApp
.Visible = True
.Activate

.Documents.Add "C:\Users\xxxxxxxxxxxxxxxx\OneDrive - xxxxxxxxxxxxxxxxx B.V\Pr. Rekenmodel\templates\template nl dotx.dotx"

Sheets("Rapport AW Macro").Select
Range("A1:E35").Select
Selection.Copy

.Selection.GoTo -1, Name:="AWrapport"
.Selection.Paste

Sheets("Werkblad").Select
Range("E1").Select
Selection.Copy

.Selection.GoTo -1, Name:="bedrijfsnaam"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("E2").Select
Selection.Copy
.Selection.GoTo -1, Name:="adres"
.Selection.PasteSpecial DataType:=wdPasteText


Sheets("Werkblad").Select
Range("E3").Select
Selection.Copy
.Selection.GoTo -1, Name:="postcode"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("E4").Select
Selection.Copy
.Selection.GoTo -1, Name:="plaats"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("E5").Select
Selection.Copy
.Selection.GoTo -1, Name:="land"
.Selection.PasteSpecial DataType:=wdPasteText
Application.CutCopyMode = False

Sheets("Werkblad").Select
Range("H6").Select
Selection.Copy
.Selection.GoTo -1, Name:="taxateur"
.Selection.PasteSpecial DataType:=wdPasteText
Application.CutCopyMode = False

Sheets("Werkblad").Select
Range("E6").Select
Selection.Copy
.Selection.GoTo -1, Name:="wpdatum"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("E7").Select
Selection.Copy
.Selection.GoTo -1, Name:="taxatiedatum"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("H7").Select
Selection.Copy
.Selection.GoTo -1, Name:="rapnr"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O7").Select
Selection.Copy
.Selection.GoTo -1, Name:="Relatienummer"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O1").Select
Selection.Copy
.Selection.GoTo -1, Name:="opdrachtgever"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O2").Select
Selection.Copy
.Selection.GoTo -1, Name:="straatopdrachtgever"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O3").Select
Selection.Copy
.Selection.GoTo -1, Name:="postcodeplaatsopdrachtgever"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O4").Select
Selection.Copy
.Selection.GoTo -1, Name:="landopdrachtgever"
.Selection.PasteSpecial DataType:=wdPasteText

Sheets("Werkblad").Select
Range("O5").Select
Selection.Copy
.Selection.GoTo -1, Name:="contactpersoon"
.Selection.PasteSpecial DataType:=wdPasteText

End With
End Sub

Ten tweede: een (waarheidsgetrouw) geanonimiseerd voorbeeld maakt het voor de helpers echt makkelijker

PS.

Al die:
Sheets("Werkblad").Select
Range("C1").Select
Selection.Copy

kan veel korter en daar door sneller, bij voorbeeld:

Code:
Sheets("Blad2").Range("A1:A3").Copy
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan