Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ActiveCell = ActiveCell & ", " & ActiveSheet.Paste

ActiveCell = ActiveCell & ", " & ActiveSheet.Paste
Karsten
Hallo,
ich möchte gern folgenden Befehl abändern:
ActiveCell = ActiveCell & ", " & "XXXXX"
in:
ActiveCell = ActiveCell & ", " & ActiveSheet.Paste
Allerdings wird nach dem "," nicht der kopierte Text, sondern "Wahr" eingefügt.
Wie geht es richtig? Kann mir jemand helfen?
Danke.
Gruß
Karsten
Anzeige
AW: ActiveCell = ActiveCell & ", " & ActiveSheet.Paste
04.07.2010 08:21:05
Hajo_Zi
Hallo Karsten,
was willst Du mit ActiveSheet.Paste erreichen. möchest Du die Werte alle Zelle in einer Zelle haben?

AW: ActiveCell = ActiveCell & ", " & ActiveSheet.Paste
04.07.2010 08:48:43
Karsten
Hallo Hajo,
du meinst bestimmt die Werte aller Zellen. Nein, den kopierten Zellinhalt hinten angefügt.
Gruß
Karsten
Anzeige
AW: ActiveCell = ActiveCell & ", " & ActiveSheet.Paste
04.07.2010 12:03:35
Hajo_Zi
Hallo Karsten,
bei Deinem Codewird nichts kopiert.
Ich hättees jetzt so verstanden
Option Explicit
Sub Karsten()
Dim StWert As String
StWert = ActiveCell
ActiveCell.PasteSpecial Paste:=xlValues
ActiveCell = StWert & ", " & ActiveCell
Application.CutCopyMode = False
End Sub
Gruß Hajo
Anzeige
AW: ActiveCell = ActiveCell & ", " & ActiveSheet.Paste
05.07.2010 07:42:48
Karsten
Hallo Hajo,
danke. Deine Lösung nehme ich. Mit etwas veränderter Anpassung ist es genau, was ich suchte.
Gruß
Karsten
AW: ActiveCell = ActiveCell & ", " & ActiveSheet.Paste
04.07.2010 09:10:52
Oberschlumpf
Hi Karsten
Versuch so:

Range("Hilfszelle").Value = Range("Zielzelle").Value
Range("Quellzelle").Copy Range("Zielzelle").Value
Range("Zielzelle").Value = Range("Zielzelle").Value & " " & Range("Hilfszelle").Value
Range("Hilfszelle").Value = ""

Hilfszelle = irgdeine Zelle, in die du den Wert der Zelle zwischenspeicherst, der hinten dran gehängt werden soll
Zielzelle = die Zelle, in der nach erfolgreicher Durchführung der Inhalt aus Quellzelle + alter Wert aus Zielzelle stehen soll
Quellzelle = die Zelle, die kopiert und in Zielzelle eingefügt werden soll
Hilfts?
Ich hab deswg. Zielzelle usw verwendet, weil du nicht geschrieben hast, um welche Zellen es sich handelt.
Ciao
Thorsten
Anzeige
Korrektur
04.07.2010 09:13:02
Oberschlumpf
ach so, sorry, falsch gelesen
ändere diese Zeile
Range("Zielzelle").Value = Range("Zielzelle").Value & " " & Range("Hilfszelle").Value

um in diese Zeile
Range("Zielzelle").Value = Range("Hilfszelle").Value & "," & Range("Zielzelle").Value
Nun sollte es passen, oder?
Ciao
Thorsten
Anzeige
AW: Korrektur
05.07.2010 07:44:46
Karsten
Hallo,
danke. Aber ich habe mich für Hajos Variante entschieden. Die passt nunmal und ich möchte auch nicht weiter probieren.
Gruß
Karsten
AW: ActiveCell = ActiveCell & ", " & ActiveSheet.Paste
04.07.2010 09:22:22
fcs
Hallo Karsten,
hier 2 Varianten.
Variante 2 fügt alle Varianten von Textinhalten in der Zwischenablage ein.
In Variante 1 kann man ggf. über die Art des Zwischenablage-Inhalts Aktionen steuern. In Excel muss dabei noch berücksichtigt werden, dass im Kopiermodus für eine Zelle der Text in der Zwischenablage noch eine Zeilenschaltung beinhaltet.
Gruß
Franz
Sub CopyAnfuegen_1()
'ggf. im Excel-VBA-Editor unter Extras-Verweise den Verweis auf die _
Microsoft Forms x.y Object Library aktivieren
Dim MyData As New MSForms.DataObject
Dim sText, oFormat As Variant, bolAnfuegen As Boolean
For Each oFormat In Application.ClipboardFormats
Select Case oFormat
Case 0, 1, 7, 12, 14
'0  = xlClipboardFormatText  Text
'1  = xlClipboardFormatVALU  Wert
'5  = xlClipboardFormatCSV  CSV-Format
'7  = xlClipboardFormatRTF  RTF-Format
'12 = xlClipboardFormatDspText  DSP-Textformat
'14 = xlClipboardFormatNative  Systemeigenes Format
MyData.GetFromClipboard
sText = MyData.GetText
If Application.CutCopyMode = xlCopy Then 'xlCopy
'Excel ist im Kopiermodus - Zeilenschaltung am Ende entfernen
sText = sText
sText = Mid(sText, 1, Len(sText) - 2)
End If
bolAnfuegen = True
Exit For
Case Else
'do nothing
End Select
Next oFormat
If bolAnfuegen = True Then
ActiveCell = ActiveCell & ", " & sText
Else
MsgBox "Zwischenablage enthält keine anfügbaren Informationen!"
End If
End Sub
Sub CopyAnfuegen_2()
'ggf. im Excel-VBA-Editor unter Extras-Verweise den Verweis auf die _
Microsoft Forms x.y Object Library aktivieren
Dim MyData As New MSForms.DataObject
Dim sText, bolAnfuegen As Boolean
On Error GoTo Fehler
MyData.GetFromClipboard
sText = MyData.GetText
If Application.CutCopyMode = xlCopy Then 'xlCopy
'Excel ist im Kopiermodus - Zeilenschaltung am Ende entfernen
sText = sText
sText = Mid(sText, 1, Len(sText) - 2)
End If
bolAnfuegen = True
Fehler:
If bolAnfuegen = True Then
ActiveCell = ActiveCell & ", " & sText
Else
MsgBox "Zwischenablage enthält keine anfügbaren Informationen!"
End If
End Sub

Anzeige
AW: ActiveCell = ActiveCell & ", " & ActiveSheet.Paste
05.07.2010 07:45:05
Karsten
Hallo,
danke. Aber ich habe mich für Hajos Variante entschieden. Die passt nunmal und ich möchte auch nicht weiter probieren.
Gruß
Karsten
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

ActiveCell mit Paste-Funktion in VBA optimieren


Schritt-für-Schritt-Anleitung

Um den Inhalt der ActiveCell mit dem kopierten Text aus der Zwischenablage zu kombinieren, kannst Du folgenden VBA-Code verwenden:

Option Explicit
Sub PasteInActiveCell()
    Dim StWert As String
    StWert = ActiveCell.Value
    ActiveCell.PasteSpecial Paste:=xlValues
    ActiveCell.Value = StWert & ", " & ActiveCell.Value
    Application.CutCopyMode = False
End Sub
  1. Öffne den VBA-Editor in Excel (ALT + F11).
  2. Erstelle ein neues Modul (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Füge den obigen Code in das Modul ein.
  4. Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  • Problem: Nach dem Ausführen wird "Wahr" in die Zelle eingefügt.

    • Lösung: Stelle sicher, dass Du .PasteSpecial mit dem richtigen Parameter verwendest, wie im obigen Beispiel gezeigt.
  • Problem: Der kopierte Text wird nicht angefügt.

    • Lösung: Überprüfe, ob der Inhalt der Zelle tatsächlich kopiert wurde, bevor Du das Makro ausführst.

Alternative Methoden

Es gibt auch andere Ansätze, um Inhalte in die ActiveCell einzufügen. Hier sind zwei Beispiele:

  1. Verwendung von Zwischenablage-Objekten:
Sub CopyAndAppend()
    Dim MyData As New MSForms.DataObject
    Dim sText As String

    MyData.GetFromClipboard
    sText = MyData.GetText
    ActiveCell.Value = ActiveCell.Value & ", " & sText
End Sub
  1. Direktes Einfügen ohne Zwischenablage:
Sub DirectInsert()
    ActiveCell.Value = ActiveCell.Value & ", " & "Neuer Text"
End Sub

Praktische Beispiele

  • Beispiel 1: Wenn Du den Inhalt von Zelle A1 in die ActiveCell einfügen möchtest:
Sub AppendFromA1()
    ActiveCell.Value = ActiveCell.Value & ", " & Range("A1").Value
End Sub
  • Beispiel 2: Wenn Du mehrere Zellen zusammenfügen möchtest:
Sub CombineCells()
    Dim combinedText As String
    combinedText = Range("A1").Value & ", " & Range("B1").Value
    ActiveCell.Value = ActiveCell.Value & ", " & combinedText
End Sub

Tipps für Profis

  • Nutze die ActiveCell.PasteSpecial-Methode, um verschiedene Formate einzufügen, wie z.B. xlPasteValues, wenn Du nur die Werte ohne Formatierungen einfügen möchtest.
  • Vermeide es, direkt mit ActiveCell zu arbeiten, wenn Du mehrere Zellen gleichzeitig ansprechen möchtest. Stattdessen kannst Du Range("Zielzelle") verwenden.
  • Setze die Application.CutCopyMode = False-Zeile am Ende Deines Codes, um den Kopiermodus zu beenden und die Zwischenablage zu leeren.

FAQ: Häufige Fragen

1. Frage Wie kann ich sicherstellen, dass die Zwischenablage nicht leer ist, bevor ich den Inhalt einfüge?

Antwort: Du kannst den Inhalt der Zwischenablage in einer Variablen speichern und überprüfen, bevor Du ihn in die ActiveCell einfügst. Verwende dazu das MSForms.DataObject.

2. Frage Gibt es eine Möglichkeit, die Art des Inhalts, den ich einfüge, zu steuern?

Antwort: Ja, Du kannst die Application.ClipboardFormats-Eigenschaft nutzen, um zu überprüfen, welche Formate in der Zwischenablage vorhanden sind. So kannst Du gezielt entscheiden, welches Format Du einfügen möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige