Inhalt mehrerer Zellen verkettet in Zwischenablage kopieren
#1
Hallo,

ich will den Inhalt mehrerer Zellen miteinander verkettet in die Zwischenablage kopieren, damit ich sie in einem anderen Programm mit STRG-V einfügen kann.

In Zeile "loLetzte" die Zellen D, E, A und umgekehrtes Datum (getrennt mit "-") aus C
Trenner zwischen den Zellen: " - "

Wie mache ich das?


Zusatzfrage:
Wenn ich eine Variable füllen will mit
DokName = Range("D" & loLetzte) & "" - "" & Range("E" & loLetzte) & "" - "" & Range("A" & loLetzte) & "" - "" & Text(Range("C" & loLetzte), "JJJJ-MM-TT")
kommt für Text die Fehlermeldung "Sub oder Funktion nicht definiert".
Top
#2
Hi

dazu findet sich das im Netz.
Beachte den Hinweis im Code "Erfordert VBA-Verweis....."
Im Editor auf Extras -> Verweise
Code:
Public Sub Ablage()
'Erfordert VBA-Verweis auf "Microsoft Forms 2.0 Object Library" !
Dim i As Long
Dim objData As DataObject
Set objData = New DataObject
i = 3  'letzte Zeile
objData.SetText Range("D" & i).Value & " - " & Range("E" & i).Value & " - " & Range("A" & i).Value & " - " & Format(Range("C" & i), "YYYY-MM-DD")
objData.PutInClipboard
Set objData = Nothing
End Sub
Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Rabe
Top
#3
Hallo,

danke,

ich hatte so einen Code auch und auch die Verweise überprüft, aber anscheinend nicht den Haken gesetzt.
Darum kam eine Fehlermeldung.

Wenn ich das Makro durchlaufen lasse und den Inhalt dann mit STRG-V einfüge, sehe ich im Excel dies, in anderen Programmen erscheinen 2 Fragezeichen:
   

Ich habe das Makro danach erweitert um eine Variable, die ich in einer Messagebox anzeigen lasse. Dort steht der Inhalt korrekt drin.
Option Explicit

Public Sub Ablage()
   'Erfordert VBA-Verweis auf "Microsoft Forms 2.0 Object Library" !
   Dim i As Long
   Dim loLetzte As Long
   Dim objData As DataObject
   Dim DokName As String
   
   Set objData = New DataObject
   
   loLetzte = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
   i = loLetzte  'letzte Zeile
   objData.SetText Range("D" & i).Value & " - " & Range("E" & i).Value & " - " & Range("A" & i).Value & " - " & Format(Range("C" & i), "YYYY-MM-DD")
   objData.PutInClipboard
   Set objData = Nothing
   
   DokName = Range("D" & i).Value & " - " & Range("E" & i).Value & " - " & Range("A" & i).Value & " - " & Format(Range("C" & i), "YYYY-MM-DD")
   MsgBox DokName
End Sub
Top
#4
Zitat:Wenn ich das Makro durchlaufen lasse und den Inhalt dann mit STRG-V einfüge
Also bei mir erscheint der Zellinhalt.
evtl. Excel Versions Problem.
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Rabe
Top
#5
PHP-Code:
Sub M_snb()
  sn=cells(rows.count,1).end(xlup).resize(,5)

  With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    .SetText  join(array(sn(1,4),sn(1,5),sn(1,1),format(sn(1,3),"yyyy-mm-dd")),"_")
    .PutInClipboard
  End With
End Sub 


    NB. Man sollte kein "-" als Trennzeichen in ein Datum und als Trennzeichen zwischen Fields verwenden
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Rabe
Top
#6
Hi snb,

danke, so funktioniert es!
Top


Gehe zu:


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