Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zellwert zu Formel in anderer Zelle machen -> 4x4 zu =4x4
#21
Hallo Julia,

gut so langsam machst du Dich. Die Fehler die jetzt noch auftauchen, die können jedem mal passieren und in manches musst Du noch reinwachsen.

Bei deinem jetzigen Problem  liegt der Hund an folgender Stelle begraben:


Code:
"["&Calc!C1&"]"


wenn Du vor und nach jedem & eine Leerstelle hättest, wäre der Syntaxfehler behoben.
Und wenn Du mit Option Explicit arbeitest,  würde dann sofort der nächste Fehler auftauchen.
Ohne Option Explicit würde nach Ausführung des Codes ein Fehler auftauchen.

Und spätestens jetzt ist es an der Zeit, dass Du Dich einmal herzlich über Excel aufregst. So viele Fehler in nur einer Zeile Code, das ist nicht anständig von Excel. :27:
Eigentlich sind die Fehlermeldungen ja nur wegen der paar Zeichen oben im Code.

Ich hatte ja geschrieben, da liegt der Hund begraben. Nun möchte Excel wissen welcher Hund das ist. Leider weiß ich auch nicht welcher das ist.
Also sei so gut sag mir zuerst, was bedeutet Calc!C1?
Möchtest Du den Zelleninhalt aus der Zelle C1 in Tabelle Calc dort einlesen?
Gruß Atilla
Antworten Top
#22
Wenn ich das richtig lesen, denke ich das dort wie du schon sagst im

Sheet Calc auf Position C1 das zu benutzende Workbook steht!
Antworten Top
#23
Hallo,

das ist auch meine Vermutung.

Von daher ist Julia mit Ihrer Version schon fast am Ziel. Deswegen schrieb ich auch:


Zitat:Die Fehler die jetzt noch auftauchen, die können jedem mal passieren und in manches musst Du noch reinwachsen

Aber sie soll es erst mal bestätigen.
Gruß Atilla
Antworten Top
#24
ja danke. Ich bin auch schon spürbar flotter geworden. Wobei ich das Gefühl habe umso mehr ich entdecke und neues kann, umso weniger nutze ich eigentlich von dem was Excel alles kann. Aber gut, ich werde ja auch nie alles brauchen.

Ihr lagt beide richtig. Calc!C1 ist ein Feld. Also in Tabellenblatt Calc das Feld C1. Und dort steht der Dateiname des Workbooks.

Doch nach der Änderung, öffnet sich nach wie vor der Debugger und markiert mir die 2. Zeile gelb:

Code:
Sub test()
 Range("A1:B30").FormulaLocal = "=" & "[" & Calc!C1 & "]" & "Werte!$A6"
End Sub


Ich habe die VBA-Geschichte jetzt ein wenig umgangen. Ich habe im Feld Calc!C2 folgende Formel geschrieben:
Code:
="["&Calc!C1&"]"


Und dann in VBA:
Code:
Sub test()
  Range("A1:B30").FormulaLocal = "=" & Range("Calc!C2").Value & "Werte!$A6"
End Sub

Das klappt nun :)

Wenn ich das jetzt aber auf die Spitze treiben möchte, und auch für den 2. Teil der Formel eine Range eingeben möchte. Ginge das ebenfalls?
Code:
Sub test()
  Range("A1:G30").FormulaLocal = "=" & Range("Calc!A1:Calc!G30").Value & "Werte!$A$6"
End Sub
So geht das nicht durch den Debugger.

Ich möchte also, dass in A1:G30 die Texte aus Calc!A1:Calc!A30 in Formeln umgewandelt geschrieben werden. Wobei in den Feldern Calc!A1:Calc!G30 jeweils andere Worksheetnamen stehen. Also 210 unterschiedliche.
In Feld A1 käme dann die Formel von Calc!A1(also würde der Worksheetinhalt der Worksheet die in Calc!A1 steht von Werte!$A$6 ausgegeben). In Feld G20 käme die Formel von Calc!G20(also würde der Worksheetinhalt der Worksheet die in Calc!G20 steht von Werte!$A$6 ausgegeben).
-> der Unterschied zu zuvor ist also, dass es nicht nur ein Feld mit Worksheetnamen gibt, sondern ganz viele.
Antworten Top
#25
(19.02.2017, 17:56)o0Julia0o schrieb: Wenn ich das jetzt aber auf die Spitze treiben möchte, und auch für den 2. Teil der Formel eine Range eingeben möchte. Ginge das ebenfalls?
Code:
Sub test()
  Range("A1:G30").FormulaLocal = "=" & Range("Calc!A1:Calc!G30").Value & "Werte!$A6"
