Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formelbezug ändern

Formelbezug ändern
05.11.2006 09:41:16
Michael
Hallo, liebe Forum-User und hilfreichen Geister!
Ich bin ein typischer 'LearningByDoing'-Excel-Nutzer. Bis vor zwei Wochen wusste ich nicht mal, was genau ein Makro ist, dann bin ich durch Zufall auf den Geschmack gekommen und und produziere seitdem in meiner Freizeit Buttons, die mir die Arbeit in meinem Job sehr erleichtern. Dummerweise fehlt mir allerdings der fachliche VBA-Hintergrund, ich agiere meist nur mit Logik und Google bis zur Lösung des Problems. Allerdings komme ich hier nicht weiter:
Ich habe ein Arbeitsblatt verformelt, dass mir aus meinem täglichen Kassenabschlag die Bankeinzahlung extrahiert und evtl. vorhandene Barausgaben gleich abzieht. So sieht die Formel für jeden Tag aus:
=WENN(ISTFEHLER(SVERWEIS(DATUM(2006;11;1);'C:\Dokumente und Einstellungen\compass\Desktop\COBA\Abrechnung\[FB-18 Barausgabenliste.xls]Nov.06'!$A$14:$H$35;7;FALSCH));SVERWEIS(1;'C:\Dokumente und Einstellungen\compass\Desktop\COBA\Abrechnung\[FB-15 Kontrollblatt Kreditkkarten.xls]Nov.06'!$A$16:$F$46;6);(SVERWEIS(1;'C:\Dokumente und Einstellungen\compass\Desktop\COBA\Abrechnung\[FB-15 Kontrollblatt Kreditkkarten.xls]Nov.06'!$A$16:$F$46;6))-(SVERWEIS(DATUM(2006;11;1);'C:\Dokumente und Einstellungen\compass\Desktop\COBA\Abrechnung\[FB-18 Barausgabenliste.xls]Nov.06'!$A$14:$H$35;7;FALSCH)))
Bis jetzt musste ich jeden Monat mit Ersetzen in jedem Tagesfeld die Folge: "(DATUM(2006;11;" in den darauffolgenden Monat: "(DATUM(2006;12;" usw. ändern und dann die Monatsnamen der verformelten Sheets der anderen Dateien, die alle gleich heissen. Um mir(und anderen, die dieses Programm benutzen wollen) die Arbeit zu erleichtern, habe ich mir ein Makro gebastelt, welches das alles selbst machen soll. Nach Anlaufschwierigkeiten läuft es theoretisch. Hier die Frage:
In der Formel den Bezug von (DATUM...usw auf die Zelle mit dem Tagesdatum zu ändern löst das Problem des Ersetzens, da ich jetzt nur noch den Monatsersten in B17 ändern muss und dann sofort zu der Namensänderung schreiten kann. Wie kann ich in der oberen Formel für jeden Tag das "DATUM(2006;11;1)" in "B17" ändern, da ja im nächsten Feld die Formel von "DATUM(2006;11;2)" in "B18" geändert werden muss, insgesamt 31 mal?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formelbezug ändern
05.11.2006 11:44:59
Stefan
Hallo Michael,
ist ziemlich umfangreich, dein Betrag hier.
Aber wenn du in einer Zelle immer das aktuelle Datum haben willst, lautet die Formel für die Zelle: =heute().
Gruß
Stefan
AW: Formelbezug ändern
05.11.2006 13:17:50
Michael
Danke für die schnelle Antwort, aber die Formel greift für jeden Tag des Monats auf meine Kassenabrechnung zu, checkt evtl. an diesem Tag getätigte Barausgaben und trägt dann die Summe der täglichen Bankeinzahlung in ein Feld ein. Ich brauche also eine Formel für jeden Tag des Monats, nicht nur für den aktuellen.
AW: Formelbezug ändern
05.11.2006 12:35:04
fcs
Hallo Michael,
ich dachte das geht auch per Menü Berbeiten/Suchen/Ersetzen eingebaut in eine For-Next-Schleife. Für Formeln funktioniert das scheinbar nicht per Makro. Jedenfalls führt der aufgezeichete Makrocode keine Ersetzungen durch.
Deshalb folgende beiden Vorschläge, wie du deine Formeln per Makro anpassen kannst:
Variante 1 ersetzt in einer Schleife beginnend mit der 1. Zelle den entsprechenden Formeltext, Alt- und Neutext werden dabei jeweils berechnet und arbeitet sich dann 30 Zeilen nach unten.
Variante 2 ersetzt den Ausdruck in der 1. Zelle und kopiert dann die Formel in die 30 darunter liegenden Zellen
Gruss
Franz

Sub FormelErsetzen1()
Dim Formel As String, Zelle As Range, I As Integer
Set Zelle = Range("D17") '1. Zelle in der Ersetzt werden soll
For I = 1 To 31
Formel = Zelle.Offset(I - 1, 0).FormulaLocal
Formel = Application.WorksheetFunction.Substitute(Formel, "DATUM(2006;11;" & I & ")", "B" & 17 + I - 1)
'        Formel = Replace(Formel, "DATUM(2006;11;" & I & ")", "B" & 17 + I - 1) 'für neuere Excelversionen möglich
Zelle.Offset(I - 1, 0).FormulaLocal = Formel
Next
End Sub
Sub FormelErsetzen2()
Dim Formel As String, Zelle As Range
Set Zelle = Range("D17") '1. Zelle in der Ersetzt werden soll
Formel = Zelle.FormulaLocal
Formel = Application.WorksheetFunction.Substitute(Formel, "DATUM(2006;11;1)", "B17")
Zelle.FormulaLocal = Formel
Zelle.Copy
Zelle.Range("A2:A31").PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Zelle.Select
End Sub

Anzeige
AW: Formelbezug ändern
05.11.2006 17:04:42
Michael
Super!!!
Die erste Formel war goldrichtig für meine Zwecke!
1000 Dank!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige