Microsoft Excel

Herbers Excel/VBA-Archiv

Zwischenablage - Code | Herbers Excel-Forum


Betrifft: Zwischenablage - Code von: Karsten
Geschrieben am: 05.12.2009 17:48:47

Hallo,

hatte zwar die Frage schon mal gestellt aber leider ohne Erfolg, deshalb versuche ich es einfach noch mal.
Ich suche für folgendes einen Code (wenn es sich überhaupt VBAschen lässt):

If "Zwischenablage nicht leer" Then
Application.run "Makro1"
Else
Application.run "Makro2"
End If

Danke für eure Hilfe.

Gruß
Karsten

  

Betrifft: AW: Zwischenablage - Code von: Josef Ehrensberger
Geschrieben am: 05.12.2009 17:59:36

Hallo Karsten,

meinst du so?

If Application.CutCopyMode Then
  Application.Run "Makro1"
Else
  Application.Run "Makro2"
End If



Gruß Sepp



  

Betrifft: AW: Zwischenablage - Code von: Lena
Geschrieben am: 05.12.2009 19:17:19

Ja. Danke.

Gruß
Karsten


  

Betrifft: Nur 2 1/2 Stunden für eine Geschlechtsumwandlung? von: Josef Ehrensberger
Geschrieben am: 05.12.2009 19:42:37

Hallo Lena, früher Karsten!

Ist die Operation gelungen?

Gruß Sepp



  

Betrifft: AW: Nur 2 1/2 Stunden für eine Geschlechtsumwandlung? von: Karsten
Geschrieben am: 05.12.2009 20:30:17

Nee, da hab ich wieder kurz den Laptop meiner Frau gehabt und vergessen die Karsten-Maske anzuklicken. Jetzt müsste der Schluß wieder chic sein.

Gruß
Karsten


  

Betrifft: AW: Nur 2 1/2 Stunden für eine Geschlechtsumwandlu von: Karsten
Geschrieben am: 05.12.2009 22:15:54

Hallo Sepp,

dieser Code funktioniert nur in Bezug auf das Kopieren einer markierten Zelle.
Wenn ich nur ein bestimmtes Zeichen des Zellinhaltes kopiere, funktioniert Application.CutCopyMode nicht.
Wird diese Operation von Excel anders verarbeitet? Gibt es dafür einen anderen Befehl?

Damit du weißt, was das ganze soll. Ich möchte damit den Exceleigenem Alzheimereffekt umgehen. Z.B. so:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim rngOld As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode Then
Else
Target.WrapText = True
If Not rngOld Is Nothing Then rngOld.WrapText = False
Set rngOld = Target
End If
End Sub
Gruß
Karsten


  

Betrifft: AW: Nur 2 1/2 Stunden für eine Geschlechtsumwandlu von: Josef Ehrensberger
Geschrieben am: 05.12.2009 22:23:23

Hallo Karsten,

dazu müsste man das Clipboard (Windows-Zwischenablage) abfragen und entsprechend
einbinden. Die Windows-Zwischenablage ist aber auch gefüllt, wenn du in einer anderen
Anwendung etwas kopierst.


Gruß Sepp



  

Betrifft: AW: Nur 2 1/2 Stunden für eine Geschlechtsumwandlu von: Karsten
Geschrieben am: 05.12.2009 23:19:51

Hallo Sepp,

Wenn ich es richtig verstehe, geht diese Art des Kopierens über das Clipboard, nicht über Excel.
Wie läßt es sich dementsprechend einbinden, muss ich jetzt fragen?

Gruß
Karsten


  

Betrifft: AW: Nur 2 1/2 Stunden für eine Geschlechtsumwandlu von: Josef Ehrensberger
Geschrieben am: 05.12.2009 23:42:34

Hallo Karsten,

' **********************************************************************
' Modul: Modul8 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Function GetTextFromClipboard() As String
  'Benötigt den Verweis auf "Microsoft Forms 2.x Object Library" (unter Extras > Verweise)
  Dim objCBData As DataObject
  
  Set objCBData = New DataObject
  
  On Error GoTo ErrNoText
  objCBData.GetFromClipboard
  GetTextFromClipboard = objCBData.GetText
  
  ErrNoText:
  
  Set objCBData = Nothing
End Function


Sub test10()
  If GetTextFromClipboard <> "" Then
    Application.Run "Makro1"
  Else
    Application.Run "Makro2"
  End If
End Sub



Gruß Sepp



  

Betrifft: AW: Nur 2 1/2 Stunden für eine Geschlechtsumwandlu von: Karsten
Geschrieben am: 06.12.2009 10:17:38

Hallo Sepp.

Danke.

Gruß
Karsten


Beiträge aus den Excel-Beispielen zum Thema "Zwischenablage - Code"