Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1080to1084
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zwischenspeicher gefüllt oder leer ?

Zwischenspeicher gefüllt oder leer ?
17.06.2009 08:29:46
chris
Hallo VBA profis,
guten morgen erst einmal an alle.
Ich habe eine frage.Mit unten stehendem Code leere ich erst die Zwischenablage.
Dann fülle ich diese wieder.
Wie kann ich prüfen ob die Zwischenablage gefüllt ist oder leer ?
Momentan mache ich das so.
ActiveSheet.Paste
Sleep 100
If Cells(1, 4) = "" Then GoTo noch_leer0
Aber ich möchte davon weg.
Gibt es eine andere möglichkeit zu prüfen ob die Zwischenablage leer ist oder sich etwas in ihr befindet ?
'Zwischenspeicher leeren
Application.CutCopyMode = False
Set oData = New DataObject
oData.SetText ""
oData.PutInClipboard
'prüfen ob nach drücken der taste Shift und Rechts sich ein Zeichen in der Zwischenablage befindet
'Erst wenn Zwischenablage nicht mehr leer dann weiter im code sonst immer wieder zurück zu
Sprungmarke "noch_leer:"

noch_leer0:
Sleep 100
SendKeys ("x"), True
SendKeys ("+{RIGHT}")
SendKeys ("^x"), True
Sleep 100
Cells(1, 4).Select
ActiveSheet.Paste
Sleep 100
If Cells(1, 4) = "" Then GoTo noch_leer0


Vielen dank an alle helfer !!!
gruß Chris

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ungetestet
17.06.2009 09:03:57
Tino
Hallo,
versuche es mal mit GetFormat
If oData.GetFormat(1) then
msgbox "Text in Zwischenablage"
end if
Gruß Tino
AW: ungetestet
17.06.2009 10:23:28
chris
Hallo Tino,
ich noch einmal.
Klappt doch nicht.
Mache wohl was falsch.
So fülle ich meine Zwischenablage.
noch_leer0:
Sleep 100
SendKeys ("x"), True
SendKeys ("+{RIGHT}")
SendKeys ("^x"), True
Sleep 100
'Und so habe ich bis jetzt getestet ob zwischenablage leer oder voll.
'Hier würde ich gerne deinen Code einbauen.
Bekomme es aber alleine nicht hin.Kannst du mir helfen ?
Cells(1, 4).Select
ActiveSheet.Paste
Sleep 100
If Cells(1, 4) = "" Then GoTo noch_leer0
Das müsste wohl irgendwie hier rein ?
If odata.GetFormat(1) Then GoTo noch_leer0
Danke Tino
Anzeige
in etwa so
17.06.2009 11:04:33
Tino
Hallo,
die Sache mit dem Sendkey habe ich aus Deinem Code noch nicht verstanden für was dies sein soll.
Ich würde dies in etwa so angehen.
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub Beispiel()
Dim oData As DataObject
Dim strClip As String
Dim i As Integer

Set oData = New DataObject

noch_leer0:
    
    oData.GetFromClipboard

    strClip = oData.GetText(1)

    '    SendKeys ("x"), True 
    '    SendKeys ("+{RIGHT}") 
    '    SendKeys ("^x"), True 

    If Len(strClip) = 0 Then
        i = i + 1 'Zähler für Abbruch, hier nach ca. 10 Sekunden 
        If i > 100 Then
         MsgBox "keine Daten in der Zwischablage"
        Else
           Sleep 100: GoTo noch_leer0
        End If
    End If

    If i <= 100 Then
        Cells(1, 4) = oData.GetText(1)
    End If


End Sub


Gruß Tino

Anzeige
AW: in etwa so
17.06.2009 11:35:08
chris
Vielen Dank.
Das mit dem sendkeys ist weil ich aus einer anderen Anwendung daten kopiere aus einem textfeld zum Beispiel.
Dazu drückte ich strg + c zum kopieren.
Danke für deinen weiteren code.habe in noch nicht getestet aber ich glaube er passt.
vielen dank Tino !!
AW: Zwischenspeicher gefüllt oder leer ?
17.06.2009 09:14:11
Luschi
Hallo Chris,
dieses Beispiel findest Du in der Excel-Vba-Hilfe:

Select Case Application.CutCopyMode
Case Is = False
MsgBox "Not in Cut or Copy mode"
Case Is = xlCopy
MsgBox "In Copy mode"
Case Is = xlCut
MsgBox "In Cut mode"
End Select

Gruß von Luschi
aus klein-Paris

Anzeige
AW: Zwischenspeicher gefüllt oder leer ?
17.06.2009 09:31:39
Tino
Hallo,
so wie ich es verstanden habe arbeitet er mit der Windows Ablage wegen oData.SetText "" und
oData.PutInClipboard, dort funzt es nicht mit CutCopyMode.
Gruß Tino
AW: Zwischenspeicher gefüllt oder leer ?
17.06.2009 10:16:41
chris
genau richtig erfasst Tino.
Vielen dank für Deine/eure Hilfe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige