Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Text kopieren und vergleichen
#1
Hallo zusammen,

ich möchte einen Wert aus einem externen Programm per SendKeys "^c" in die Zwischenablage kopieren. Klappt soweit auch.
Nun möchte ich, dass dieser Wert = "rot" sein soll.
Sofern es passt, dann soll der Code weiterlaufen.
Sofern der Wert in der Zwischenablage nicht "rot" ist, soll der Code mit einer Meldung stoppen.

Wie lautet der Code dafür :( ?
Ich schaffe es einfach nicht...
Antworten Top
#2
Hi,

Zitat:Nun möchte ich, dass dieser Wert = "rot" sein soll.

Wie meinen?
Wie holst Du den bisher Deine Werte aus der Zwischenablage resp. Clipboard?
Poste mal Deine Versuche...
gruß
Marco
Antworten Top
#3
ich habe meine kläglichen Versuche schon gelöscht.


Code:
SendKeys "^c"
Text_aus_Zwischenablage = "rot"

so habe ich es mir vorgestellt.
Ich möchte, dass der Code nur dann weiterläuft, wenn aus dem externen Programm das Wort "rot" rauskopiert wurde.
Daher wollte ich den Text aus der Zwischenablage mit "rot" abgleichen.
sofern dies nicht passt, soll ein Abbruch erfolgen.
Antworten Top
#4
Hallo


so???


Code:
Sub ZwischenAblage()
   ' Zwischenablage ausgeben
   
   ' Ein Verweis auf Microsoft Forms 2.X Object Library
   ' muss gesetzt sein
   
   Dim oTest As DataObject
   Set oTest = New DataObject
   oTest.GetFromClipboard
   If oTest.GetText(1) = "rot" Then
       MsgBox "Hurra , rot"
   Else
       MsgBox "Kein Treffer"
       Exit Sub
   End If
   
   'Weiter mit deinem Code
End Sub

LG UweD
[-] Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:
  • pfann
Antworten Top
#5
perfekt, vielen Dank für deine Hilfe! Sensationell
Antworten Top
#6
ich habe diesen code nun an vier stellen eingesetzt.

Code:
  Dim oTest As DataObject
  Set oTest = New DataObject
  oTest.GetFromClipboard
  If oTest.GetText(1) = "rot" Then
      MsgBox "Hurra , rot"
  Else
      MsgBox "Kein Treffer"
      Exit Sub
  End If
 


funktioniert auch, bis auf an der vierten stelle.

den code für die stelle 2, 3 und 4 habe ich dahingehend abgeändert, dass ich an das oTest jeweils eine 1, 2 bzw. 3 eingefügt habe.

der letzte code lautet:

Code:
  Dim oTest3 As DataObject
  Set oTest3 = New DataObject
  oTest3.GetFromClipboard
  If oTest3.GetText(1) = "Über" Then
  Else
      MsgBox "Kein Treffer"
      Exit Sub
  End If
 
hier meldet mir excel immer "kein Treffer", obwohl der kopierte text 1:1 übereinstimmt mit dem geforderten.

Kann es evtl. sein, dass er Probleme mit dem "ü" hat?
Antworten Top
#7
am "ü" kann es nicht liegen, ich habe nun testweise ein anderes wort benutzt, ohne erfolg.

hat excel / Vba ein problem damit, dass ich in einem code 4x einen abgleich machen möchte?
Antworten Top
#8
Hallo


Es kann ja immer nur ein Wert in der Zwischenablage der verglichen werden.

Also musst du zwischen 1, 2, 3, 4 was neuer in die ZA kopieren.
Du schriebst mal, dass du das über sendkeys machst.

Ich kenne jetzt nicht den Ablauf deines gesamten Makros. Aber mMn müßte es so laufen.

ungeprüft:


Code:
Sub dgdgdg()
   Dim oTest As DataObject
   Set oTest = New DataObject
   
   'sendkey1....
   
   oTest.GetFromClipboard
   If oTest.GetText(1) = "Rot" Then
           'Machwas
       Else
           MsgBox "Kein Treffer für Rot"
           Exit Sub
   End If


'sendkey2....
   
   oTest.GetFromClipboard
   If oTest.GetText(1) = "Gelb" Then
           'Machwas
       Else
           MsgBox "Kein Treffer für Gelb"
           Exit Sub
   End If

'sendkey3....
   
   oTest.GetFromClipboard
   If oTest.GetText(1) = "Über" Then
           'Machwas
       Else
           MsgBox "Kein Treffer für Über"
           Exit Sub
   End If

'sendkey4....
   
   oTest.GetFromClipboard
   If oTest.GetText(1) = "Unter" Then
           'Machwas
       Else
           MsgBox "Kein Treffer für Unter"
           Exit Sub
   End If

End Sub


LG UweD
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste