copy aus Textbox

20/09/2016 - 23:56 von Hans.Alborg | Report spam
Hallo wieder...

<Excel 2007>

In meiner Eisenbahnsimu gibt es viele Hilfscodes um das Programmieren zu
erleichtern.
So gibt es eine Userform, die fertige Codezeilen erzeugt und in eine
Textbox schreibt. Von da kopiere ich den Code um ihn in ein Modul zu setzen.

Das kopieren geht nicht direkt, sondern auch mit einer Routine.
Ich muß die Zeilen markieren und wenn ich darauf einen Rechtsklick mache
landet der Text in der Zwischenablage.

Seit Windows10 nun klappt das nicht jedesmal (also nicht bei jeder
"Sitzung"). In 2 verschiedenen Mappen wo ich diese Technik einsetze
werden statt der Texte garnichts oder nur "??" dargestellt.

Warum???

Hier der Code, wie man ihn àhnlich auch im Netz findet:
'
Private Sub TB_Anzeige_Kontakte_MouseUp _
(ByVal Button As _
Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
Dim Codezeilen As DataObject
Set Codezeilen = New DataObject
If Button = 2 Then
If TB_Anzeige_Kontakte.SelLength = 0 Then
MsgBox "Nix gewàhlt", vbInformation
Exit Sub
End If
If TB_Anzeige_Kontakte.SelLength > 0 Then
Codezeilen.SetText TB_Anzeige_Kontakte.SelText
Codezeilen.PutInClipboard
End If
End If
End Sub
'
TB_Anzeige_Kontakte ist die Textbox.
Beim markieren ist Button =1 und es làuft durch. Mache ich den
Rechtsklick ist Button =2, es soll kopiert werden.

Ich hab festgestellt, daß in der Zeile
Codezeilen.PutInClipboard
nichts in die Zwischenablage kommt. Könnte aber auch sein, daß in der Zeile
Codezeilen.SetText TB_Anzeige_Kontakte.SelText
also "Codezeilen" nicht belegt wird.

TB_Anzeige_Kontakte.SelText
enthàlt jedoch die Daten (String).

Ist halt komisch daß es auch mal geht, auf denselben Rechnern.

Was könnte ich tun? Gibt es andere Wege Textbox --> Zwischenablage?
Die erzeugten Codezeilen sind formatiert (Einrückungen etc.) und sollten
sich schon genauso übernehmen lassen.

TIA,

Hans
 

Lesen sie die antworten

#1 Claus Busch
21/09/2016 - 12:21 | Warnen spam
Hallo Hans,

Am Tue, 20 Sep 2016 23:56:42 +0200 schrieb Hans.Alborg:

Seit Windows10 nun klappt das nicht jedesmal (also nicht bei jeder
"Sitzung"). In 2 verschiedenen Mappen wo ich diese Technik einsetze
werden statt der Texte garnichts oder nur "??" dargestellt.



warum arbeitest du mit beiden Maustasten? Es würde doch schon reichen:

If TB_Anzeige_Kontakte.SelLength > 0 Then
Codezeilen.SetText TB_Anzeige_Kontakte.SelText
Codezeilen.PutInClipboard
Else
MsgBox "Nichts gewàhlt"
Exit Sub
End If

Wenn du genau weißt, wo der Text hin soll, könntest du ihn doch auch
direkt in das Modul schreiben (im Beispiel nach Modul2 in Zeile 3):

Dim VBCMod As codemodule
Set VBCMod = ThisWorkbook.VBProject.VBComponents _
("Modul2").codemodule

If TB_Anzeige_Kontakte.SelLength > 0 Then
VBCMod.insertlines 3, TB_Anzeige_Kontakte.SelText
Else
MsgBox "Nichts gewàhlt"
Exit Sub
End If


Mit freundlichen Grüßen
Claus
Windows10
Office 2016

Ähnliche fragen