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

Forumthread: Beim Einfügen eine Zeile überspringen

Beim Einfügen eine Zeile überspringen
02.08.2021 21:42:46
Mich.l
Hallo,
ich habe eine Idee, bei der ich aber nicht weiß, ob sie wirklich umsetzbar ist.
Ich habe einen Tabelle mit 2 Spalten und möchte diese kopieren (STRG+C). Beim Einfügen soll nun aber immer eine Zeile dazwischen frei bleiben, also beginnend bei D19 und E19, D20 und E20 bleiben frei, dann wieder D21 und E21 usw,
Das soll funktionieren, obwohl die Originaltabelle durchgehend Werte hat. Ich habe mich bis jetzt damit beholfen, dass ich eine Hilfsmatrix eingefügt habe und dann mit Excel-Formeln auf diese Hilfsmatrix verwiesen habe, geht das aber auch ohne Hilfsmatrix, also über ein Makro beim Einfügen?
Alternativ könnte ich mir auch vorstellen, dass man in der Excel-Datei ein Makro aufruft, dieses fragt dann am Besten per Mausklick die erste Zelle in einer weiteren Excel-Datei ab und arbeitet dann alle Zellen nach unten ab, bis die erste leere Zelle erscheint.
Danke im Voraus für Euere Tipps und Hilfestellungen.
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beim Einfügen eine Zeile überspringen
02.08.2021 22:09:09
Mich.l
Noch zur Info:
Zellen D19 und D20 sind verbunden, ebenso E19 und E20 u.s.w.
AW: Beim Einfügen eine Zeile überspringen
03.08.2021 06:30:12
ralf_b
Ich würde die Alternative umsetzen.
AW: Beim Einfügen eine Zeile überspringen
03.08.2021 09:03:32
Mich.l
Und wie? Ich habe hier leider auch keine Ahnung, wie man das programieren könnte.
Anzeige
AW: Beim Einfügen eine Zeile überspringen
03.08.2021 09:27:32
hary
Moin
Haben die Zellen die verbunden sind immer den gleichen Abstand? Also 18 Zellen.
gruss hary
AW: Beim Einfügen eine Zeile überspringen
03.08.2021 09:00:10
Mich.l
.
AW: Beim Einfügen eine Zeile überspringen
03.08.2021 15:25:12
GerdL
Moin M.,
als Ansatz.

Sub Unit()
Dim X As Variant, a As Long, b As Long
X = ActiveWindow.RangeSelection.CurrentRegion
For a = 1 To UBound(X)
Tabelle2.Cells(19 + b, 4) = X(a, 1)
Tabelle2.Cells(19 + b, 5) = X(a, 2)
b = b + 2
Next
End Sub
Gruß Gerd
Anzeige
AW: Beim Einfügen eine Zeile überspringen
04.08.2021 01:21:18
Mich.l
Vielen Dank für den Ansatz.
Ich habe mir jetzt diesen Code zusammen gebastelt (so ganz funktioniert es noch nicht - es kommen immer noch Fehlermeldungen). Die Zellen werden nun doch aus der Zwischenablage übernommen:

Sub Unit()
Dim LastActive As String
LastActive = ActiveSheet.Name
Sheets(LastActive).Unprotect
Application.ScreenUpdating = False
Sheets.Add
ActiveSheet.Paste
With ActiveSheet
.Name = "XXX"
.Move Before:=Sheets(1)
End With
Cells(1, 1).Select
Dim X As Variant, a As Long, b As Long
X = ActiveWindow.RangeSelection.CurrentRegion
For a = 1 To UBound(X)
Sheets(LastActive).Cells(19 + b, 4) = X(a, 1)
Sheets(LastActive).Cells(19 + b, 5) = X(a, 2)
b = b + 2
Next
Application.DisplayAlerts = False
Sheets("XXX").Delete
Application.DisplayAlerts = True
Sheets(LastActive).Activate
Sheets(LastActive).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True, AllowFormattingRows:=True, AllowInsertingHyperlinks:=True
Sheets(LastActive).EnableSelection = xlNoRestrictions
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Beim Einfügen eine Zeile überspringen
04.08.2021 15:25:57
Mich.l
Bei meinem Makro hängt es immer beim ersten Mal bei ActiveSheet.Paste da kommt eine Fehlermeldung. Beim 2. Mal klappt es dann.
Woran könnte das liegen? Oder soll man das besser ganz umschreiben?
AW: Beim Einfügen eine Zeile überspringen
04.08.2021 15:49:48
Yal
Hallo Mich.l,
einen Paste ohne vorangestellten Copy kann nur unvollständig sein. Mach den Copy-Paste eines Blattes unter laufenden Makro-Rekorder und schaue dir den Code.
Insert von Zeilen macht man "von unten hoch":

