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

Forumthread: Zeile automatisch einfügen (mit Formeln)

Zeile automatisch einfügen (mit Formeln)
05.01.2015 10:21:00
Rietfall
Hallo Community,
ich muss beruflich in einer Excel-Datei Zeile automatisch einfügen.
Im bestmöglichen Fall sollte: WENN in der Spalte F etwas größer 0 ist, automatisch darunter eine neue Zeile eingefügt werden und die Formeln schließlich aus der darüberliegenden Zeile übernommen werden.
Wichtig: Die Excel ist größtenteils geschützt, daher ist ein manueller Ablauf nicht möglich.
Ist dies überhaupt möglich über VBA (ich suche jetzt schon lange nach einer Lösung, hab aber leider nichts gefunden!)?
MfG
Rietfall

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeile automatisch einfügen (mit Formeln)
05.01.2015 10:35:38
Klaus
Hi Rietfall,
wenn die Datei vor einem manuellem Eingriff geschützt ist, kann meistens auch VBA nichts machen. Gibt es und hast du das Passwort?
Du hast auch einen Logikfehler. Sagen wir mal, in F17 steht die Zahl 3. Excel fügt eine Spalte 18 ein und kopiert die Formeln. In F17 steht jetzt aber immer noch 3. Excel fügt eine Spalte 18 ein und kopiert die Formeln. In F17 steht jetzt aber immer noch 3. Das Murmeltier lässt grüßen :-)
Also, was GENAU willst du? Möglichkeiten die ich sehe:
1) immer wenn in F etwas geändert wird (und nur dann), die geänderte Zelle (und nur die) prüfen ob das größer 0 ist und dann eine Zeile einfügen
2) auf Knopfdruck alle Werte in F durchgehen und bei Bedarf Zeilen einfügen (einmalig)
3) bei jeder Änderung alle Werte in F prüfen, Zeilen einfügen und dann die Werte aus F löschen um die Endlosschleife zu vermeiden.
Grüße,
Klaus M.vdT.

Anzeige
AW: Zeile automatisch einfügen (mit Formeln)
05.01.2015 12:22:15
Rietfall
Hi Klaus M. vdT.;
zu dem von Ihnen genannten Problem: Es sollen keine Werte kopiert werden, sondern ausschließlich nur die Formeln.
Dadurch wäre die von Ihnen genannte erste und dritte Möglichkeit perfekt!
Können Sie mir bei der Umsetzung helfen?
Vielen Dank schon einmal im Voraus!
MfG
Rietfall

Anzeige
AW: Zeile automatisch einfügen (mit Formeln)
05.01.2015 12:24:57
Rietfall
Aso und ja das Passwort ist mir bekannt!!

AW: Zeile automatisch einfügen (mit Formeln)
05.01.2015 13:13:45
Klaus
https://www.herber.de/bbs/user/94761.xlsm
Darfst aber gerne "Du" sagen, das nehme ich mir ja auch heraus :-)
Das Blattschutz-Passwort ist "xxx", kannst (und musst) du direkt im Code ändern.
Grüße,
Klaus M.vdT.

Anzeige
AW: Zeile automatisch einfügen (mit Formeln)
05.01.2015 14:21:49
Rietfall
Vielen Dank schon einmal für alles...war genau das wonach ich gesucht habe...perfekt!
Noch eine kurze Frage:
Ich habe die Programmierung auf die Orginal Datei übertrag und sie funktioniert hervorragend. Was muss ich nun verändern wenn ich eine Zeile löschen will, sobald in Spalte F ein x steht!
Vielleicht können Sie mir hier auch noch weiterhelfen..
Danke
Gruß
Rietfall

Anzeige
AW: Zeile automatisch einfügen (mit Formeln)
05.01.2015 15:09:07
Klaus
Rietfall ... bitte, benutzt das DU! Sonst denke ich, mein Vater steht hinter mir.
Auf die schnelle das Worksheet_Change umgeschrieben:
löscht die Zeile und zieht alles einen nach oben.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo hell
Const mypass As String = "xxx"
Const abZeile As Long = 2
Const inSpalte As Long = 6
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
If Target.Row >= abZeile And Target.Column = inSpalte Then
ActiveSheet.Unprotect mypass
If Target.Value = "x" Then
Target.EntireRow.Delete shift:=xlUp
Else
If Target.Value * 1 > 0 Then
Target.Offset(1, 0).EntireRow.Insert
Range("I" & Target.Row & ":K" & Target.Row).Copy
Range("I" & Target.Row + 1).PasteSpecial
Application.CutCopyMode = False
End If
End If
End If
hell:
Application.EnableEvents = True
ActiveSheet.Protect mypass
End Sub
Grüße,
Klaus M.vdT:

Anzeige
AW: Zeile automatisch einfügen (mit Formeln)
06.01.2015 22:58:46
Rietfall
Vielen Dank Klaus!!!!
Dankeeee DIR! :D Warst mir eine große Hilfe....Dankeschön!
Gruß
Rietfall

Danke für die Rückmeldung! owT.
07.01.2015 10:42:43
Klaus
.
;

Forumthreads zu verwandten Themen

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

Zeile automatisch einfügen in Excel mit Formeln


Schritt-für-Schritt-Anleitung

Um eine Zeile in Excel automatisch einzufügen, wenn in einer bestimmten Spalte (z.B. Spalte F) ein Wert größer als 0 eingegeben wird, kannst Du das folgende VBA-Skript verwenden. Achte darauf, dass die Excel-Datei nicht schreibgeschützt ist, oder Du das Passwort kennst.

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das entsprechende Arbeitsblatt im Projekt-Explorer aus.
  3. Füge den folgenden Code in das Code-Fenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo hell
    Const mypass As String = "xxx" ' Ändere dies zu deinem Passwort
    Const abZeile As Long = 2
    Const inSpalte As Long = 6 ' Spalte F

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    If Target.Row >= abZeile And Target.Column = inSpalte Then
        ActiveSheet.Unprotect mypass
        If Target.Value * 1 > 0 Then
            Target.Offset(1, 0).EntireRow.Insert
            Range("I" & Target.Row & ":K" & Target.Row).Copy
            Range("I" & Target.Row + 1).PasteSpecial
            Application.CutCopyMode = False
        End If
    End If

hell:
    Application.EnableEvents = True
    ActiveSheet.Protect mypass
End Sub
  1. Ändere das Passwort in der Konstante mypass zu deinem tatsächlichen Blattschutz-Passwort.
  2. Schließe den VBA-Editor und teste die Funktion, indem Du einen Wert in Spalte F eingibst.

Häufige Fehler und Lösungen

  • Excel fügt keine Zeilen mehr ein: Überprüfe, ob das Arbeitsblatt geschützt ist. Ohne das richtige Passwort kann VBA keine Änderungen vornehmen.

  • Zeilen werden nicht korrekt kopiert: Achte darauf, dass der Bereich, der kopiert wird, korrekt angegeben ist. Möglicherweise musst Du den Bereich anpassen, je nachdem, welche Formeln Du übernehmen möchtest.

  • Endlosschleife: Stelle sicher, dass die Bedingung für das Einfügen der Zeilen korrekt ist. Wenn der Wert in der Zelle, die überprüft wird, immer gleich bleibt, kann es zu einer Endlosschleife kommen.


Alternative Methoden

  1. Manuelle Eingabe: Du kannst Zeilen manuell einfügen, indem Du mit der rechten Maustaste auf die Zeilennummer klickst und "Zeile einfügen" auswählst.

  2. Formelbasierte Lösungen: Nutze die Funktion =WENN(...) in einer Hilfsspalte, um anzuzeigen, ob eine neue Zeile eingefügt werden sollte. Dies erfordert jedoch manuelle Eingriffe.

  3. Excel-Tabellen: Wenn Du eine Excel-Tabelle verwendest, kannst Du die Funktion "Tabelle" nutzen, um automatisch neue Zeilen zu erstellen, wenn Daten eingegeben werden.


Praktische Beispiele

  • Beispiel für das Einfügen einer Zeile: Wenn in Zelle F5 der Wert 1 eingegeben wird, wird unter dieser Zeile automatisch eine neue Zeile eingefügt, und die Formeln aus der Zeile darüber werden übernommen.

  • Beispiel für das Löschen einer Zeile: Um eine Zeile zu löschen, wenn in Spalte F ein "x" steht, kannst Du den folgenden Code verwenden:

If Target.Value = "x" Then
    Target.EntireRow.Delete shift:=xlUp
End If

Tipps für Profis

  • Optimierung des Codes: Stelle sicher, dass Dein VBA-Code effizient ist. Nutze Application.EnableEvents und Application.ScreenUpdating, um die Ausführungsgeschwindigkeit zu erhöhen.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler zu vermeiden.

  • Dokumentation: Kommentiere Deinen Code gut, damit Du ihn später leichter verstehen oder anpassen kannst.


FAQ: Häufige Fragen

1. Wie kann ich eine neue Zeile automatisch einfügen, wenn in Spalte F ein Wert größer als 0 eingegeben wird? Du kannst das oben beschriebene VBA-Skript verwenden, um dies zu erreichen.

2. Was muss ich tun, wenn ich eine Zeile löschen möchte, wenn in Spalte F ein "x" steht? Du kannst den bereitgestellten Code für das Löschen einer Zeile anpassen, um diese Funktionalität zu integrieren.

3. Funktioniert das auch in Excel 365? Ja, der VBA-Code sollte in Excel 365 sowie in früheren Versionen funktionieren, solange du die richtigen Berechtigungen hast.

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