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.

Wert aus Feldnamen auslesen
#1
Liebe Community!

Ich habe hier schon viel gelesen, viel gelernt und mich nun angemeldet, weil ich mit Hilfe für ein Problem erhoffe, welches ich nicht gelöst bekomme.

In mehrere Arbeitsblätter werden über ein Makro Daten aus einer langen Liste Zeile für Zeile eingelesen. In den Arbeitsblättern finden umfangreiche Berechnungen statt. Am Schluss steht in einer Zelle mit dem Namen "Ergebnis" das Resultat (tatsächlich sind das eine ganze Menge - hat aber keinen Einfluss auf das Problem).

Nach dem Einlesen der Daten einer Zeile soll dieses Ergebnis in einem weiteren Arbeitsblatt gelistet werden. "ZeileAuslesen" ist die Zählvariable der Schleife.

Ich habe das Makro für die Auflistung der Ergebniswerte so geschrieben:


Cells(ZeileAuslesen, 2) = Names("Ergebnis1").Value
Cells(ZeileAuslesen, 5) = Names("Ergebnis2").Value
........

Dies führt aber zu dem Ergebnis, dass in allen Feldern nach dem Durchlauf das Ergebnis des letzen Datenimports steht. Grund: Tatsächlich wird nicht der Wert von "Ergebnis" in das Arbeitsblatt geschrieben, sondern eben die Verknüpfung "=Ergebnis!$I$110", und diese wird bei jedem Durchlauf aktualisiert.

Ich Suche also nach einer Lösung, die das Folgende leistet:
1. Daten werden aus der Zeile  "2" eines Arbeitsblattes in die Arbeitsblätter eingelesen (erledigt)
2. Berechnungen werden in den Arbeitsblättern durchgeführt. In der Zelle mit dem Namen "Ergebnis" steht das Resultat entspr. den Daten aus Zeile "2" (z. B. "123") (erledigt)
3. Dieser Wert soll in eine Arbeitsblatt in die Zeile "2"  geschrieben werden (funktioniert nicht so, wie gedacht)
4. Daten werden aus der Zeile  "3" eines Arbeitsblattes in die Arbeitsblätter eingelesen (erledigt)
5. Berechnungen werden in den Arbeitsblättern durchgeführt. In der Zelle mit dem Namen "Ergebnis" steht das Resultat entspr. den Daten aus Zeile "3" (z. B. "345") (erledigt)
6. Dieser Wert soll in eine Arbeitsblatt in die Zeile  "3"  geschrieben werden (funktioniert nicht so, wie gedacht)
usw. 

Ich danke für jeden Hinweis - muss doch lösbar sein, oder?

LG Gabriela
PS: Die Berechnungen über die Arbeitsblätter hat einen historischen Hintergrund - u. a. Nachvollziehbarkeit der Berechnungen. Eine Stapelverarbeitung war ursprünglich nicht vorgesehen.

EDIT: Bin nach weiterem Nachdenken selbst drauf gekommen. "Evaluate" heißt das Zauberwort.

Cells(ZeileAuslesen, 2) = Evaluate(Names("Ergebnis1").Value)
Cells(ZeileAuslesen, 5) = Evaluate(Names("Ergebnis2").Value)


Funzt!
Antworten Top
#2
Hallo,

statt


Cells(ZeileAuslesen, 2) = Names("Ergebnis1").Value

und auch ohne Eveluate

probier es so:


Cells(ZeileAuslesen, 2) = Range("Ergebnis1").Value

Das sollte die bessere Option sein.
Gruß Atilla
Antworten Top
#3
Ja - bringt's auch und ist einfacher.
Ich habe das angepasst.

Danke!

LG
Gabriela
Antworten Top


Gehe zu:


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