Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Bereich kopieren u.einfügen, Zeilen in Zelle

VBA Bereich kopieren u.einfügen, Zeilen in Zelle
23.05.2019 23:43:04
Anton
Guten Abend zusammen,
ich versuche gerade einen VBA Code zu basteln und zwar ohne Selection / Select.
Darin soll der Bereich der ersten x Zeilen in Spalte CK im DIM gespeichert werden und an der aktuellen Zelle (wo der Cursor steht) in Form von "Zeile einfügen" eingefügt werden.
Probiere erfolglos folgende Formel:

Sub Agenda_einfugen()
Dim text As link
Dim zeileanzahl As zeilanz
zeileanz = cell(91, 1).Value
link = Range(Cells(90, 1), Cells(90, zeileanz)).Value
link.Insert Shift:=xlDown
End Sub

Wie viel der ersten Zeilen genommen werden sollten, bestimmt die Zahl in Zelle CL1.
Es kommt aber immer eine Fehlermeldung. Im Grunde ist es so ähnlich wie einen Bereich markieren, kopieren und an anderer Stelle durch "STRG"&"+" -> Zeilen unten einfügen.
Bitte um Hilfe.
LG Anton
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Bereich kopieren u.einfügen, Zeilen in Zelle
24.05.2019 05:47:35
Hajo_Zi
Hallo Anton.
Du willst also Splate 1 bis 245 in einer Zelle schreiben das geht nur mit For next laut Betreff?
Falls nicht benutze den Makrorecorder und entferne Select.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: VBA Bereich kopieren u.einfügen, Zeilen in Zelle
24.05.2019 08:41:55
Anton
Hallo Hajo,
das geht bei mir nicht.
Nach dem ich den Recorder ausgeführt habe:
1. habe bestimmte Zeilen markiert
2. den Bereich kopiert
3. und in A1 eingefügt
4. die Selections / Select entfernt
Es kommt eine Meldung, dass der VBA Code falsch ist.
Ich nutzte Excel 2010, falls das etwas hilft.
LG Anton
Anzeige
AW: VBA Bereich kopieren u.einfügen, Zeilen in Zelle
24.05.2019 09:04:25
hary
Moin
"Es kommt eine Meldung, dass der VBA Code falsch ist."
Dann zeig doch mal den Code bzw. lad eine Bsp.-Mappe hoch.
gruss hary
AW: VBA Bereich kopieren u.einfügen, Zeilen in Zelle
24.05.2019 09:02:17
Torsten
Hallo Anton,
mal angefangen damit, dass die Variablen Deklaration so falsch ist, kannst du auch nicht einen Code mit dem Makrorekorder aufzeichnen und einfach die Select rausschmeissen.
So funktioniert das mit Sicherheit nicht.
Wenn ich deinen Codeversuch richtig interpretiere, willst du alles aus den ersten x Zeilen alle Werte aus der Spalte CK in eine einzige Zelle kopieren? Oder meinst du Zeilen kopieren und an anderer Stelle wieder einfuegen? Das musst du nochmal richtig erklaeren.
Wenn es das letztere ist, musst du uns noch verraten, wo die Zeilen wieder eingefuegt werden sollen. In der selben Tabelle oder in einem anderen Tabellenblatt? Und wo in dem Tabellenblatt.
Vielleicht kannst du eine kleine Beispieldatei hochladen, wo das besser ersichtlich ist. Mit Ausgangssituation und wie es nachher aussehen soll.
Gruss Torsten
Anzeige
AW: VBA Bereich kopieren u.einfügen, Zeilen in Zelle
24.05.2019 11:38:19
Anton
Hallo Torsten,
ich habe den Prozess mal in Bilder veranschaulicht.
Hier im folgenden Beispiel werden in Zelle E1 die Anzahl gefüllter Zeilen genannt. Es können jedoch maximal 10 Zeilen ausgefüllt werden und es wird immer von oben nach unten gefüllt. Je nachdem, wie viel von den 10 Zeilen gefüllt sind, wird die Anzahl der Zeilen anhand der Angabe in der Celle automatisch genannt.
In dem Beispiel sind es 4 Zeilen in Spalte D. Die Spalte D bleibt immer erhalten und variiert nicht. Jetzt sollen die 4 Zeilen dorthin, wo der Cursor aktuell steht. In diesem Beispiel steht der Cursor auf A2 und alle Zeilen sollen in die Spalte A zwischengefügt. Es wird zum Einfügen immer nur die Spalte A verwendet.
Userbild
Userbild
Userbild
Anzeige
AW: VBA Bereich kopieren u.einfügen, Zeilen in Zelle
24.05.2019 12:41:33
Torsten
Hallo Anton,
hab mal was gebastelt. Den Code in ein allgemeines Modul kopieren. Habe die Spalten aus deinem ersten Beitrag uebernommen. Also CK und CL. Dann kannst du deinem Button das Makro zuweisen.
Musst aber immer sicher gehen, dass die richtige Zelle aktiviert ist, bevor der Button gedrueckt wird. Es wird immer in die aktive Zelle kopiert.

Sub kopieren()
Dim lngletzte As Long, a As Long
With Sheets("Sheet1")   'bitte Tabellennamen anpassen
lngletzte = .Cells(1, 90)
For a = 1 To lngletzte
.Cells(a, 89).Copy
ActiveCell.PasteSpecial xlPasteValues
ActiveCell.Offset(1, 0).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Next
End With
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
End Sub
Viel Spass und lass mich wissen, ob es klappt oder du Probleme hast.
Gruss Torsten
Anzeige
AW: VBA Bereich kopieren u.einfügen, Zeilen in Zelle
24.05.2019 13:10:39
Anton
Hallo Torsten,
dein Code funktioniert perfekt!
Das macht es sehr dynamisch - vielen, vielen Dank!
LG Anton
gerne...
24.05.2019 13:15:21
Torsten
und danke fuer die Rueckmeldung.
Schoenes Wochenende
;

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

VBA Bereich kopieren und einfügen in Excel


Schritt-für-Schritt-Anleitung

Um einen Bereich in Excel VBA zu kopieren und einzufügen, ohne die Select-Methode zu verwenden, kannst Du den folgenden Code nutzen. Dieser Code kopiert die Werte aus einer bestimmten Anzahl von Zeilen in Spalte CK und fügt sie unterhalb der aktuell ausgewählten Zelle ein.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf „VBAProject (DeinWorkbook)“ klickst und „Einfügen“ > „Modul“ wählst.
  3. Kopiere den folgenden Code in das Modul:
Sub kopieren()
    Dim lngletzte As Long, a As Long
    With Sheets("Sheet1")   ' Bitte Tabellennamen anpassen
        lngletzte = .Cells(1, 90)  ' Wert aus Zelle CK1
        For a = 1 To lngletzte
            .Cells(a, 89).Copy  ' Werte aus Spalte D kopieren
            ActiveCell.PasteSpecial xlPasteValues
            ActiveCell.Offset(1, 0).Select
            Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Next
    End With
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlUp
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Aktiviere die Zelle, unter der die kopierten Werte eingefügt werden sollen.
  3. Führe das Makro aus (z.B. über einen Button oder über ALT + F8).

Häufige Fehler und Lösungen

  • Fehlermeldung beim Ausführen des Codes: Stelle sicher, dass die Variablen korrekt deklariert sind. Achte besonders auf die Schreibweise und den Datentyp.

  • Falsche Zielzelle: Der Code fügt die kopierten Werte unterhalb der aktuell aktiven Zelle ein. Stelle sicher, dass Du die richtige Zelle ausgewählt hast, bevor Du das Makro ausführst.

  • Kopieren funktioniert nicht: Wenn der Bereich, den Du kopieren möchtest, leer ist oder außerhalb des festgelegten Bereichs liegt, wird nichts eingefügt. Überprüfe die Daten in Spalte CK.


Alternative Methoden

Eine alternative Methode besteht darin, den Makrorecorder zu verwenden, um einen VBA-Code zu erstellen. Du kannst dann den Recorder verwenden, um die Schritte aufzuzeichnen und die Select-Befehle manuell zu entfernen. Dies ist besonders hilfreich, wenn Du mit VBA noch nicht vertraut bist.


Praktische Beispiele

Angenommen, Du hast in Spalte D (89. Spalte) einige Daten, die Du kopieren möchtest, und die Anzahl der Zeilen, die zu kopieren sind, steht in Zelle CK1 (90. Spalte). Wenn in CK1 der Wert 4 steht, werden die ersten vier Zeilen von D kopiert und unterhalb der aktiven Zelle eingefügt.

Beispiel1


Tipps für Profis

  • Nutze die Möglichkeit, den Code zu optimieren, indem Du zusätzliche Bedingungen hinzufügst, um die Benutzerfreundlichkeit zu erhöhen, z. B. durch Überprüfen, ob die Zelle leer ist, bevor Du etwas einfügst.

  • Experimentiere mit Application.ScreenUpdating = False, um die Performance zu verbessern, wenn Du viele Zeilen kopierst und einfügst.

  • Verwende With-Anweisungen, um den Code lesbarer und effizienter zu gestalten, wie im obigen Beispiel.


FAQ: Häufige Fragen

1. Kann ich den Code anpassen, um Daten aus einer anderen Spalte zu kopieren?
Ja, ändere einfach die Spaltennummer in der .Cells(a, 89)-Anweisung, um die gewünschte Spalte auszuwählen.

2. Was mache ich, wenn der Code nicht funktioniert?
Überprüfe die Excel-Version und stelle sicher, dass Du in einem gültigen Arbeitsblatt arbeitest. Stelle auch sicher, dass die Zellen, die Du kopieren möchtest, tatsächlich Werte enthalten.

3. Wie kann ich das Makro einfacher ausführen?
Du kannst einen Button auf Deinem Arbeitsblatt einfügen und das Makro diesem Button zuweisen, um es einfacher auszuführen.

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