Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1872to1876
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
Nur Wert mit VBA kopieren
28.02.2022 11:07:54
Gerd
Hallo.
Zunächst möchte ich anmerken, dass ich neu in diesem Forum bin. Falls meine Ausführungen ggf. verbesserungswürdig sind, bin ich für jeden Hinweis dankbar. Ich hab recht gute Excelkenntnisse, bei VBA aber eher geringfügig.
Ich habe folgendes Excelproblem:
Ich habe in einer Zelle einen per Formel erstellten dynamischen Mustertext, der abhängig von verschiedenen Eingaben erstellt wird. So weit, so gut. Nun möchte ich diesen Text über eine Schaltfläche per VBA kopieren. Ziel ist es, dass der Text dann in einer anderen Anwendung (nicht von MS) einfach mit Strg + V eingefügt werden kann. Problem hierbei ist, dass ich diese Prozedur mit VBA hinbekomme, aber nur so, dass es die gesamte Zelle samt Formatierungen etc. kopiert. Damit kann aber die andere Anwendung, in der der Text eingefügt werden soll, nicht umgehen. D.h. ich benötige tatsächlich nur den Textinhalt.
Hat jemand eine Idee, wie sich dies mit VBA bewerkstelligen lässt? Wie gesagt, ich habe echt nur rudimentäre VBA-Kenntnisse. Evtl. wurde dieses Thema auch bereits im Forum behandelt. Meine Google-Suche blieb dazu leider wenig erfolgreich.
Ich danke euch bereits im Voraus für eure Hilfe!

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur Wert mit VBA kopieren
28.02.2022 11:48:34
JoWE
Hallo Gerd,
hier ein Beispiel:

Sub zusammen()
'Beispiel:
'in A1 steht "Das"
'in B1 steht "ist"
'in C1 steht "mit"
'in D1 steht 6
'in E1 steht =D1*F1
'in F1 steht 55
'in G1 steht "ganz schön teuer."
With Sheets("Tabelle1")
meinText = .Range("A1") & " " & .Range("B1") & _
" " & .Range("C1") & " " & Format(.Range("E1"), "0.00 €") _
& " " & .Range("G1")
End With
MsgBox meinText
End Sub
Im Ergebnis meinText steht dann: "Das ist mit 330,00 € ganz schön teuer."
Gruß
Jochen
Jochen
AW: Nur Wert mit VBA kopieren
28.02.2022 11:57:08
Gerd
Hallo Jochen,
danke für deine Antwort.
Eventuell habe ich mich da etwas missverständlich ausgedrückt. Der Text ist bereits vollständig in der von mir erwähnten Zelle vorhanden. Der Text wird über die Formel VERKETTEN und verschachtelten WENN-Funktionen erstellt.
Mein Anliegen zielt tatsächlich lediglich darauf ab, diese erwähnte Zelle über eine Schaltfläche zu kopieren aber eben nicht die ganze Zelle samt der Excel-Formatierungen sondern lediglich den Textinhalt der Zelle so dass ich diese dann mit "STRG + V" in die andere, nicht MS-kompatible Anwendung einfügen kann.
Danke im Voraus.
VG Gerd
Anzeige
AW: Nur Wert mit VBA kopieren
28.02.2022 12:23:28
JoWE
Dann eben nur:
meinText = Range("B12").value - also Dein Bereich wo der gewünschte Text schon als Formelergebnis steht.
AW: Nur Wert mit VBA kopieren
28.02.2022 12:38:27
Gerd
Danke Jochen. Das hat schon mal super funktioniert.
Der Text wird in der Message-Box angezeigt. Gibt es noch eine Möglichkeit, dass dieser Text nun sozusagen kopiert in der Zwischenablage zur Verfügung steht, so dass ich ihn mit Einfügen, also STRG + V, in einer anderen Anwendung einfügen kann?
Danke für die Hilfe.
VG Gerd
AW: Nur Wert mit VBA kopieren
28.02.2022 12:47:05
JoWE
Ja,
meinText.copy 'schreibt den Inhalt der Variablen in die Zwischenablage
Dann sollte es mit Strg+V funktionieren
AW: Nur Wert mit VBA kopieren
28.02.2022 13:01:19
Gerd
Okay danke Jochen. Könntest du mein Anliegen ggf. noch mal in einem vollständigen VBA-Code zusammenfassen? Ich weiß nicht so richtig wie und wo ich jetzt meinText.copy in den Code einfüge.
Wie gesagt - ich bin eher VBA-Anfänger. Vielen Dank!!!!
VG
Anzeige
AW: Nur Wert mit VBA kopieren
28.02.2022 13:42:51
JoWE
Hallo Gerd,
dann lade doch bitte eine Mustermappe hoch, dort würde ich Dir dann den Co0de einbauen.
Damit würden sich dann wohl eher weitere Nachfragen erübrigen, ja?!
Gruß
Jochen
AW: Nur Wert mit VBA kopieren
28.02.2022 14:04:51
JoWE

Sub Txt_in_Zwischenablage()
'eigentlich reicht schon dies (ohne Dimensionierung einer Variablen):
Sheets("Tabelle1").Range("B12").Copy
'damit befindet sich der Inhalt(der Text) von Zelle "B12" in der Zwischenablage
'weil die Zwischenablage lediglich Text aufnimmt, keine Formatierung etc.
'Die MessageBox zeigt den Inhalt von Zelle "B12"
MsgBox Sheets("Tabelle1").Range("B12")
End Sub

Anzeige
AW: Nur Wert mit VBA kopieren
28.02.2022 14:33:23
Gerd
Ich verstehe was Sie meinen.
Das Problem ist, die Software in die der Text übertragen werden soll, ist ebenso eine Art Textverarbeitungs- /Formularmanagementsystem. Bei Anwendung dieses VBA-Code wird auch die Tabellenformatierung kopiert und in die genannte Software mit eingefügt, allerdings mit fehlerhafter Darstellung.
D.h. es funktioniert tatsächlich nur reibungslos wenn ausschließlich der Textinhalt der Zelle kopiert wird und ich in der Lage bin, diesen Text dann mit Strg + V einzufügen. Also im Grunde so, wie der Code mit der Msgbox nur eben, dass ich es nicht in der Msgbox brauche sondern in der Zwischenablage.
Also der Code war schon gut:

Sub MustertextKopieren()
With Sheets("Tabelle1")
meinText = Range("B12").Value
End With
MsgBox meinText
End Sub
Der Bereich MsgBox müsste eben nur durch eine Procedur ersetzt werden, die den Text nicht in der MsgBox wiedergibt, sondern eben in die Zwischenablage kopiert.
Danke.
Anzeige
AW: Nur Wert mit VBA kopieren
01.03.2022 12:12:32
JoWE
Gerd,
habe da noch etwas gefunden:

Sub kopieren()
Dim objClip As dataobject
Set objClip = New dataobject
strTmp = Cells(1, 1).Value
objClip.SetText strTmp
objClip.PutInClipboard
'nun sollte mit STRG+V der Inhalt
'der Zwischenablage in die andere App einzufügen sein
End Sub
Klappt's?
Gruß
Jochen
AW: Nur Wert mit VBA kopieren
01.03.2022 12:15:12
JoWE
falls es zu einem Fehler kommt:
in der VBA-Umgebung muss dann unter
Extras, Verweise Microsoft Forms 2.0 Object Library
aktiviert werden!
AW: Nur Wert mit VBA kopieren
01.03.2022 13:12:59
Gerd
Hey.
Das Makro funktioniert zwar, beim Einfügen erscheinen aber nur 2 Kästchen mit Fragezeichen.
Möglicherweise ist das ein komplexeres Problem. Meine Recherchen haben ergeben, dass sich hiermit auf englisch sprachigen Seiten bereits intensiv auseinandergesetzt wurde:
https://stackoverflow.com/questions/14219455/excel-vba-code-to-copy-a-specific-string-to-clipboard/60896244#60896244
Das übersteigt allerdings definitiv meinen VBA-Horizont.
Anzeige
Schade!! Dann bin ich raus. Frage OFFEN
01.03.2022 13:24:55
JoWE
noch jemand irgendwelche Ideen?
AW: Probier mal so...
04.03.2022 17:26:12
EtoPHG
Hallo Gerd,
Im VBA Editor diesen Code

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim vText As Variant
If Target.Cells(1, 1).Address(0, 0) = "F5" Then     ' F5 durch deine Zelladdresse erstetzen
Cancel = True
vText = Target.Cells(1, 1).Text
With CreateObject("htmlfile")
With .parentwindow.clipboarddata
If Len(vText) Then .setdata "text", vText
End With
End With
End If
End Sub
in das Tabellenblatt mit der Formel einfügen und die (Beispiel)-Adresse der Zelle "F5" durch die entsprechende Zelladresse mit der Formel ersetzen.
Durch Doppelklick auf diese Zelle wird der Zelltext ins Windows-Clipboard kopiert und kann in jedes andere Programm mit Strg-V eingefügt.
Du brauchst also keinen Button.
Gruess Hansueli
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige