Clever-Excel-Forum

Normale Version: Zellwert zu Formel in anderer Zelle machen -> 4x4 zu =4x4
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
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?
Wenn ich das richtig lesen, denke ich das dort wie du schon sagst im

Sheet Calc auf Position C1 das zu benutzende Workbook steht!
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.
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.
(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:
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??
(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
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.
(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.
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.
Seiten: 1 2 3 4