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

Forumthread: Formel automatisch in neue Zeile kopieren

Formel automatisch in neue Zeile kopieren
17.03.2018 17:08:49
Elias
Hallo,
ich habe eine einfache Adressliste mit mehreren Einträgen. In Spalte J gebe ich die Postleitzahl ein und in den Spalten K bis M erscheint dann automatisch Ort, Bundesland und Land (SVerweis der auf ein zweites Tabellenblatt mit den Orten zugreift). Soweit so gut. Nun ist es so, dass laufend neue Einträge dazukommen und ich nicht jedes Mal für jeden neuen Eintrag die Formeln neu kopieren/runterziehen will. Ich könnte natürlich die Formeln im Vorraus für z.B. 300 Zeilen kopieren, aber das ist aufgrund des #NV auch nicht schön.
Gibt es nun also eine Möglichkeit, dass sich die Formel automatisch nach unten kopiert sobald ich in eine neue Zeile schreibe bzw. dass die Formel immer in jenen Spalten vorkommt, ohne dass ich sie bis zu einer bestimmten Zeile nach unten kopieren muss?
Ich bin für jede Hilfe sehr dankbar!
Liebe Grüße
Elias
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
automatisch mit VBA?
17.03.2018 17:17:03
Tino
Hallo,
mit VBA könnte man dies machen, wenn dies gewollt!?
Wie sehen die Formeln aus?
Ab welcher Zeile und in welche Spalte kommt welche Formel?
Noch besser eine Beispiel Datei hochladen!
Gruß Tino
AW: automatisch mit VBA?
17.03.2018 17:43:10
Elias
Hallo Tino,
danke für deine schnelle Antwort! VBA ist kein Problem, solange ich den Code nicht selbst erstellen muss. ^^
In Spalte J wird die Postleitzahl eingegeben, in Spalte K erscheint dann der Ort, in L das Bundesland und in M das Land. Die Formel befindet sich in allen drei Spalten und schaut folgendermaßen aus: =WENN(ISTFEHLER(SVERWEIS(J2;'Orte Österreich'!$A$2:$D$2588;2;0));SVERWEIS(J2;'Orte Deutschland'!$A$1:$D$13144;2;0);(SVERWEIS(J2;'Orte Österreich'!$A$2:$D$2588;2;0))), wobei sich zwischen den Spalten nur der Spaltenindex ändert. Bei Ort 2, bei Bundesland 3 und bei Land 4.
Ich hoffe das hilft weiter.
Liebe Grüße
Elias
Anzeige
AW: automatisch mit VBA?
17.03.2018 19:05:27
Tino
Hallo,
versuch es mit diesem Code.
Öffne den VBA Editor (Alt+F11)
Gehe zu der Arbeitsmappe und zu der entsprechenden Tabelle (doppelclick)
Code ins rechte Fenster einfügen
Code wird bei eingabe in der Tabelle ausgeführt!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngAll As Range, rngArray As Range, rng As Range
On Error GoTo ErrorHandler:
'eingabe Bereich
Set rngAll = Intersect(Range("J2:J" & Rows.Count), Target)
'wo anders abbruch
If rngAll Is Nothing Then Exit Sub
'Events aus
Application.EnableEvents = False
'alle zusammenhängende bereiche
For Each rngArray In rngAll.Areas
'einzelne Zelle im bereich
For Each rng In rngArray
If rng.Value  "" Then 'nich leer Formel
rng.Offset(, 1).Resize(, 3).FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC10,'Orte Österreich'!R2C1:R2588C4,COLUMN(R1C[-9]),0))," & _
"VLOOKUP(RC10,'Orte Deutschland'!R1C1:R13144C4,COLUMN(R1C[-9]),0)," & _
"(VLOOKUP(RC10,'Orte Österreich'!R2C1:R2588C4,COLUMN(R1C[-9]),0)))"
Else 'leer formel löschen
rng.Offset(, 1).Resize(, 3).Value = ""
End If
Next
Next
ErrorHandler:
Application.EnableEvents = True
End Sub
Gruß Tino
Anzeige
AW: automatisch mit VBA?
17.03.2018 19:29:52
Elias
Hallo Tino,
vielen, vielen Dank funktioniert einwandfrei, du hast mir sehr geholfen!
Gibt es noch eine Möglichkeit die Spalten K, L und M zu schützen, und dass die Formel immer noch funktioniert? Wenn nicht auch nicht schlimm.
Liebe Grüße
Elias
AW: automatisch mit VBA?
17.03.2018 19:38:49
Tino
Hallo,
geht so.
MeinKennwort durch dein Kennwort ersetzen.
Spalte J muss bei geschützter Tabelle bearbeitet werden können!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngAll As Range, rngArray As Range, rng As Range
On Error GoTo ErrorHandler:
Me.Protect "MeinKennwort", UserInterfaceOnly:=True
'eingabe Bereich
Set rngAll = Intersect(Range("J2:J" & Rows.Count), Target)
'wo anders abbruch
If rngAll Is Nothing Then Exit Sub
'Events aus
Application.EnableEvents = False
'alle zusammenhängende bereiche
For Each rngArray In rngAll.Areas
'einzelne Zelle im bereich
For Each rng In rngArray
If rng.Value  "" Then 'nich leer Formel
rng.Offset(, 1).Resize(, 3).FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC10,'Orte Österreich'!R2C1:R2588C4,COLUMN(R1C[-9]),0))," & _
"VLOOKUP(RC10,'Orte Deutschland'!R1C1:R13144C4,COLUMN(R1C[-9]),0)," & _
"(VLOOKUP(RC10,'Orte Österreich'!R2C1:R2588C4,COLUMN(R1C[-9]),0)))"
Else 'leer formel löschen
rng.Offset(, 1).Resize(, 3).Value = ""
End If
Next
Next
ErrorHandler:
Application.EnableEvents = True
End Sub
Gruß Tino
Anzeige
AW: automatisch mit VBA?
18.03.2018 12:53:34
Elias
Hallo Tino,
funktioniert alles super! Danke für deine Hilfe!
Liebe Grüße
Elias
;

Forumthreads zu verwandten Themen

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

Formel automatisch in neue Zeile kopieren


Schritt-für-Schritt-Anleitung

Um eine Excel-Formel automatisch in eine neue Zeile zu übernehmen, kannst Du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass die Formel in den Spalten K, L und M automatisch eingefügt wird, wenn Du in Spalte J eine Postleitzahl eingibst.

  1. Öffne Deinen Excel-Arbeitsblatt und drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Doppelklicke auf das entsprechende Arbeitsblatt im Projektfenster.
  3. Füge den folgenden Code in das rechte Fenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngAll As Range, rngArray As Range, rng As Range
    On Error GoTo ErrorHandler:
    'eingabe Bereich
    Set rngAll = Intersect(Range("J2:J" & Rows.Count), Target)
    'wo anders abbruch
    If rngAll Is Nothing Then Exit Sub
    'Events aus
    Application.EnableEvents = False
    'alle zusammenhängende bereiche
    For Each rngArray In rngAll.Areas
        'einzelne Zelle im bereich
        For Each rng In rngArray
            If rng.Value <> "" Then 'nich leer Formel
                rng.Offset(, 1).Resize(, 3).FormulaR1C1 = _
                "=IF(ISERROR(VLOOKUP(RC10,'Orte Österreich'!R2C1:R2588C4,COLUMN(R1C[-9]),0))," & _
                "VLOOKUP(RC10,'Orte Deutschland'!R1C1:R13144C4,COLUMN(R1C[-9]),0)," & _
                "(VLOOKUP(RC10,'Orte Österreich'!R2C1:R2588C4,COLUMN(R1C[-9]),0)))"
            Else 'leer formel löschen
                rng.Offset(, 1).Resize(, 3).Value = ""
            End If
        Next
    Next
ErrorHandler:
    Application.EnableEvents = True
End Sub
  1. Schließe den VBA-Editor und kehre zu Deinem Arbeitsblatt zurück.

Jetzt wird die SVERWEIS-Formel automatisch in die neuen Zeilen übernommen, wenn Du in Spalte J eine Postleitzahl eingibst.


Häufige Fehler und Lösungen

  • Fehler: Die Formel wird nicht in die neuen Zeilen übernommen.

    • Lösung: Stelle sicher, dass das VBA-Skript korrekt eingefügt wurde und die Events aktiviert sind (Application.EnableEvents sollte auf True gesetzt sein).
  • Fehler: Der Code wirft einen Laufzeitfehler.

    • Lösung: Überprüfe, ob die Tabellenblätter und die Zellreferenzen im Code korrekt sind. Möglicherweise gibt es Unterschiede in den Namen der Tabellenblätter.

Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die Funktion "Ausfüllen" in Excel nutzen:

  1. Gib die Formel in die erste Zelle ein.
  2. Ziehe die untere rechte Ecke der Zelle nach unten, um die Formel auf die nächsten Zeilen zu übertragen (Excel-Formel automatisch runterziehen).
  3. Alternativ kannst Du die STRG + D-Tastenkombination verwenden, um die Formel in die darunter liegende Zelle zu kopieren.

Praktische Beispiele

Angenommen, Du hast folgende Daten in Spalte J (Postleitzahl):

J (Postleitzahl) K (Ort) L (Bundesland) M (Land)
1010 Wien Wien Österreich
2000 Stockerau Niederösterreich Österreich

Wenn Du in Zelle J3 eine neue Postleitzahl eingibst, wird automatisch die Formel in K3, L3 und M3 übernommen, sodass die dazugehörigen Werte für Ort, Bundesland und Land angezeigt werden.


Tipps für Profis

  • Nutzung von Named Ranges: Verwende benannte Bereiche für die Datenquellen Deiner SVERWEIS-Formeln, um die Wartbarkeit Deiner Formeln zu verbessern.
  • Fehlerüberprüfung: Integriere Fehlerüberprüfungen wie ISTFEHLER in Deine Formeln, um die Übersichtlichkeit zu erhöhen und unerwünschte Fehleranzeigen zu vermeiden.
  • Formelüberprüfung: Nutze die Funktion "Formel überprüfen" in Excel, um sicherzustellen, dass alle Formeln korrekt sind und die richtigen Daten referenziert werden.

FAQ: Häufige Fragen

1. Frage
Wie kann ich die Excel-Formel in eine neue Zeile automatisch übernehmen, ohne VBA zu verwenden?
Antwort: Du kannst die Funktion "Ausfüllen" oder die Tastenkombination STRG + D verwenden, um die Formel auf die nächsten Zeilen zu übertragen.

2. Frage
Kann ich die Spalten K, L und M schützen, während die Formel weiterhin funktioniert?
Antwort: Ja, Du kannst die Tabelle schützen und dabei sicherstellen, dass nur die Spalte J bearbeitet werden kann. Der VBA-Code muss jedoch angepasst werden, um den Schutz zu berücksichtigen.

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