End Sub
So geht das nicht durch den Debugger.

Hallo Julia,

dann nimmt Frau eine Schleife, Blush anders geht nicht.

Und warum Du das mit dem Umgehen gemacht hast, das verstehe ich nicht.
Warum nicht statt
Code:
Range("Calc!C2")

gleich

Code:
Range("Calc!C1")


Aber egal, wenn es funktioniert.

Und jetzt üb ein wenig Schleifen binden :19:
Gruß Atilla
Antworten Top
#26
Hallo Julia,

du kannst zwar weiter Deine Schleifen üben, aber ich habe gerade, eigentlich hatte ich schon gestern daran gedacht,
eine Lösung, die Dich auf einen Schlag von all Deinen Problemen erlösen wird. Angel 

Dazu gebe ich mal wieder, was ich denke, das Du erreichen möchtest.(Mann eine Frau verstehen, hmmm...., aber Excel ist ja noch da!)
Du hast ein Tabellenblatt mit Formeln die auf eine andere Datei verweisen.
Diese Formel ändert sich nach Deiner Beschreibung unter bestimmte Umständen und das möchtest Du nicht.

Richtig??
Gruß Atilla
Antworten Top
#27
(19.02.2017, 18:06)atilla schrieb: Und warum Du das mit dem Umgehen gemacht hast, das verstehe ich nicht.
Warum nicht statt
Code:
Range("Calc!C2")

gleich

Code:
Range("Calc!C1")
Weil in ("CalC!C1") die eckige Klammer um den Dateinamen fehlt.

Also mal von hier abgeguckt: http://www.online-excel.de/excel/singsel_vba.php?f=92
Code:
Sub test()
  For i = Range("Calc!A1").Value To Range("Calc!G30").Value
  Range("A1:G30").FormulaLocal = "=" & i & "Werte!$A6"
  Next
End Sub
Ich erhalte jedoch "Typen unverträglich". Er markiert mir folgende Zeile gelb - immerhin besser als rot ^^:
Code:
For i = Range("Calc!A1").Value To Range("Calc!G30").Value
Antworten Top
#28
Hallo Julia,

bevor wir uns verzetteln, schau noch ein Beitrag zurück, ich hatte zwischenzeitlich etwas geschrieben.

Dann habe ich noch eine zusätzliche Frage, sind das unterschiedliche Formeln?
Mit Schleifen musst Du nur arbeiten, wenn es unterschiedliche Formeln sind.
Ist schwer zu erklären. Zeig doch mal die Formeln aus A1:G1

Aber jetzt gehe ich erst einmal essen.
Gruß Atilla
Antworten Top
#29
(19.02.2017, 18:18)atilla schrieb: Du hast ein Tabellenblatt mit Formeln die auf eine andere Datei verweisen.
Diese Formel ändert sich nach Deiner Beschreibung unter bestimmte Umständen und das möchtest Du nicht.

Richtig??
Ich habe ein Tabellenblatt mit Formeln -> !Calc
Jedoch sind in dem Bereich dort Texte anstatt Formeln. Diese muß ich nun zu Formeln umwandeln. Daher diese VBA-Geschichte. Die sollen dann auch dauerhaft Formeln bleiben.
Die Formeln verweisen alle auf genau ein Worksheet(und dort auf eine Zelle).

Sinn der ganzen Sache ist, dass sobald die Datei(Worksheet) erstellt wird, wird in der Calc!-Tabelle auf sie verweisen, da dort alle möglichen Namen drinstehen(also nachdem das geklappt hat mit dem Umwandeln).
Und da ist wichit, damit die erstellt werden - die Verknpüpfungen. Also es muß 1x auf eine erstellte SaveAs-Worksheet-Datei verwiesen worden sein, damit diese Verknüpft ist mit der Hauptdatei.
Antworten Top
#30
Ok Julia,

ich werde Dir jetzt eine einfache Lösung anbieten.

Folgender Code:


Code:
Sub Text_zu_Formeln()
 Range("A1:G30").Replace "=", "#", xlPart
End Sub

ersetzt im Bereich A1:G30 ein Gleichheitszeichen "=" in der Zelle mit einer Raute "#"

und folgender Code:


Code:
Sub Formeln_zu_Text()
 Range("A1:G30").Replace "#", "=", xlPart
End Sub
 
ersetzt im Bereich A1:G30 eine Raute in der Zelle  mit einem Gleichheitszeichen.

Jetzt müsstest Du "Hurra" rufen.
Gruß Atilla
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste