Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeile einfügen u.Formel v.Zelle darüber übernehmen

Zeile einfügen u.Formel v.Zelle darüber übernehmen
23.03.2008 20:24:26
Karsten

Hallo...
Ich möchte, dass, wenn ich eine Zeile einfüge, automatisch die Formel von der Zelle unmittelbar darüber übernommen wird. Allerdings nur in Spalte A und C.
Wenn mir da jemand helfen könnte - besten Dank.
MfG
Karsten

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile einfügen u.Formel v.Zelle darüber überne
23.03.2008 22:08:16
fcs
Hallo Karsten,
wenn du deine Daten einschliesslich der Zeile mit den Spaltentiteln via Menü Daten als Liste festlegts, dann fügt Excel in den Spalten mit Formeln die Formeln automatisch ein, wenn man eine neue Datenzeile ausfüllt.
Alternative: Makro, das bei Eingaben in Spalte B oder auch andere Spalte prüft ob eine neue Zeile angelegt werden soll und dann die Formeln in die Neue Zeile kopiert.
Gruß
Franz

AW: Zeile einfügen u.Formel v.Zelle darüber überne
24.03.2008 10:26:56
Karsten
Hallo Franz,
wo kann man die Daten bei "Daten" als Liste festlegen? Ich finde da irgendwie nichts.
Gruß
Karsten

AW: Zeile einfügen u.Formel v.Zelle darüber überne
24.03.2008 11:28:00
Nepumuk
Hallo Karsten,
Menüleiste - Daten - Liste - Liste erstellen.
Gruß
Nepumuk

Anzeige
AW: Zeile einfügen u.Formel v.Zelle darüber überne
24.03.2008 12:22:45
Karsten
Hallo Nepumuk,
Du, ich finde da wirklich nichts. Unter Daten finde ich nur "Sortieren,Filter,Maske, usw." . Nichts mit Liste.
Meine Version ist 2002. Ist da etwas anders?
Gruß
Karsten

AW: Zeile einfügen u.Formel v.Zelle darüber überne
24.03.2008 13:20:06
Nepumuk
Hallo Karsten,
kann ich nicht sagen, hab hier nur 2000 2003 und 2007 intalliert.
Gruß
Nepumuk

AW: Zeile einfügen u.Formel v.Zelle darüber überne
24.03.2008 13:23:00
Original
Hi,
das gibt es erst ab E 2003, du hast aber angegeben, dass du E 2003 verwendest.
mfg Kurt

AW: Zeile einfügen u.Formel v.Zelle darüber überne
24.03.2008 14:58:00
Karsten
Hallo Kurt,
Stimmt. 202 lässt sich nicht eingeben deshalb 2003. Naja, danke.
Gruß
Karsten

AW: Zeile einfügen u.Formel v.Zelle darüber überne
24.03.2008 20:54:00
fcs
Hallo Karsten,
da deine Excelversion die Listen-Funktion noch nicht unterstützt muss du als Ersatzlösung mit einem Makro arbeiten, dass Eingaben in einer neuen Zeile erkennt und ggf. Formeln nach unten auffüllt.
Nachfolgend meine Lösung. Das Makro muss du im VBA-Editor unter der Tabelle mit der Liste einfügen.
Die Spalten, Zeilen für den Listenbereich muss du im Code ggf. noch anpassen.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Listeneingabe
'bei Eingabe in neuer Zeile werden Formeln kopiert
Dim objZelle As Range, arrFormelSpalten
Dim lngSpalte As Long, intJ As Integer, bolFormel, lngOffset As Long
Const lngSpalte1 As Long = 1 'Erste Spalte der Liste
Const lngSpalteL As Long = 7 'Letzte Spalte der Liste
Const lngZeile1 As Long = 2 '1. Zeile mit Formel
arrFormelSpalten = Array(1, 3) 'Spalten mit Formeln
With Me
For Each objZelle In Target
'Prüfen ob geänderte Zelle(n) unterhalb der letzten Zeile mit Formel
If objZelle.Row > .Cells(.Rows.Count, arrFormelSpalten(0)).End(xlUp).Row _
And objZelle.Row > lngZeile1 _
And objZelle.Column = lngSpalte1 Then
Application.EnableEvents = False
'Formel in Spalten nach unten kopieren
For lngSpalte = LBound(arrFormelSpalten) To UBound(arrFormelSpalten)
.Range(.Cells(.Rows.Count, arrFormelSpalten(lngSpalte)).End(xlUp), _
.Cells(objZelle.Row, arrFormelSpalten(lngSpalte))).FillDown
Next
Application.EnableEvents = True
End If
Next objZelle
'Bei Eingaben in letzter Zeile nach rechts nächste Eingabezelle selektieren
If Target.Row = .Cells(.Rows.Count, arrFormelSpalten(0)).End(xlUp).Row _
And Target.Column >= lngSpalte1 _
And Target.Column  lngSpalteL Then
lngSpalte = lngSpalte1 'ab 1. Spalte prüfen
lngOffset = 1 'Nächste Zeile selektieren wenn Eingabe in Letzter Spalte
End If
'Prüfen, ob Spalte Formel enhält
bolFormel = False
For intJ = LBound(arrFormelSpalten) To UBound(arrFormelSpalten)
If lngSpalte = arrFormelSpalten(intJ) Then bolFormel = True: Exit For
Next
If bolFormel = False Then
'Zelle selektieren
.Cells(Target.Row + lngOffset, lngSpalte).Select
Exit Do
End If
lngSpalte = lngSpalte + 1
Loop
End If
End With
End Sub


Anzeige
AW: Zeile einfügen u.Formel v.Zelle darüber überne
25.03.2008 02:10:00
Karsten
Hallo Franz,
Danke, das ist ja 'ne ganz schöne lange Lösung. Es gibt trotzdem ein Problem. Wenn ich mittendrin eine neue Zeile einfüge, dann wird obige Formel nicht übertragen. Oben und unten sind aber schon die Formeln.
Vielleicht kannst du da nochmal nachgucken.
Gruß
Karsten

AW: Zeile einfügen u.Formel v.Zelle darüber überne
25.03.2008 08:30:24
fcs
Hallo Karsten,
das Problem erfordert nun mal dass verschiedenen Eventualitäten geprüft werden müssen.
Hier die angepasste Version, die auch beim Einfügen von Leerzeilen die Formeln einfügt wenn Werte eingegeben werden - natürtlich wieder ein bischen länger.
Außerdem eine "Sparversion", die nur auf Eingaben in Spalte B reagiert und in der letzten Zeile nicht die nächste Eingabezelle selektiert.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Listeneingabe bei Eingabe in neuer Zeile werden Formeln kopiert
Dim objZelle As Range, arrFormelSpalten
Dim lngSpalte As Long, intJ As Integer, bolFormel, lngOffset As Long
Const lngSpalte1 As Long = 1 'Erste Spalte der Liste
Const lngSpalteL As Long = 7 'Letzte Spalte der Liste
Const lngZeile1 As Long = 2 '1. Zeile mit Formel
arrFormelSpalten = Array(1, 3) 'Spalten mit Formeln
With Me
For Each objZelle In Target
'Prüfen ob geänderte Zeile(n) Formel enthält
If Not .Cells(objZelle.Row, arrFormelSpalten(0)).HasFormula _
And objZelle.Row >= lngZeile1 _
And objZelle.Column = lngSpalte1 Then
bolFormel = True
Application.EnableEvents = False
'Formel in Spalten kopieren
For lngSpalte = LBound(arrFormelSpalten) To UBound(arrFormelSpalten)
Select Case objZelle.Row
Case lngZeile1
'Zeile direkt unter Spaltentitel eingefügt
.Range(.Cells(objZelle.Row, arrFormelSpalten(lngSpalte)), _
.Cells(objZelle.Row, arrFormelSpalten(lngSpalte)).End(xlDown)).FillUp
Case Is = lngSpalte1 _
And Target.Column  lngSpalteL Then
lngSpalte = lngSpalte1 'ab 1. Spalte prüfen
lngOffset = 1 'Nächste Zeile selektieren wenn Eingabe in Letzter Spalte
End If
'Prüfen, ob Spalte Formel enhält
bolFormel = False
For intJ = LBound(arrFormelSpalten) To UBound(arrFormelSpalten)
If lngSpalte = arrFormelSpalten(intJ) Then bolFormel = True: Exit For
Next
If bolFormel = False Then
'Zelle selektieren
.Cells(Target.Row + lngOffset, lngSpalte).Select
Exit Do
End If
lngSpalte = lngSpalte + 1
Loop
End If
End With
End Sub
'#### Sparversion #####
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Sparversion, Formeln werden ggf. bei Werteingabe in Spalte B eingefügt
'Listeneingabe bei Eingabe in neuer Zeile werden Formeln kopiert
Dim objZelle As Range, arrFormelSpalten
Dim lngSpalte As Long
Const lngZeile1 As Long = 2 '1. Zeile mit Formel
Const lngSpalteE As Long = 2 'Spalte bei deren Eingabe ggf. Formel kopiert wird
arrFormelSpalten = Array(1, 3) 'Spalten mit Formeln
With Me
For Each objZelle In Target
'Prüfen ob geänderte Zeile(n) Formel enthält
If Not .Cells(objZelle.Row, arrFormelSpalten(0)).HasFormula _
And objZelle.Row >= lngZeile1 _
And objZelle.Column = lngSpalteE Then
Application.EnableEvents = False
'Formel in Spalten kopieren
For lngSpalte = LBound(arrFormelSpalten) To UBound(arrFormelSpalten)
Select Case objZelle.Row
Case lngZeile1
'Zeile direkt unter Spaltentitel eingefügt
.Range(.Cells(objZelle.Row, arrFormelSpalten(lngSpalte)), _
.Cells(objZelle.Row, arrFormelSpalten(lngSpalte)).End(xlDown)).FillUp
Case Is 


Anzeige
AW: Zeile einfügen u.Formel v.Zelle darüber überne
25.03.2008 16:14:00
Karsten
Hallo Franz,
Klappt jetzt. Hochachtung vor deinen Excelkentnissen. Geht es auch noch in einem bestimmten Bereich: von z.B. A10-A20. Allerdings haben die Zellen Beschriftungen (A10 als erste_Zelle u. A20 als letzte_Zelle), weil, die sind etwas variabel.
Gruß
Karsten

AW: Zeile einfügen u.Formel v.Zelle darüber überne
25.03.2008 23:33:32
fcs
Hallo Karsten,
hier die Variante, die Formeln in einem bestimmten Zeilenbereich (definiert durch 2 Zellen mit Bereichsnamen) ergänzen.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Listeneingabe bei Eingabe in neuer Zeile werden Formeln kopiert
Dim objZelle As Range, arrFormelSpalten
Dim lngSpalte As Long, intJ As Integer, bolFormel, lngOffset As Long
Const lngSpalte1 As Long = 1 'Erste Spalte der Liste
Const lngSpalteL As Long = 7 'Letzte Spalte der Liste
Dim lngZeile1 As Long '1. Zeile des Formelbereiches
Dim lngZeileL As Long 'letzte Zeile des Formelbereiches
arrFormelSpalten = Array(1, 3) 'Spalten mit Formeln
With Me
lngZeile1 = .Range("erste_Zelle").Row
lngZeileL = .Range("letzte_Zelle").Row
For Each objZelle In Target
'Prüfen ob geänderte Zeile(n) Formel enthält
If Not .Cells(objZelle.Row, arrFormelSpalten(0)).HasFormula _
And objZelle.Row >= lngZeile1 _
And objZelle.Row = lngSpalte1 Then
bolFormel = True
Application.EnableEvents = False
'Formel in Spalten kopieren
For lngSpalte = LBound(arrFormelSpalten) To UBound(arrFormelSpalten)
Select Case objZelle.Row
Case lngZeile1
'Zeile direkt unter Spaltentitel eingefügt
.Range(.Cells(objZelle.Row, arrFormelSpalten(lngSpalte)), _
.Cells(objZelle.Row, arrFormelSpalten(lngSpalte)).End(xlDown)).FillUp
Case Is  lngSpalteL Then
lngSpalte = lngSpalte1 'ab 1. Spalte prüfen
lngOffset = 1 'Nächste Zeile selektieren wenn Eingabe in Letzter Spalte
End If
'Prüfen, ob Spalte Formel enhält
bolFormel = False
For intJ = LBound(arrFormelSpalten) To UBound(arrFormelSpalten)
If lngSpalte = arrFormelSpalten(intJ) Then bolFormel = True: Exit For
Next
If bolFormel = False Then
'Zelle selektieren
.Cells(Target.Row + lngOffset, lngSpalte).Select
Exit Do
End If
lngSpalte = lngSpalte + 1
Loop
End If
End With
End Sub


Anzeige
AW: Zeile einfügen u.Formel v.Zelle darüber überne
26.03.2008 14:45:46
Karsten
Hallo Franz,
Besten Dank, ich denke mal es wird klappen, hab aber im Moment etwas wenig Zeit für diese Sache.
Gruß
Karsten

AW: Zeile einfügen u.Formel v.Zelle darüber überne
29.03.2008 09:23:00
Karsten
Hallo Franz,
Es gibt doch noch ein Problem. Läßt sich der Befehl auch nur ausführen, wenn ich eine Zeile einfüge? Wenn ich meine Makros starte, läuft er auch mit ab und bringt dann alles durcheinander.
Gruß
Karsten

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige