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

Forumthread: Neue Zeile mit Makro einfügen

Neue Zeile mit Makro einfügen
Michael
Hallo zusammen,
ich habe folgendes Problem:
Ich möchte in eine Excel Tabelle ein Makro einrichten, welches bei klicken einer Schaltfläche automatisch an eine bestimmte Stelle eine neue Zeile einfügt. Die neue Zeile soll die genau gleiche Formatierung haben, wie die Zeile darüber oder darunter und auch Formeln von der Zeile darüber oder darunter (sind gleich) kopieren. Das Makro muss im Prinzip die Spalte B durchsuchen und schauen in welcher Zelle "Sonstiges" steht, und dann eine Zeile davor die neue Zeile einfügen.
Kann mir jemand helfen?
Vielen Dank schon einmal
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Neue Zeile mit Makro einfügen
06.06.2011 10:27:08
Armin
Hallo Michael,
je nach dem ob mehrere Zeilen diesem Kriterium entsprechen oder nur hin und wieder eine Zeile die in Spalte B "sonstiges" enthält würde ich verschiedene Wege gehen.
Wenn es nur hin und wieder vorkommt würde ich quasi manuell die Zelle in Spalte B auswählen und dann mit der rechten Maustaste die folgende Procedur ablaufen lassen.
Der Code muss in die Codeseite der Tabelle kopiert werden.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
Cancel = True
Application.EnableEvents = False
On Error Resume Next
If Target.Column = 2 Then
Target.EntireRow.Insert
Target.Offset(-2, -1).Resize(1, 200).Copy
ActiveSheet.Paste Destination:=Target.Offset(-1, -1).Resize(1, 200)
End If
Application.EnableEvents = True
End Sub
viel Erfolg
Gruß Armin
Anzeige
AW: Neue Zeile mit Makro einfügen
06.06.2011 10:47:51
Michael
Hallo Armin,
Vielen Dank für deine Hilfe.
Ich hab jetzt selbst folgendes geschrieben:
Sub NeueZeile()
Columns("B:B").Select
Selection.Find(What:="Sonstiges", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
ActiveCell.Offset(0, 0).Select
Selection.Offset(-1).EntireRow.Copy
Selection.EntireRow.Insert
Application.CutCopyMode = False
ActiveCell = x
End Sub
Bin selbst überrascht aber ich glaube es funktioiniert ohne Fehler.
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Neue Zeile in Excel mit einem Makro einfügen


Schritt-für-Schritt-Anleitung

Um ein Excel-Makro zu erstellen, das automatisch eine neue Zeile einfügt, folge diesen Schritten:

  1. Öffne die Excel-Datei, in der du das Makro implementieren möchtest.

  2. Gehe zu den Entwicklertools. Falls diese nicht sichtbar sind, aktiviere sie über "Datei" > "Optionen" > "Menüband anpassen" und aktiviere "Entwicklertools".

  3. Klicke auf "Visual Basic" in der Entwicklertools-Leiste, um den VBA-Editor zu öffnen.

  4. Füge das folgende Makro in das entsprechende Arbeitsblatt ein:

    Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
    Cancel = True
    Application.EnableEvents = False
    On Error Resume Next
    If Target.Column = 2 Then
        Target.EntireRow.Insert
        Target.Offset(-2, -1).Resize(1, 200).Copy
        ActiveSheet.Paste Destination:=Target.Offset(-1, -1).Resize(1, 200)
    End If
    Application.EnableEvents = True
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Rechtsklicke auf die Zelle in Spalte B, die "Sonstiges" enthält, um die neue Zeile einzufügen.

Dieses Makro wird die neue Zeile an der gewünschten Stelle einfügen und die Formatierungen sowie Formeln kopieren.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass Makros in den Excel-Optionen aktiviert sind. Gehe zu "Datei" > "Optionen" > "Trust Center" > "Einstellungen für das Trust Center" > "Makroeinstellungen" und aktiviere die entsprechenden Optionen.
  • Problem: Die neue Zeile hat nicht die richtige Formatierung.

    • Lösung: Überprüfe den Code und stelle sicher, dass die Zeile korrekt kopiert wird. Achte darauf, dass die richtigen Zellen referenziert werden.

Alternative Methoden

Es gibt verschiedene Methoden, um eine neue Zeile in Excel einzufügen. Eine alternative Möglichkeit ist die Verwendung von Formeln, um die Zeilen manuell zu platzieren. Du kannst auch die "Einfügen"-Funktion im Menüband verwenden, um eine Zeile hinzuzufügen, allerdings ist dies nicht automatisiert.


Praktische Beispiele

Hier sind einige Beispiele, wie du das Makro anpassen kannst:

  1. Makro, das nach einem bestimmten Text sucht:

    Sub NeueZeile()
        Columns("B:B").Select
        Selection.Find(What:="Sonstiges", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False).Activate
        ActiveCell.Offset(0, 0).Select
        Selection.Offset(-1).EntireRow.Copy
        Selection.EntireRow.Insert
        Application.CutCopyMode = False
    End Sub
  2. Makro, das in einer bestimmten Spalte nach "Sonstiges" sucht und automatisch eine neue Zeile einfügt.


Tipps für Profis

  • Verwende die Application.ScreenUpdating-Eigenschaft, um die Bildschirmaktualisierungen während der Ausführung des Makros zu deaktivieren. Das beschleunigt die Ausführung:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Teste das Makro in einer Kopie deiner Datei, um unerwünschte Änderungen zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um mehrere Zeilen gleichzeitig einzufügen?
Du kannst eine Schleife im Makro hinzufügen, die durch die gewünschten Zeilen iteriert und für jede Zeile das Einfügen durchführt.

2. Funktioniert das Makro in allen Excel-Versionen?
Ja, das Makro funktioniert in den meisten modernen Versionen von Excel, die VBA unterstützen, wie Excel 2010, 2013, 2016, 2019 und Office 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige