Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zwischenablage mit oder ohne Inhalt erkennen | Herbers Excel-Forum


Betrifft: Zwischenablage mit oder ohne Inhalt erkennen von: Karsten
Geschrieben am: 22.11.2009 22:11:17

Hallo,

Kann Excel per VBA-Code erkennen, ob sich etwas in der Zwischenablage befindet oder nicht?
Wenn ja, dann benötige ich einen Makro in folgende Richtung:

wenn Zwischenablage voll, dann "Einfügen", wenn nicht, dann Makro1

Danke für eure Hilfe.

Gruß
Karsten

  

Betrifft: AW: Zwischenablage mit oder ohne Inhalt erkennen von: oppi
Geschrieben am: 22.11.2009 22:22:34

Vielleicht ist ja hier was für dich dabei
http://www.it-academy.cc/article/913/Zugriff+auf+die+Zwischenablage+in+VB.html


  

Betrifft: AW: Zwischenablage mit oder ohne Inhalt erkennen von: chris b.
Geschrieben am: 22.11.2009 22:27:04

Das geht so Karsten.


Sub Beispiel()

Dim oData As DataObject
Dim strClip As String

Set oData = New DataObject
oData.GetFromClipboard
strClip = oData.GetText(1) 'hier daten aus Zwischenablage in strClip kopieren

If Len(strClip) = 0 Then
    MsgBox ("keine Daten in der Zwischablage")
Else
    MsgBox ("Daten in der Zwischenablage")
End If
End Sub



  

Betrifft: AW: Zwischenablage mit oder ohne Inhalt erkennen von: Karsten
Geschrieben am: 23.11.2009 08:27:34

Hallo Oppi,

Danke.

Gruß
Karsten


  

Betrifft: AW: Zwischenablage mit oder ohne Inhalt erkennen von: Josef Ehrensberger
Geschrieben am: 22.11.2009 22:28:52

Hallo Karsten,

das geht z.B. so. (Verweis setzen nicht vergesen!)

' **********************************************************************
' Modul: Modul5 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub test()
  If Len(getClipboard) Then
    MsgBox getClipboard
  Else
    MsgBox "Zwischenablage ist leer!"
  End If
End Sub

Private Function getClipboard() 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
  getClipboard = objCBData.GetText
  
  ErrNoText:
  
  Set objCBData = Nothing
End Function



Gruß Sepp



  

Betrifft: AW: Zwischenablage mit oder ohne Inhalt erkennen von: Karsten
Geschrieben am: 23.11.2009 08:40:11

Hallo Sepp,

danke, aber ich versuche erstmal auf diese Methode zu verzichten.
Ich habe mich wiedermal etwas verrannt.

In "D1:BH1" wird offenbar nur das gefunden, was in C1 entweder per Hand eingetippt oder mit Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ hineinkopiert wurde.

So sieht die Szenerie momentan dort aus:

Range("c1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
If WorksheetFunction.CountIf(Range("D1:BH1"), Range("C1").Value) > 0 Then
Range("D1:B1").find(What:=Range("C1").Value, LookIn:=xlValues, LookAt:=xlPart).Select

Cells.find(What:=ActiveCell, After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

usw.


In C1 soll das stehen, was in "Stundelplan" (andere Seite) in der aktiven Zelle steht. Wenn es dafür eine andere Übertragungsweise gibt, wäre die Frage dieses Threats kein Gegenstand mehr, weil die Zwischenablage nicht ständig mit C1-Kopieen gefüllt sein würde.

Siest du da evt. eine Möglichkeit?


Gruß
Karsten


  

Betrifft: AW: Zwischenablage mit oder ohne Inhalt erkennen von: Josef Ehrensberger
Geschrieben am: 23.11.2009 17:35:34

Hallo Karsten,

Möglichkeiten gibt's fast immer, allerdings werde ich aus weder aus deiner Beschreibung, noch aus dem Codegemurkse schlau.

Beschreib mal in aller Ruhe was du erreichen willst, evtl. mit einer aussagekräftigen Beispiedatei.


Gruß Sepp



  

Betrifft: AW: Zwischenablage mit oder ohne Inhalt erkennen von: Karsten
Geschrieben am: 23.11.2009 19:48:23

Hallo Sepp,

tut mir leid das ich mich schlecht ausdrücke, aber ich habe permanenten Familienstress und deshab kaum Ruhe meine Gedanken richtig zu fassen. Kann gerade mal wieder ein paar Minuten an mich reißen.

Durch weitere Treads habe ich erfahren, dass ich an der falschen Baustelle gearbeitet habe .

Zur Sache:
Ich habe etwas kopiert, dann einen ganzen Makroroman ablaufen lassen, wollte mit Strg+V einfügen und... das ging nicht. Erst nach viel Probieren habe ich gemerkt, dass es z.B. an folgenden Codes liegt:

Range("A1").Select
Selection.Font.ColorIndex = 3
With Selection.Interior
.ColorIndex = 50
.Pattern = xlSolid
End With

In der Office- Zwischenablage ist zwar der Inhalt da, aber die Einfügeprozedur ist eben umständlich.

Nach meinem derzeitigem Wissensstand sieht nun wohl so aus, dass ich auf alle Codes, welche die kreisenden Strichelchen um die markierte Zelle vernichten, verzichten muss, oder auf das Kopieren verzichten muss.

Oder sollte es doch anders gehen?

Gruß
Karsten


  

Betrifft: AW: Zwischenablage mit oder ohne Inhalt erkennen von: Josef Ehrensberger
Geschrieben am: 23.11.2009 19:53:44

Hallo Karsten,

du willst ja nicht rausrücken was du eigentlich ereichen willst, na ja.

Warum fügst du nicht zuerst ein und lässt dann das Makro laufen?

PS:

Man muss den Cursor nicht herumhetzen wie einen Hund, man kann, und sollte, Zellen auch ohne .Select bearbeiten.

With Range("A1")
   .Font.ColorIndex = 3
   With .Interior
      .ColorIndex = 50
      .Pattern = xlSolid
   End With
End With

Gruß Sepp



  

Betrifft: AW: Zwischenablage mit oder ohne Inhalt erkennen von: Karsten
Geschrieben am: 23.11.2009 20:30:40

Hallo Sepp,

Ich kann dir gern meine Datei mailen (da über 2 MB). Meine Makrokonstruktionen haben für dich bestimmt ein gewissen Unterhaltungswert.

Zuerst einfügen? Z.B. in Tabelle2 steht in einem Stundenplan ein Name. Wenn ich mit Strg+leer den Makro starte, wird in Tabelle1 genau dieser Name gefunden. Da in Spalte A das fortlaufende Datum aufgelistet ist, wird genau die Zeile, wo das Datum steht angesteuert. Da kopieren ich z.B den ganzen Zellinhalt. Über Strg+leer komme ich wieder zurück in den Stundenplan, gehe auf einen bestimmten Namen und starte wieder mit Strg+leer und komme in die gewünschte Zelle in Tabelle1. Wenn ich nun noch die besagten Codes im Makro habe, sind die Kopien pfutsch. Da das ganze auf einem Mini-Laptop veranstaltet wird und ich mit einer Hirnhäfte immer woanders bin, ist die Normal-Kopiererei eine Quälerei.

Man muss den Cursor nicht herumhetzen wie einen Hund, man kann, und sollte, Zellen auch ohne .Select bearbeiten.

Das verstehe ich nicht. Wenn es mich näher an's Ziel meiner Wünsche bringt, erkläre es mir bitte.

Gruß
Karsten


  

Betrifft: AW: Zwischenablage mit oder ohne Inhalt erkennen von: Josef Ehrensberger
Geschrieben am: 23.11.2009 20:57:05

Hallo Karsten,

poste hier doch mal den Code deiner drei Makros und evtl. die Tabellennamen auf denen sich was, wann ond wo abspielt.


Gruß Sepp



  

Betrifft: AW: Zwischenablage mit oder ohne Inhalt erkennen von: Karsten
Geschrieben am: 24.11.2009 01:23:50

Hallo Sepp,

da ist einfach zu viel verkettet, um irgend etwas herauszunehmen. Im Grunde genommen bin ich, so wie es läuft, zufrieden. Wegen dieser Einschränkung werde ich mich jetzt nicht verrückt machen.

Gruß
Karsten


Beiträge aus den Excel-Beispielen zum Thema "Zwischenablage mit oder ohne Inhalt erkennen"