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

Excel 2002 VBA Hoe kan ik een cel naar het clipboard kopieren?

Status
Niet open voor verdere reacties.

marcelmarnix

Gebruiker
Lid geworden
15 apr 2008
Berichten
6
Ik wil liefst met 1 klik de huidige waarde van een cel naar het clipboard kopieren.

wanneer onderstaande code uitgevoerd wordt, kan ik in debug mode met een stop op "end sub" kopieren wat ik wil, maar als de code helemaal runt, wordt het clipboard geleegd.

Graag wil ik de waarde in het clipboad bewaren voor andere programma's

Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
ActiveCell.Copy
End Sub
 
probeer dit eens:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
SendKeys "^c", True
End Sub
 
Helaas

probeer dit eens:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
SendKeys "^c", True
End Sub

Brands bedankt, ik lijk wel een stap verder, want als ik in debug de stop plaats op "end sub" en daarna ergens iets kopieer, dan kan ik blijven kopieren en blijft het klembord beschikbaar. Echter wanneer ik het programmatje in 1 keer run, is plakken grijs geworden.
Ook heb ik de toetsen combinatie ^v geprobeerd in de code na ^c, echter mijn klembord blijft leeg.

Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
SendKeys "^c", True
SendKeys "^v", True
End Sub
 
Laatst bewerkt:
Ik denk dat het probleem bij jouw zit in het runnen van de macro na dubbelklik. Als je dubbelklikt in een cel met tekst dan krijg je de cursor te zien en heb je geen tekst geselecteerd. Er valt dan ook niets te kopieren. Ik denk dat je dit zult moeten vermijden wil je tot een oplossing komen.
 
Active cell

Wanneer ik dubbelklik krijg ik wel de waarde van de aktieve cel en wanneer ik onder debug een stop plaats, staat de waarde van de active cel op het clipboard, ik kan ook nog andere opdrachten uitvoeren, bijvoorbeeld een kopie naar een andere cel etc, dit lukt prima. echter wanneer het vba programmatje afloopt is mijn klembord gewist. Behalve wanneer ik in debug mode eerst een keer plak en daarna het programma verder run, dan blijven de gegevens beschikbaar
 
Ah ik begreep het niet helemaal (te snel gelezen). Ik denk dat deze code wel een oplossing voor je is:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim test As DataObject
Set test = New DataObject
test.SetText Target.Value
test.PutInClipboard
End Sub
 
Compileerfout

Ah ik begreep het niet helemaal (te snel gelezen). Ik denk dat deze code wel een oplossing voor je is:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim test As DataObject
Set test = New DataObject
test.SetText Target.Value
test.PutInClipboard
End Sub

Bovenstaande code heb ik geprobeerd en krijg:
Compileerfout: Een door de gebruiker gedfinieerd gegevenstype is niet gedefinieerd.

En dan is: Dim test As DataObject geselecteerd
 
Dit komt omdat er een referentie moet zijn met MS Forms. Als je een knop oid in je sheet plaatst wordt deze referentie automatisch gemaakt (ook al gebruik je de knop niet).
 
hoe referentie

Bedankt voor zover :thumb:

Het lukt me echter niet een referentie naar ms forms te maken. Ik heb geprobeerd extra, invoegtoepassingen, maar hier staat geen msforms bij, ook heb ik een button en een selectievakje naar mijn formulier gesleept, nog steeds geen referentie.

Ook heb ik in de objectbibliotheek gekeken, hier vindt ik een VBA.vbVarType met lid vbDataObject. Maar weet niet hiermee om te gaan.

Onder VB kon ik Imports gebruiken om te refereren, maar werkt hier ook niet.

Graag aangeven hoe ik de referentie kan maken naar msforms....
 
Hoe die referentie in VBA zelf gemaakt kan worden weet ik niet precies. Hier in ieder geval de oplossing zoals ik eerder beschreef.
 

Bijlagen

Hij werkt !!!

Ja fantastisch, hij werkt.... bedankt, ik ga nog even kijken waar het verschil ligt, maar reuze bedankt voor de hulp!!!
 
Ik heb gevonden hoe het zonder de button kan:

Klik in de VBA editor op Tools>References. Selecteer hier Microsoft Forms 2.0 Object Library en de code zou moeten werken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan