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

Tekst uit tekstframe in clipboard plaatsen met VBA

Status
Niet open voor verdere reacties.

Excelbat

Gebruiker
Lid geworden
23 mrt 2012
Berichten
405
Hallo allemaal,

Ik heb tekst in een tekstframe (via het lint, menu invoegen, tekstvak), en deze tekst wil ik graag in het clipboard zetten om dit in een andere toepassing te kunnen plakken.
Ik heb wel iets via een omweg voor elkaar door eerst de tekst naar cel A1 te kopiëren, maar dit vind ik niet echt je van het ! Wie kan mij helpen?

Code:
Sub TextCopy()
GeheugenDump = Sheets("Blad1").Shapes("Tekstvak 1").TextFrame.Characters.Text
Range("A1") = GeheugenDump
Range("A1").Copy
End Sub

Bekijk bijlage TekstVakKopie.xlsb

Greetz/Excelbat
 
één van de mogelijkheden, rood deel is de bestemming


Code:
Sub TextCopy()
GeheugenDump = Sheets("Blad1").Shapes("Tekstvak 1").TextFrame.Characters.Text
[COLOR="#FF0000"]Sheets("Blad2").Range("A1").Value[/COLOR] = GeheugenDump
End Sub

en het kan nog korter


mvg
Leo
 
Goedemiddag Leo,

Dank je wel voor je antwoord. Echter wat ik bedoel is dat ik iets in het geheugen (clipboard) wil plaatsen, zonder dit fysiek eerst naar één of ander werkblad te kopiëren. Het is de bedoeling dat ik de gekopieerde tekst bijv. in een word-document kan plakken, of bijv, in een emailtoepassing. Ik wil dat range("A1") etc. dus helemaal niet gebruiken.

Greetz/Excelbat
 
Code:
[SIZE=1]Public Sub TextCopy()
    With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText Sheets("Blad1").Shapes("Tekstvak 1").TextFrame.Characters.Text
        .PutInClipboard
    End With
End Sub[/SIZE]
 
deze doet dat ook precies

Code:
Sheets("Blad1").Shapes("Tekstvak 1").Copy


mvg
Leo
 
Hi,

Code van Alphamax komt heel dicht in de buurt. Echter heb ik wel vraagje. Waarom dit moeilijke nummer: "new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"
Als ik dit moeilijke nummer door iets anders vervang, bijv. new:{Jantje}, dan werkt het niet.

@Leotaxi #5: dank je wel voor je reactie. Deze kopieert de hele tekstbox (dus met randen erbij), en dat is niet de bedoeling.

Thanx anyway.

Greetz/David
 
Laatst bewerkt:
Bedankt Alphamax voor je uitleg,

De uiteindelijke bedoeling was/is om te kunnen mailen vanuit excel met ActiveWorkbook.SendMail. De code van Alphamax gebruik ik om tekst in de body van de mail te plakken. Omdat ik o.a.
application.sendkey gebruik, wordt de NumLock uitgeschakeld. Daartoe heb ik een code van internet gehaald (eerlijk gejat...:P...) om de NumLock weer in te schakelen.

Code:
Public Declare Function GetKeyState Lib "user32" ( _
  ByVal nVirtKey As Long) As Integer
  Private Declare Sub keybd_event Lib "user32" ( _
  ByVal bVk As Byte, _
  ByVal bScan As Byte, _
  ByVal dwFlags As Long, _
  ByVal dwExtraInfo As Long)
  
Private Const VK_NUMLOCK = &H90
Private Const KEYEVENTF_KEYUP = &H2
Public Sub TextCopyAlphamax()
    With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText Sheets("Blad1").Shapes("Tekstvak 1").TextFrame.Characters.Text
        .PutInClipboard
    End With

WerkboekNaam = ActiveWorkbook.Name
WerkboekKort = Left(Right(WerkboekNaam, 11), 6)
Sheets("Blad1").Range("K2").Value = "Testboek " & WerkboekKort

ActiveWorkbook.SendMail Recipients:=Sheets("Blad1").Range("K1").Value, Subject:=Sheets("Blad1").Range("K2").Value
Application.SendKeys ("^v~")
 
If Not (GetKeyState(vbKeyNumlock) = 1) Then
  keybd_event VK_NUMLOCK, 1, 0, 0
  keybd_event VK_NUMLOCK, 1, KEYEVENTF_KEYUP, 0
End If

End Sub

Bekijk bijlage MailVersturenSimpel.xlsb

Greetz/Excelbat
 
Er is betrouwbaardere code voor outlook, lotus notes, thunderbird (moet ik nog uitzoeken) en zelfs zonder email-client (windows CDO).
Het is dat je het maar weet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan