Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1192to1196
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

FormulaLocal ändert den Wert

FormulaLocal ändert den Wert
Stefan
Hallo zusammen, ich habe ein kleines Problem bei meiner Programmierung. In einem Sheet habe ich eine Formel, die ich nun per Programmierung in ein anderes Sheet eintragen will. Die Formel erstelle ich durch folgende Zeile:
strSummenFormel = Trim("=" & ActiveSheet.Name & "!" & ActiveCell.Adress)
Die Formel sieht soweit gut aus, selbst im weiteren Programm ist der Wert z.B.
strSummenFormel="=1031-0034-01!$P$12"
Wenn ich nun den Wert in eine andere Zelle schreiben möchte, mit
ActiveCell.FormulaLocal = strSummenFormel
wird in der Zelle plötzlich daraus
=1013-34-'01'!$P$12
und es erscheint die Fehlermeldung #Bezug!. Die Variable ist aber wie oben beschrieben.
Ich habe die Zelle zuvor auch schon als Wert formatiert, aber es hat nicht gebracht.
Ich hoffe mir kann jemand weiterhelfen.
Gute Nacht und Danke im Voraus
Stefan

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

Betreff
Benutzer
Anzeige
AW: FormulaLocal ändert den Wert
08.01.2011 06:54:09
Nepumuk
Hallo,
das kommt davon wenn du Tabellennamen bentzt die wie eine Formel aussehen und dann vergisst den Namen in Hochkomma zu setzen. Besser wäre es natürlich du verwendest in Zukunft Unterstriche an Stelle von Bindestrichen.
strSummenFormel = Trim$("='" & ActiveSheet.Name & "'!" & ActiveCell.Adress)
Gruß
Nepumuk
AW: FormulaLocal ändert den Wert
08.01.2011 08:38:20
Stefan
Hallo Nepumuk
Vielen Dank für deine Antwort. Ich werde es einmal ausprobieren, würde es aber lieber behalten. Gibt es denn eine andere Lösung, da ich auch Hyperlinks zu den Sheets erstelle und die Nummern in der Tabelle stehen. Es ist eine sprechende Nummer aus unserem System.
Wenn es nicht anders geht, ist es halt nur mehr Aufwand, denn auch dass bekommt man durch Programmierung grade.
Nochmals vielen Dank
Stefan
Anzeige
AW: FormulaLocal ändert den Wert
08.01.2011 09:32:07
Nepumuk
Hallo,
klar kannst du die Namen behalten. Du musst nur, wie in meinem Beispiel vor und hinter dem Tabellennamen ein Hochkomma einfügen. Ich habe es jetzt extra für dich noch mal mit so einem Tabellenamen getestet. Dabei habe ich noch einen Fehler entdeckt. Bei Address fehlt ein d.
Ansonsten psst das so:
strSummenFormel = Trim$("='" & ActiveSheet.Name & "'!" & ActiveCell.Address)

Gruß
Nepumuk
Anzeige
aber seltsam ist doch ...
08.01.2011 08:31:58
Matthias
Hallo Stefan
... warum aus 1031 plötzlich 1013 wird. Das ist höchst schleierhaft ;o)
Das mit xxxx-0034 wird zu xxxx-34 ist Dir ja nun sicher klar (siehe Nepumuk)
Für die, die es interessiert:
Ich hab das für mich jetzt mal so umgesetzt (um einen evtl. Zirkelbezug zu verhindern)
Der würde entstehen, wenn man z.B A1 in die Variable schreibt und dannach versucht in
die gleiche Zelle (bei gleicher Tabelle!) die Formel wieder mit Bezug auf sich selbst einzufügen.
Desweiteren wird vorher der Zellzustand abgefragt (leer/nichtleer) mit der Option zu überschreiben.
Hier das Beispiel:
https://www.herber.de/bbs/user/72974.xls
Gruß Matthias
Anzeige
AW: FormulaLocal ändert den Wert
08.01.2011 09:12:50
Stefan
Nochmal hallo,
ich habe einmal ein Beispiel gebastelt und es als File abglelegt (ich hoffe es hat gefuzzt, da ich mit zurück gearbeitet habe):
https://www.herber.de/bbs/user/72975.xls
In dem Beispiel habe ich die Übersicht in der die Summen aus den einzelnen Sheets stehen.
Die Formel kann ich zu Fuß eintragen, mit der Programmierung nicht. Bei der Programmierung schreibt er mir den Inhalt um. Z.B. wir aus ='1013-0034-01'!B7 mit Programmierung =1013-34-'01'!B7.
Mir ist die Antwort von Nepumuk klar, wunder mich aber warum ich es per Hand hinbekomme. Kann ich die Zelle anders formatieren oder die Variable anders erzeugen?
Stefan
Anzeige
Formula richtig geschrieben
08.01.2011 09:35:23
Erich
Hi Stefan,
vergleich mal die beiden Schreibweisen:

Sub aTest()
Dim strSummenFormel As String
strSummenFormel = "=1013-0034-01!$B$7"
Cells(2, 3).Formula = strSummenFormel     ' Fehler
strSummenFormel = "='1013-0034-01'!$B$7"
Cells(4, 3).Formula = strSummenFormel     ' ok
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Formula richtig geschrieben
08.01.2011 10:57:06
Stefan
Hallo Zusammen,
ich habe die Formel mit
strSummenFormel = Trim$("='" & ActiveSheet.Name & "'!" & ActiveCell.Address)
umgesetzt und es funktioniert suuuuper !!!!
Vielen , vielen Dank.
Ich hätte auch selber darauf kommen können. Ich hatte es ähnlich versucht, aber die Hochkomma über die ganze Zeile gesetzt.
Ein kleine Frage bleibt noch. Der Zellenbezug ist absolut !$B$7. Ist es möglich den Bezug relativ zu schreiben !B7, da ich evtl. später Zeilen löschen möchte und die Formel nicht nochmal übertragen bräuchte?
Vielen Dank nochmals an alle.
Stefan
Anzeige
ActiveCell.Address(0,0) oT
08.01.2011 11:18:20
Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige