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

Forumthread: Bestimmte Anzahl Zeilen kopieren

Bestimmte Anzahl Zeilen kopieren
30.04.2009 10:02:16
paul
Hallo
auch nach intensiver Durchsicht des Forum finde ich keinen Deckel auf meinen Exceltopf.
Ich möchte Zeilen kopieren. Und zwar keine bestimmte Anzahl sonderen eine variable Anzahl.
Im Forum habe ich viele Beiträge gefunden die Zeilen kopieren oder einfügen, aber meist handelt es sich um eine fixe Anzahl von Zahlen.
Beispiel vorher
SpA SpB
1 Schumacher
2 Neumann
1 Flohe
6 Müller
Beispiel nachher
SpA SpB
1 Schumacher
2 Neumann
2 Neumann
1 Flohe
6 Müller
6 Müller
6 Müller
6 Müller
6 Müller
6 Müller
Ich möchte also abhängig von dem Wert, der in der Spalte A steht, die entsprechende Anzahl (Wert -1 ) von Zeilen kopieren.
Steht dort eine 1 soll (1-1=0) keine Zeile kopiert werden.
Steht dort eine 2 soll (2-1=1) eine Zeile kopiert werden.
....
Und zwar soll immer die Zeile kopiert und darunter eingefügt werden aus der der Wert ausgelesen wurde.
Ich hoffe Ihr könnt mir weiterhelfen!
Vielen Dank!!
Paul
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Anzahl Zeilen kopieren
30.04.2009 10:18:38
Hajo_Zi
Hallo Paul,

Option Explicit
Sub Paul()
Dim LoLetzte As Long
Dim LoI As Long
Application.ScreenUpdating = False
'   letzte belegte Zeile unabhängig von Excelversion für Spalte A (1)
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
For LoI = LoLetzte To 1 Step -1
Cells(LoI, 2).Copy
If Cells(LoI, 1) > 1 Then
Range(Cells(LoI, 2), Cells(LoI + Cells(LoI, 1) - 2, 2)).Insert Shift:=xlDown
End If
Next LoI
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub



Anzeige
AW: Bestimmte Anzahl Zeilen kopieren
30.04.2009 11:00:21
paul
Hallo Hajo
Vielen Dank!
Die Anzahl ist richtig erkannt worden, aber leider hat das Marko keine Zeilen eingefügt, sondern nur Zellen.
D.h. die Namen aus SpB wurden in der gewollten Anzahl kopiert und eingefügt, aber der Rest der Zeilen ist stehen geblieben.
Es müsste ausgetauscht werden dass nicht Zellen sondern Zeilen kopiert werden.
Ich habe ein paar Versuche gemacht Cells gegen Rows auszutauschen, muss aber gestehen, das ich zur Zeit die einzelnen Funktionen in VB noch nicht endgültig kapiert habe :-(
Geht das mit dem Tausch Zelle gegen Zeile?
Gruß paul
Anzeige
AW: Bestimmte Anzahl Zeilen kopieren
30.04.2009 12:14:20
Hajo_Zi
Hallo Paul,

Option Explicit
Sub Paul()
Dim LoLetzte As Long
Dim LoI As Long
Application.ScreenUpdating = False
'   letzte belegte Zeile unabhängig von Excelversion für Spalte A (1)
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
For LoI = LoLetzte To 1 Step -1
Rows(LoI).Copy
If Cells(LoI, 1) > 1 Then
Rows(LoI & ":" & LoI + Cells(LoI, 1) - 2).Insert Shift:=xlDown
End If
Next LoI
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub


Gruß Hajo

Anzeige
AW: Bestimmte Anzahl Zeilen kopieren
30.04.2009 13:07:17
paul
SUPERBINGO!!!!!!!!!!!!
Vielen Dank!
Klappt hervoragend!!!!!!!
Schönes Maiwochende!
Gruß
Paul
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bestimmte Anzahl Zeilen in Excel einfügen


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und stelle sicher, dass die Daten in der richtigen Form vorliegen. Du solltest eine Spalte (z.B. Spalte A) mit Werten haben, die angeben, wie viele Zeilen du kopieren möchtest.

  2. Öffne den VBA-Editor durch Drücken von ALT + F11.

  3. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" > "Einfügen" > "Modul".

  4. Füge den folgenden VBA-Code ein:

    Option Explicit
    Sub BestimmteAnzahlZeilenEinfuegen()
        Dim LoLetzte As Long
        Dim LoI As Long
        Application.ScreenUpdating = False
        ' Letzte belegte Zeile unabhängig von Excelversion für Spalte A (1)
        LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
        For LoI = LoLetzte To 1 Step -1
            Rows(LoI).Copy
            If Cells(LoI, 1) > 1 Then
                Rows(LoI & ":" & LoI + Cells(LoI, 1) - 2).Insert Shift:=xlDown
            End If
        Next LoI
        Application.CutCopyMode = False
        Application.ScreenUpdating = True
    End Sub
  5. Schließe den VBA-Editor und kehre zurück zu Excel.

  6. Führe das Makro aus: Gehe zu Entwicklertools > Makros, wähle das Makro "BestimmteAnzahlZeilenEinfuegen" aus und klicke auf Ausführen.

  7. Überprüfe das Ergebnis: Die Anzahl der Zeilen, die in Spalte A angegeben ist, sollte nun korrekt eingefügt sein.


Häufige Fehler und Lösungen

  • Fehler: Es werden nur Zellen und keine ganzen Zeilen kopiert.

    • Lösung: Stelle sicher, dass du den richtigen Code verwendest, der Rows anstelle von Cells nutzt. Der oben angegebene Code kopiert die gesamten Zeilen.
  • Fehler: Das Makro führt nicht die gewünschte Anzahl an Zeilen ein.

    • Lösung: Überprüfe die Werte in Spalte A. Wenn dort eine 1 steht, wird keine Zeile kopiert (1-1=0).

Alternative Methoden

Falls du nicht mit VBA arbeiten möchtest, kannst du auch die Funktion Kopieren und Einfügen manuell verwenden:

  1. Wähle die Zeile aus, die du kopieren möchtest.
  2. Halte die Strg-Taste gedrückt und drücke C, um zu kopieren.
  3. Klicke auf die Zeile direkt unter der zu kopierenden Zeile.
  4. Halte die Strg-Taste gedrückt und drücke V, um die Zeile einzufügen.
  5. Wiederhole diesen Vorgang entsprechend der Anzahl in Spalte A.

Praktische Beispiele

Angenommen, du hast die folgende Tabelle:

SpA SpB
1 Schumacher
2 Neumann
1 Flohe
6 Müller

Nach dem Ausführen des Makros sollte die Tabelle so aussehen:

SpA SpB
1 Schumacher
2 Neumann
2 Neumann
1 Flohe
6 Müller
6 Müller
6 Müller
6 Müller
6 Müller
6 Müller

Tipps für Profis

  • Nutze die Debug-Funktion in VBA, um den Code Schritt für Schritt zu überprüfen, falls du auf Probleme stößt.
  • Experimentiere mit dem Code, um ihn an deine speziellen Bedürfnisse anzupassen, z.B. um die Anzahl der kopierten Zeilen zu variieren.
  • Füge Error-Handling in deinem VBA-Code hinzu, um sicherzustellen, dass das Makro auch bei unerwarteten Eingaben stabil bleibt.

FAQ: Häufige Fragen

1. Kann ich das Makro in allen Excel-Versionen verwenden? Ja, der obige VBA-Code sollte in den meisten neueren Excel-Versionen funktionieren.

2. Was passiert, wenn ich einen Wert von 0 in Spalte A habe? Wenn der Wert in Spalte A 1 ist, wird keine Zeile kopiert. Bei einem Wert von 0 wird ebenfalls keine Zeile eingefügt, da 0-1 = -1.

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