Hallo liebe Exelianer und Makroten
Ich habe zwei Zahlenreihen für monatliche Berechnungen im Zusammenhang mit einer Liquiditätsplanung (Kasse und Bank), verteilt auf je zwei Zellbereiche. Ich habe die Datei hochgeladen. Sie ist in Excel 2010 erstellt worden, wurde aber als xls gespeichert, damit sie auch ältere Generationen lesen können 
http://www.file-upload.net/download-4526613/Zell_Inh…
Wenn ich in irgendeinem Monat eine Zahl eingebe, soll diese Zahl auch in den Folgemonaten übernommen werden. Dazu habe ich ein Makro (in der Arbeitsmappe) geschrieben.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If Intersect(Target, Range(„B2:H3“, „B6:H7“)) Is Nothing Then Exit Sub
tc = Target.Column
tr = Target.Row
If tr = 4 Or tr = 5 Then Exit Sub
'Problem:
'If tc > 7 Then GoTo Zeile2
veraenderung = Cells(tr, tc)
Cells(tr, tc + 1) = veraenderung
Zeile2:
If tr 7 Then GoTo Zeile2
Damit klappt es grundsätzlich; aber nicht bei Eingaben in den Zellen H2 bzw. H3. Deshalb habe ich diesen Makroteil „ausgeschaltet“. Statt dessen habe ich am Ende des Makros unter „Bereinigung:“ ganz radikal eingesetzt:
Range(„I2:I3“, „I6:I7“) = „“
Das gefällt mir nicht. Das ist mir zu martialisch. Erinnert zu stark an Steinbrücks Kavallerie - gg. Dafür gibt es sicher eine elegantere Lösung. Kann mir jemand von Euch helfen?
Und überhaupt: Ich vermute, man kann dieses Makro viel professioneller schreiben. Zum Beispiel gefallen mir die vielen „if“ überhaupt nicht.
Vielen Dank für Euer Interesse und Eure Bemühungen.
Ich wünsche eine gute neue Woche und grüsse Euch
Niclaus
