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

Forumthread: Zellinhalt kopieren über VBA - Zeilenumbruch

Zellinhalt kopieren über VBA - Zeilenumbruch
08.09.2016 10:16:54
Boory@gmx.net
Hallo Forum,
ich möchte den Inhalt einer Zelle per CommandButton in die Zwischenablage kopieren,
um ihn dann in einer anderen Anwendung wieder einfügen zu können. Leider wird immer
ein Zeilenumbruch mit kopiert und da das Eingabefeld in der anderen Anwendung mehrere
Zeilen zulässt, habe ich diesen Zeilenumbruch dann auch immer dort mit drin. Sieht man
am besten, wenn man den Zellinhalt in einem Notepad-Fenster mal "Einfügt".
Private Sub CommandButton1_Click()
ActiveWorkbook.FollowHyperlink _
'Address:="http://beispieldomain.de"
Range("G1").Select
Selection.Copy
End Sub

hat jemand eine Idee, besser Lösung, wie ich den Zeilenumbruch weg bekomme? Zellinhalt
beschneiden mit "Trim" wird schwierig, weil die Zellinhalte unterschiedliche Längen
haben...
Schon mal vielen Dank - Boory!
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zellinhalt kopieren über VBA - Zeilenumbruch
08.09.2016 15:10:47
Michael
Hi Boory,
wenn Du Dich nicht in die Programmierung der Zwischenablage wagen willst UND den vorhandenen Wert in G1 erhalten willst, kopierst Du das Ganze am besten in eine Hilfszelle "irgendwo"; hier habe ich mal M13 verwendet:
Private Sub CommandButton1_Click()
'    ActiveWorkbook.FollowHyperlink _
' Address:="http://beispieldomain.de"
Range("M13").Value = _
Replace(Replace(Range("G1").Text, Chr(10), ""), Chr(13), "")
Range("M13").Copy
End Sub

Zunächst erhält M13 den Wert von G1, wobei alle CR/LF (LineFeed = Zeilenschaltung = LF=10, CarriageReturn = Wagenrücklauf =CR=13) entfernt werden.
Anschließend wird M13 in die Zwischenablage kopiert.
Schöne Grüße,
Michael
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zellinhalt kopieren ohne Zeilenumbruch in Excel


Schritt-für-Schritt-Anleitung

Um den Zellinhalt in Excel über VBA zu kopieren und dabei den Zeilenumbruch zu entfernen, kannst du folgende Schritte durchführen:

  1. Öffne den VBA-Editor: Drücke ALT + F11.

  2. Füge ein Modul hinzu: Rechtsklicke im Projekt-Explorer auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Private Sub CommandButton1_Click()
       ' Hilfszelle M13 zur Zwischenspeicherung
       Range("M13").Value = Replace(Replace(Range("G1").Text, Chr(10), ""), Chr(13), "")
       Range("M13").Copy
    End Sub
  4. Schließe den VBA-Editor: Drücke ALT + Q.

  5. Füge einen CommandButton hinzu: Gehe zu Entwicklertools > Einfügen > Schaltfläche (Formularsteuerelement) und platziere die Schaltfläche auf dem Arbeitsblatt.

  6. Verknüpfe die Schaltfläche mit dem VBA-Code: Wähle die Schaltfläche aus und klicke mit der rechten Maustaste, wähle Makro zuweisen und wähle CommandButton1_Click.

Mit diesem Code wird der Inhalt der Zelle G1 in die Hilfszelle M13 kopiert, während alle Zeilenumbrüche (CR/LF) entfernt werden. Danach wird der Inhalt von M13 in die Zwischenablage kopiert.


Häufige Fehler und Lösungen

  • Zeilenumbrüche bleiben erhalten: Stelle sicher, dass du sowohl Chr(10) (LF) als auch Chr(13) (CR) ersetzt hast. Diese beiden Zeichen sind für Zeilenumbrüche in Excel verantwortlich.
  • Zelle M13 überschrieben: Achte darauf, dass M13 eine leere Zelle ist oder wähle eine andere Hilfszelle, um den Inhalt zu speichern.
  • CommandButton funktioniert nicht: Überprüfe, ob der Button richtig mit dem Makro verknüpft ist.

Alternative Methoden

Falls du keine VBA-Lösung verwenden möchtest, gibt es auch andere Ansätze:

  • Manuelles Entfernen von Zeilenumbrüchen: Kopiere den Inhalt in einen Texteditor (z.B. Notepad) und entferne manuell die Zeilenumbrüche.
  • Formeln nutzen: Du kannst auch eine Formel verwenden, um Zeilenumbrüche in Excel zu ersetzen. Eine mögliche Formel sieht so aus:

    =WECHSELN(G1; CHAR(10); "")

Diese Formel entfernt Zeilenumbrüche aus dem Zellinhalt in G1.


Praktische Beispiele

  1. Kopieren ohne Zeilenumbruch: Angenommen, du hast in G1 den Text:

    Hallo
    Welt

    Nach Ausführung des Makros wird der Inhalt in M13 als HalloWelt ohne Zeilenumbrüche gespeichert.

  2. Verwendung in einer Anwendung: Wenn du den kopierten Text in eine Anwendung einfügst, wird nur HalloWelt eingefügt, ohne unerwünschte Zeilenumbrüche.


Tipps für Profis

  • Verwende benannte Bereiche: Anstatt auf spezifische Zellen zu verweisen, kannst du benannte Bereiche verwenden, um deinen Code flexibler zu gestalten.
  • Fehlermeldungen einbauen: Füge Fehlerbehandlungsroutinen in deinen VBA-Code ein, um mögliche Probleme beim Kopieren zu identifizieren.
  • VBA-Optimierung: Überlege, ob du die Verwendung von Application.ScreenUpdating und Application.Calculation in deinem Code einsetzt, um die Performance bei umfangreichen Kopiervorgängen zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Zellen gleichzeitig kopieren?
Du kannst eine Schleife in deinem VBA-Code verwenden, um mehrere Zellen zu durchlaufen und deren Inhalte zu kopieren.

2. Was ist der Unterschied zwischen CR und LF?
CR (Carriage Return) ist der Wagenrücklauf und hat den ASCII-Code 13, während LF (Line Feed) die Zeilenschaltung darstellt und den ASCII-Code 10 hat. In Excel können beide Zeichen als Zeilenumbruch auftreten.

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