Sub ZwischenZeile_einfügen(BlattName As String)
Dim r
With Worksheets(BlattName)
For r = .Range("A99999").End(xlUp).Row To 2 Step -1
.Rows(r).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Next
End With
End Sub
Sub Test()
ZwischenZeile_einfügen "Tabelle1"
End Sub
VG
Yal
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Beim Einfügen eine Zeile überspringen in Excel


Schritt-für-Schritt-Anleitung

Um beim Einfügen von Daten in Excel eine Zeile zu überspringen, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:
    • Klicke mit der rechten Maustaste auf "VBAProject (deine Arbeitsmappe)" und wähle "Einfügen" > "Modul".
  3. Füge den folgenden Code ein:
Sub EinfuegenUndUeberspringen()
    Dim X As Variant, a As Long, b As Long
    X = Selection.CurrentRegion
    For a = 1 To UBound(X)
        Cells(19 + b, 4).Value = X(a, 1) ' Spalte D
        Cells(19 + b, 5).Value = X(a, 2) ' Spalte E
        b = b + 2 ' Überspringe eine Zeile
    Next a
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Markiere die Zellen, die du kopieren möchtest.
  3. Führe das Makro aus:
    • Drücke ALT + F8, wähle "EinfuegenUndUeberspringen" und klicke auf "Ausführen".

Häufige Fehler und Lösungen

  • Fehlermeldung bei ActiveSheet.Paste: Dies kann passieren, wenn du versuchst, ohne vorherige Kopie einzufügen. Achte darauf, dass du die Daten vorher kopierst.
  • Makro funktioniert nicht beim ersten Mal: Wenn das Makro beim ersten Mal nicht funktioniert, könnte es an der Art und Weise liegen, wie Excel Daten verarbeitet. Überprüfe, ob alle Zellen korrekt markiert sind, bevor du das Makro ausführst.

Alternative Methoden

Eine weitere Möglichkeit, eine Zeile beim Einfügen zu überspringen, besteht darin, eine Hilfstabelle zu verwenden. Du kannst deine Daten in einer neuen Tabelle einfügen und dann die Daten manuell in die Zielzellen verschieben. Dies ist besonders nützlich, wenn du keine VBA-Makros verwenden möchtest.

Ein Beispiel für ein einfaches Skript zum Einfügen von Zeilen:

Sub ZwischenZeile_einfügen(BlattName As String)
    Dim r As Long
    With Worksheets(BlattName)
        For r = .Range("A99999").End(xlUp).Row To 2 Step -1
            .Rows(r).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Next r
    End With
End Sub

Praktische Beispiele

Wenn deine Originaltabelle in den Zellen D1 bis D10 Daten enthält, aber du beginnend bei D19 und E19 einfügen möchtest, funktioniert das oben beschriebene Makro ideal. Das Makro sorgt dafür, dass immer eine Zeile übersprungen wird, sodass du in D19 und E19 beginnen kannst, dann D21 und E21 usw.


Tipps für Profis

  • Nutze die Zwischenablage: Wenn du mit großen Datenmengen arbeitest, kann es effizient sein, die Zwischenablage zu verwenden und sicherzustellen, dass du beim Einfügen keine Formatierungen verlierst.
  • Makros optimieren: Überlege, ob du das Makro so anpassen kannst, dass es auch ausgeblendete Zeilen überspringt. Dies kann mit zusätzlichen Bedingungen im Code realisiert werden.
  • Teste in einer Kopie: Teste neue Makros immer in einer Kopie deiner Arbeitsmappe, um unerwünschte Änderungen zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das Makro auch ausgeblendete Zeilen überspringt?
Du kannst die Bedingung im Makro anpassen, um die Sichtbarkeit der Zeile zu prüfen, bevor du Daten einfügst.

2. Welche Excel-Version benötige ich für diese Funktionen?
Das Makro sollte in den meisten modernen Excel-Versionen (Excel 2010 und höher) problemlos funktionieren.

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