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

PutInClipboard Werkt niet in Windows 10

Status
Niet open voor verdere reacties.

bkoppers

Gebruiker
Lid geworden
11 jan 2011
Berichten
110
ik gebruik onderstaande code al een hele poos

Code:
Sub CopyTekst()

Dim tbWaarde As New DataObject

    tbWaarde.SetText "Hallo"
    
    tbWaarde.PutInClipboard
    
MsgBox "De tekst            " & tbWaarde.GetText & vbNewLine & vbNewLine & "zit nu onder je CTRL+V toest combinatie"

End Sub

en werkt perfect (Windows 7).

Echter op een Windows 10 systeem blijkt het minder goed te werken, na heel wat tijd op diverse forums door te brengen ben ik er achter gekomen dat "DataObject" niet werkt als er een "Windows Explorer" venster geopend is !!
Dit uiteraard getest, en het blijkt inderdaad zo te zijn.

Weet iemand hoe ik dit toch zou kunnen laten werken zonder dat ik iedere keer Windows Explorer vensters moet sluiten.

Alvast bedankt voor evt. tips en trix
 
Geldt dat ook voor: ?

Code:
Sub M_snb()
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
       .SetText "voorbeeld"
        .PutInClipboard
    End With
End Sub

en waarvoor gebruik je het feitelijk ?
 
Beide werken hier prima in Windows 10, ook met open Windows Explorer vensters.
Heb je voor het gebruik van de code in #1 wel in VBA een ref*er*ence gezet naar de “Microsoft Forms 2.0 Object Library”?
 
SNB,

Met jou code krijg ik ook "??" als resultaat, als er een Windows Explorer venster openstaat naar een map op onze server, als ik bijv. "mijn documenten" open heb staan werkt het wel.


De tekst (locatie en bestandsnaam) die ik kopieer vanuit Excel gebruik ik andere applicaties.
 
Dan kun je toch ook ctrl-C, ctrl-V gebruiken ?
 
Ja dat doe ik nu dan ook, maar vond die ".PutInClipboard" juist wel fijn

ik ben er in middels wel achter dat ik niet de enige ben met dit probleem. Op https://social.msdn.microsoft.com/Forums/en-US/48e8c30c-24ee-458e-a873-a4e6e13f5926/dataobject-settext-and-putinclipboard-sequence-puts-invalid-data-hex-63-characters-in-clipboard?forum=isvvba wordt de oplossing gegeven om Windows Api te gebruiken.

https://msdn.microsoft.com/nl-nl/vba/access-vba/articles/send-information-to-the-clipboard
https://msdn.microsoft.com/VBA/Access-VBA/articles/retrieve-information-from-the-clipboard

ik heb alleen geen enkel idee hoe ik deze moet gebruiken, wil iemand mij dit uitleggen.
alvast bedankt.
 
Ja dat doe ik nu dan ook, maar vond die ".PutInClipboard" juist wel fijn

ik ben er in middels wel achter dat ik niet de enige ben met dit probleem. Op https://social.msdn.microsoft.com/Forums/en-US/48e8c30c-24ee-458e-a873-a4e6e13f5926/dataobject-settext-and-putinclipboard-sequence-puts-invalid-data-hex-63-characters-in-clipboard?forum=isvvba wordt de oplossing gegeven om Windows Api te gebruiken.

https://msdn.microsoft.com/nl-nl/vba/access-vba/articles/send-information-to-the-clipboard
https://msdn.microsoft.com/VBA/Access-VBA/articles/retrieve-information-from-the-clipboard

ik heb alleen geen enkel idee hoe ik deze moet gebruiken, wil iemand mij dit uitleggen.
alvast bedankt.

Is er iemand die mij een beetje uitleg zou willen geven?
 
Ik kan jouw Bug inderdaad reproduceren.

Nu kan ik deze ?? weer wegkrijgen door op de PasteAll knop van het OfficeKlembord te drukken, dan staat vervolgens weer de goede tekst in het klembord.
Dit kan ook middels code.(ingewikkeld)

je kunt ook al die clipboard api's gebruiken, maar maak het jezelf makkelijk

Plaats de tekst welke je in het klembord wilt hebben middels VBA in een cel
kopieer deze middels VBA
Nu staat de juiste tekst in jouw windows-klembord en in het office-klembord

Code:
Sub tst()
mijntekst = "blabla"
Range("I10") = mijntekst
Range("I10").Copy
End Sub
 
Dat voor zoiets onbenulligs zulke overkill API code nodig zou moeten zijn is mij een raadsel.
 
Ik kan jouw Bug inderdaad reproduceren.

Nu kan ik deze ?? weer wegkrijgen door op de PasteAll knop van het OfficeKlembord te drukken, dan staat vervolgens weer de goede tekst in het klembord.
Dit kan ook middels code.(ingewikkeld)

je kunt ook al die clipboard api's gebruiken, maar maak het jezelf makkelijk

Plaats de tekst welke je in het klembord wilt hebben middels VBA in een cel
kopieer deze middels VBA
Nu staat de juiste tekst in jouw windows-klembord en in het office-klembord

Code:
Sub tst()
mijntekst = "blabla"
Range("I10") = mijntekst
Range("I10").Copy
End Sub

Dankjewel E v R. jou oplossing werkt perfect. Soms is het gewoon te simpel. :eek:
 
Nog een tip.
Gebruik de knop Reageer op bericht.
Quote alleen als je niet direct op het vorige bericht reageert.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan