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

Forumthread: Makro ..x-mal Wiederholen

Makro ..x-mal Wiederholen
24.07.2022 17:33:30
Leon
Dieses Makro läuft.
Es kopiert die Zeile vor der aktiven Zeile in eine Hilfstabelle und fügt diese in die aktive Zeile ein, rückt eine Zeile tiefer und wird dort wieder aktiv.
Nun möchte ich eine Textbox davor mit Zahlen einarbeiten, wo der Zahlenwert der Textbox die Anzahl der Wiederholungen des Makros vorgibt.
Die TextBox hat bei Neustart der Userform immer die Zahl "1" .
Im Normalfall wird dann das Makro 1x ausgeführt. ''' was auch so gewollt ist.
Wird nun eine 4 eingetragen, soll das gesamte Makro 4 durchlaufen. '''was noch nicht geht
Wie könnte ich das erledigen? Eine Schleife- vieleicht auch mit Variablen?
.Kann jemand helfen?

Sub Zeilen_Wiederholt_eintragen()
'nun die Zeile davor nach Hilfstabelle Q4 kopiert
Sheets("Auswertung").Range("P5").Resize(1, 14).Value = _
Cells(ActiveCell.Row - 1, 1).Resize(1, 14).Value
'nun die Zeile Q2 aus Hilfstabelle nach aktiver Zeile kopiert
Sheets("Auswertung").Range("Q2:AA2").Copy Cells(ActiveCell.Row, 2)
Cells(ActiveCell.Row, 2) = Cells(ActiveCell.Row - 1, 2)
'nun die Zahl in Zeile "A"
Dim r As Long
r = ActiveCell.Row
If Range("A" & r) = "" Then
Range("A" & r).Value = Range("A" & r - 1).Value + 1
Range("A" & r - 1 & ":L" & r - 1).Copy
Range("A" & r).PasteSpecial xlPasteFormats
End If
'nun in aktive Zelle eins nach unten springen und aktiv werden
ActiveCell.Offset(1).Select
End Sub
'' Textbox0011   'ist die Textbox der Anzahl
Grüße Leon
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ..x-mal Wiederholen
24.07.2022 18:46:25
GerdL
Hallo Leon!

Sub Start()
If IsNumeric(Textbox0011.Text) Then
For x = 1 To CLng(Textbox0011)
Call Zeilen_Wiederholt_eintragen
Next
Else
MsgBox "Keine Zahl in Textbox0011"
End If
End Sub
Gruß Gerd
AW: Makro ..x-mal Wiederholen
24.07.2022 20:05:06
Leon
Danke Gerd,
Habe das noch etwas angepasst- läuft.
Grüße Leon
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Makro zur Wiederholung von Zeilen in Excel


Schritt-für-Schritt-Anleitung

Um ein Excel-Makro zu erstellen, das eine bestimmte Zeile wiederholt, kannst Du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen > Modul.
  3. Erstelle das Haupt-Makro:

    • Füge den folgenden Code in das Modul ein:
    Sub Zeilen_Wiederholt_eintragen()
       ' Kopiere die Zeile vor der aktiven Zeile in die Hilfstabelle
       Sheets("Auswertung").Range("P5").Resize(1, 14).Value = _
       Cells(ActiveCell.Row - 1, 1).Resize(1, 14).Value
    
       ' Füge die Hilfstabelle in die aktive Zeile ein
       Sheets("Auswertung").Range("Q2:AA2").Copy Cells(ActiveCell.Row, 2)
       Cells(ActiveCell.Row, 2) = Cells(ActiveCell.Row - 1, 2)
    
       ' Zahl in Zeile "A" einfügen
       Dim r As Long
       r = ActiveCell.Row
       If Range("A" & r) = "" Then
           Range("A" & r).Value = Range("A" & r - 1).Value + 1
           Range("A" & r - 1 & ":L" & r - 1).Copy
           Range("A" & r).PasteSpecial xlPasteFormats
       End If
    
       ' Springe zur nächsten aktiven Zelle
       ActiveCell.Offset(1).Select
    End Sub
  4. Erstelle ein Start-Makro:

    • Füge den folgenden Code hinzu, um die Anzahl der Wiederholungen aus der Textbox zu lesen:
    Sub Start()
       If IsNumeric(Textbox0011.Text) Then
           For x = 1 To CLng(Textbox0011)
               Call Zeilen_Wiederholt_eintragen
           Next
       Else
           MsgBox "Keine Zahl in Textbox0011"
       End If
    End Sub
  5. Verknüpfe das Makro mit einer Schaltfläche:

    • Du kannst eine Schaltfläche in deinem Excel-Dokument hinzufügen, um das Makro auszuführen.

Häufige Fehler und Lösungen

Fehler: Keine Zahl in der Textbox

  • Lösung: Stelle sicher, dass die Textbox eine gültige Zahl enthält. Der Code überprüft dies bereits, aber Du kannst auch sicherstellen, dass die Textbox nicht leer ist.

Fehler: Zeilen werden nicht korrekt kopiert

  • Lösung: Überprüfe, ob der Bereich „Auswertung“ korrekt benannt ist und die Zeilen existieren, die kopiert werden sollen.

Alternative Methoden

Eine Alternative zur Verwendung eines Makros ist die Nutzung von Excel-Formeln oder Power Query, um Daten zu manipulieren. Für einfache Wiederholungen könnte auch die Funktion WIEDERHOLEN hilfreich sein, jedoch ist die Flexibilität eines Makros oft überlegen, wenn es um komplexe Vorgänge geht.


Praktische Beispiele

Wenn Du beispielsweise eine Tabelle mit Verkaufsdaten hast und jede Zeile für eine bestimmte Anzahl von Verkäufen wiederholen möchtest, kannst Du die oben genannten Makros verwenden, um dies zu automatisieren. Dies spart Zeit und reduziert Fehler, die bei manuellen Eingaben auftreten könnten.


Tipps für Profis

  • Nutze die Option Explicit-Anweisung am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Teste Dein Makro in einer Kopie Deiner Datei, um Datenverlust zu verhindern.
  • Überlege Dir, wie Du das Makro anpassen kannst, um zusätzliche Funktionen hinzuzufügen, wie z.B. das Speichern der Daten in einer anderen Tabelle oder das Erstellen von Berichten.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um mehr als eine Zeile zu wiederholen? Du kannst die Schleife im Start-Makro anpassen, um die gewünschte Anzahl von Zeilen zu wiederholen, indem Du die Logik in der Schleife erweiterst.

2. Funktioniert dieses Makro in allen Excel-Versionen? Ja, das Makro sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, einschließlich Excel 2016, 2019 und Microsoft 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige