Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige