Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variablen Bereich kopieren und Inhalte einfügen ..

Forumthread: Variablen Bereich kopieren und Inhalte einfügen ..

Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:01:43
Michael_S
Hallo zusammen,
bin schon wieder mal am "VBA probieren" - ich lerne es wohl nie ..
Mein Problem:
In Spalte K stehen ab K2 (mal mehr, mal weniger Zeilen) Werte, die aus vielen Formeln resultieren. Nun möchte ich gerne die Inhalte dieser Zeilen in die Spalte L (ab L2) kopieren. Aber nur die Werte (Bearbeiten - Inhalte einfügen - Werte). Danach sollen die mit Inhalten belegten Zellen in die Zwischenablage kopiert werden. Klappt bei mir natürlich nicht :-(
Meinen "erstellten" Code kopiere ich mal unten rein - ich hoffe mir kann da jemand helfen. Vielen herzlichen Dank im Voraus.
Gruss aus Berlin
Micha

Sub K_nach_L_schreiben_Test15()
Range("k" & Rows.Count).End(xlUp).Offset(1, 0).Copy
Range("L2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Copy
End Sub

Anzeige

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:18:38
ivan


hi Micha
das funkt !!
ich habe es gerade ausprobiert.
Sub Kopieren()
    Range("K2:K1000").Select
    Selection.Copy
    Range("L2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("L2").Select
End Sub
gruss
ivan

Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:25:45
Michael_S
Hi Ivan,
Danke für die rasche Antwort. Klappt auch, aber..
Leider habe ich damit nichts in der Zwischenablage.
Hast Du dafür noch 'nen Einfall?
Gruß
Micha

AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:38:28
ivan

hi Micha
wie wäre es damit jetzt sin die daten in der zwischenablage
Sub K_nach_L_schreiben_Test15()
    Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
    Range("L2").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.Copy
    Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
End Sub
gruss
ivan

Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:45:03
Michael_S
Hi Ivan,
toll wie Ihr helft. Einfach SUPER.
Klappt, auch mit der Zwischenablage. Leider - wie bei Peters Lösung vorhin auch - sind da sehr viele Leerzellen mit in der Zwischenablage.
Wenn Ihr die noch wegcoden könntet... Wäre ich wieder einmal happy.
Dabke & Gruß
Micha

Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:53:55
ivan


hi
hoffe es funkt
Sub K_nach_L_schreiben_Test15()
    Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
    
    Range("L2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=True, Transpose:=False
    Selection.Copy
    Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
End Sub
gruss
ivan

Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:59:11
Michael_S
Hallo Ivan,
das Makro läuft einwandfrei, nur die doofen Leerzeichen sind beim Einfügen aus der Zwischenablage noch immer da. Vielleicht geht das gar nicht anders?!
Ich möchte Deine Nerven auch nicht weiter strapazieren - Vielen herzlichen Dank für Deine Unterstützung.
Gruß
Micha

Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 19:14:03
ivan


hi micha
habe es getestet bei gibt es jetzt keine leere zellen mehr!
Sub K_nach_L_schreiben_Test15()
    Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
    
    Range("L2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=True, Transpose:=False
    Selection.Copy
    Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
    Range("L2:L" & Range("L65536").End(xlUp).Row).Select
    Selection.Sort Key1:=Range("L2"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
GRUSS
IVAN

Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 19:21:29
Michael_S
Hi Ivan,
echt KLASSE wie Du Dich um mein Problem kümmerst.
Ich habe beim Test einen Laufzeitfehler 1004,
wobei der folgende Bereich bei mir - nach einem Klick auf Debuggen - gelb markiert ist:
Selection.Sort Key1:=Range("L2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Gruss Micha

Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 19:38:47
ivan


hi micha
ich habe in der zelle L1 nichts drinnen darum hat es bei mir gefunkt
und bei dir  nicht,jetzt sollte es aber klappen
Sub K_nach_L_schreiben_Test15()
    Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
    
    Range("L2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=True, Transpose:=False
    Selection.Copy
    Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
    Range("L2:L" & Range("L65536").End(xlUp).Row).Select
    
    Selection.Sort Key1:=Range("L2"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
GRUSS AUS WIEN
ivan

Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 19:47:35
Michael_S
Hi Ivan,
wirklich, Du mußt Dir nicht meinen Kopf dermaßen zerbrechen. Aber ich find's toll :-)) wie Du an die sache rangehst.
Aber:
Leider immer noch: 1004 - Laufzeit und Objektdefinierter Fehler
Ich blicke da nicht durch. Danke Dir vile Male.
Gruß Micha

AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:15:56
PeterW
Hallo Micha,
probier es mal so:

Sub K_nach_L_schreiben_Test15()
Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
Range("L2").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.Copy
End Sub

Gruß
Peter

Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:20:39
Michael_S
Hallo Peter,
vielen Dank. Klappt super.
Kannst Du mir vieleicht noch mitteilen, wie es vermieden werden kann, das ganz viele Leerzeilen in die Zwischenablage kopiert werden??
Danke Dir im Voraus.
Gruß
Micha

AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:23:48
PeterW
Hallo Micha,
was soll in die Zwischenablage kopiert werden? Hat der Bereich, den du kopierst leere Zellen und die sollen nicht weiter kopiert werden?
Gruß
Peter

Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:27:41
Michael_S
Hi Peter,
die in die Spalte L kopierten Zeilen (nur belegte) sollen in die Zwischenablage. Von dort aus kopiere ich sie weiter in eine andere Datei.
Gruß
Micha

AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 18:56:33
PeterW
Hallo Micha,
wie ich sehe ist Ivan am Thema dran. Ich bin hier raus, müssen sich ja nicht gleich zwei Helfer mit deinem Problem beschäftigen. :-)
Gruß und viel Erfolg
Peter

Anzeige
AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 19:00:59
Michael_S
Hi Peter,
auch Dir vielen Dank für Deine Unterstützung.
Das mit den Leerzeichen mache ich dann halt "von Hand". Vielleicht geht das ja auch gar nicht anders?!
Gruß
Micha

AW: Variablen Bereich kopieren und Inhalte einfügen ..
10.07.2003 22:51:13
PeterW
Hallo Micha,
mal den Ansatz von Ivan aufnehmend probier es so:

Sub K_nach_L_schreiben_Test15()
Columns(12).ClearContents
Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
Range("L2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
Range("L2:L" & Range("L65536").End(xlUp).Row).Sort Key1:=Range("L2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("L2:L" & Range("L65536").End(xlUp).Row).Copy
End Sub

Was ich nicht verstehe: warum willst du den sortierten Bereich nochmal in die Zwischablage bringen? Schreibe doch in der Zieltabelle Formeln, die die Werte einlesen bzw bringe die Werte mit dem Code direkt dorthin, wo du sie haben willst, was dir auch das Sortieren ersparen würde.
Gruß
Peter

Anzeige
DIE LÖSUNG :-))
11.07.2003 07:55:43
Michael_S
Morgens Peter,
genau das ist es. Super. Danke Dir vielmals.
Erklärung zur Zwischenablage: Die Daten sollen in ein Javascript eingefügt werden.
Ich lese Dateinamen in Excel ein (Bildernamen in einer kleinen Auflösung und Größe, sowie die größeren Bilder zu den kleinen, hinzu kommt noch eine Bildbeschreibung), diese werden dann zu Arrays "verbunden", damit das Javascript diese in einer HTML-Seite verarbeiten kann.
Noch 1x herzlichsten Dank für die Unterstützung.
Grüße aus Berlin
Micha

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Variablen Bereich kopieren und Inhalte einfügen


Schritt-für-Schritt-Anleitung

Um einen Bereich in Excel mithilfe von VBA zu kopieren und nur die Werte in eine andere Spalte einzufügen, kannst Du den folgenden Code verwenden:

Sub K_nach_L_schreiben_Test15()
    ' Werte aus Spalte K ab K2 kopieren
    Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
    ' Werte in Spalte L ab L2 einfügen
    Range("L2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
    ' Inhalte in die Zwischenablage kopieren
    Range("L2:L" & Range("L65536").End(xlUp).Row).Copy
End Sub

Dieser Code kopiert alle Werte aus Spalte K (beginnend ab K2) und fügt sie als Werte in Spalte L ein. Achte darauf, dass die Zellen in Spalte K keine leeren Zellen enthalten, wenn Du die Leerzellen in der Zwischenablage vermeiden möchtest.


Häufige Fehler und Lösungen

  1. Laufzeitfehler 1004: Dieser Fehler tritt häufig auf, wenn Du versuchst, einen Bereich zu sortieren, der leere Zellen enthält. Stelle sicher, dass der Bereich, den Du kopierst, keine leeren Zellen beinhaltet.

  2. Leerzeilen in der Zwischenablage: Um sicherzustellen, dass keine Leerzeilen in die Zwischenablage kopiert werden, verwende die Option SkipBlanks:=True in der PasteSpecial-Methode.


Alternative Methoden

Eine andere Möglichkeit, einen Bereich zu kopieren und nur die Werte einzufügen, ist die Verwendung von Value anstelle von Copy und PasteSpecial:

Sub K_nach_L_schreiben_Test15_Alternative()
    Dim lastRow As Long
    lastRow = Range("K65536").End(xlUp).Row
    ' Werte direkt zuweisen
    Range("L2:L" & lastRow).Value = Range("K2:K" & lastRow).Value
End Sub

Diese Methode kann schneller sein, da sie die Zwischenablage nicht verwendet.


Praktische Beispiele

Beispiel 1: Kopieren von Werten und Löschen von Leerzeilen

Sub K_nach_L_schreiben_ohneLeerzeilen()
    Dim lastRow As Long
    lastRow = Range("K65536").End(xlUp).Row
    Range("K2:K" & lastRow).Copy
    Range("L2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
    ' Leerzeilen sortieren und entfernen
    Range("L2:L" & lastRow).Sort Key1:=Range("L2"), Order1:=xlAscending, Header:=xlNo
End Sub

Beispiel 2: Kopieren von Werten und Einfügen in eine andere Arbeitsmappe

Sub K_nach_L_in_anderer_Arbeitsmappe()
    Dim wb As Workbook
    Set wb = Workbooks.Open("C:\Pfad\zu\deiner\Datei.xlsx")
    Range("K2:K" & Range("K65536").End(xlUp).Row).Copy
    wb.Sheets("Tabelle1").Range("A1").PasteSpecial Paste:=xlPasteValues
    wb.Close SaveChanges:=True
End Sub

Tipps für Profis

  • Verwende Application.ScreenUpdating = False, um den Bildschirm während der Ausführung des Makros nicht zu aktualisieren. Dies kann die Ausführungsgeschwindigkeit erhöhen.

  • Nutze Option Explicit am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.

  • Wenn Du regelmäßig mit großen Datenmengen arbeitest, kannst Du die Leistung verbessern, indem Du die Berechnungen auf xlCalculationManual setzt und nach dem Makro wieder auf xlCalculationAutomatic zurücksetzt.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Werte ohne leere Zellen kopiert werden? Verwende die Option SkipBlanks:=True in der PasteSpecial-Methode, um sicherzustellen, dass leere Zellen übersprungen werden.

2. Was kann ich tun, wenn ich Laufzeitfehler 1004 erhalte? Überprüfe, ob der Bereich, den Du sortieren möchtest, leere Zellen enthält. Stelle sicher, dass der Header korrekt gesetzt ist.

3. Ist es möglich, den kopierten Bereich direkt in eine andere Arbeitsmappe einzufügen? Ja, Du kannst eine andere Arbeitsmappe öffnen und den kopierten Bereich dort einfügen, wie im praktischen Beispiel gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige