Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1088to1092
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 per Makro erweitern

Formel per Makro erweitern
Gordon
Moin,
ich habe eine Exceldatei mit drei Blättern (Namen: Test, Blatt1 und Blatt2)
Auf Blatt 'Test' gibt es eine Formel in Zelle A1: =Blatt1!A1+Blatt2!A1
Nun starte ich ein Makro, dass ein neues Tabellenblatt mit dem Namen 'Foo' erstellt. Soweit so gut. Das alles noch kein Problem. Nun soll aber die Formel auf Blatt 'Test' in Zelle A1 um +Foo!A1 erweitert werden. Wie mache ich das am besten?
Die Ursprungsformel am besten in eine Variable laden und dann das neue Stück dazu 'addieren'?
Also z.B. grob so:
a = "=Blatt1!A1+Blatt2!A1"
b = "+Foo!A1"
FormularLocal = a + b
Wäre das 'ne Lösung? Oder wie sollte ich da am besten ran gehen?
Gruß
Gordon

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Formel per Makro erweitern
28.07.2009 13:58:36
Chris
Servus Gordon,
ich würde das so machen:
Sub tt()
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Foo"
Sheets("Test").Range("A1").Formula = Sheets("Tabelle1").Range("A1").Formula & "+" & ActiveSheet. _
Name & "!A1"
End Sub
Gruß
Chris
AW: Sorry kleiner Fehler!
28.07.2009 13:59:32
Chris
Servus,
so natürlich:
Sub tt()
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Foo"
Sheets("Test").Range("A1").Formula = Sheets("Test").Range("A1").Formula & "+" & ActiveSheet. _
Name & "!A1"
End Sub
Gruß
Chris
Anzeige
AW: Sorry kleiner Fehler!
28.07.2009 15:19:25
Gordon
Super danke!
Klappt einwandfrei! :-)
Aber eine Frage habe ich noch, die vielleicht etwas komplizierter ist!? Und zwar geht die Formel ja kaputt, wenn ich ein erstelltes Blatt lösche, da der Bezug nicht mehr besteht.
Wie könnte man das Problem denn beheben?
Lieben Gruß
Gordon
AW: Sorry kleiner Fehler!
28.07.2009 18:42:41
Chris
Servus,
das kann man z.B. so machen:
Sub xx()
Dim strName As String, strWeg As String
strName = ActiveSheet.Name
strWeg = "+" & strName & "!A1"
Sheets("Test").Range("A1").Replace What:=strWeg, Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveSheet.Delete
End Sub
Du musst das zu löschende Blatt aktivieren und per Makro löschen und es werden nur Teilstrings in Test entfernt, die nach dem ersten = Blatt1!A1 kommen also mit +.
Gruß
Chris
Anzeige
AW: Sorry kleiner Fehler!
28.07.2009 18:46:56
Gordon
Aha,
aber 'ne automatische Lösung, wenn ich lösche, gibt es da nicht, oder?
Gruß
Gordon
AW: Sorry kleiner Fehler!
29.07.2009 08:38:59
Chris
Servus,
nur mit Timerprogrammierung und das ist nicht so ganz ohne.
Da lasss mal lieber die Finger weg.
Gruß
Chris
AW: Sorry kleiner Fehler!
29.07.2009 10:22:22
Gordon
Und was wäre wenn man mit Worksheets_Change daran ginge?
Habe mir das so gedacht:
In einer Zelle steht die Anzahl der Blätter. Wenn ich ein neues generiere zäht diese Zelle automatisch hoch.
So, wenn ich nun aber ein Blatt lösche, ist die Anzahl der Blätter kleiner als die Zahl die in der Zelle steht.
Sobald das eintrifft, greift er einmal alle Blätter wieder ab und erstellt so nochmal die die ganzen Formeln neu.
Und das halt alles per Change-Geschichte. Den Zähler in der Zelle setzt er natürlich dann auch zurück.
Müßte doch gehen, oder?
Anzeige
AW: Sorry kleiner Fehler!
29.07.2009 14:26:15
Chris
Servus,
mit Change_Ereignissen kommst du hier nicht weiter.
Hier mal ein Beispiel mit Timer, ich würd's allerdings trotzdem nicht machen.
Die Formel wird über NewSheet geändert, wenn ein Tab hinzukommt und der Timer überprüft jede Sekunde, ob etwas gelöscht wurde und wenn ja dann ändert er die Formel.
https://www.herber.de/bbs/user/63512.xls
Gruß
Chris
AW: Formel per Makro erweitern
29.07.2009 12:09:22
MichaV
Hallo Gordon,
hilft das weiter?
http://www.excelformeln.de/formeln.html?welcher=206
(sollte es, solange Du das Blatt nicht an letzter Stelle einfügst)
Gruß- Micha
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige