Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Erklärung gesucht

Betrifft: Erklärung gesucht von: Sadowski
Geschrieben am: 02.05.2014 14:46:19

Hallo,

suche eine Erklärung für folgendes Verhalten.

Userform mit drei Textboxen

TB1 ist über Controlsource mit einer Zelle verbunden

Bei Klick auf TB1 wird in TB2 die Zelladresse angezeigt und in TB3 die Formel der Zelle. In TB3 soll jetzt die Formel verändert werden können und in die Zelle geschrieben werden.

Alle Versuche direkt in die Zelle zu schreiben, schlugen fehl.

Durch Hilfe aus einem anderen Forum ist dann herausgekommen, das die geänderte Formel in TB3 in TB1 geschrieben werden muß.

Die Frage ist nur,warum ist das so und was passiert da.

Hintergrund ist, wenn ich das in einer Klasse für mehrere Textboxen mache, funktioniert dies nicht wirklich. Mal funktioniert es, manchmal nicht.

Da mir aber nicht klar ist,was da passiert, kann ich auch nicht nach dem Fehler suchen.

Gruß Ewald

  

Betrifft: AW: Erklärung gesucht von: Tino
Geschrieben am: 02.05.2014 16:08:25

Hallo,
ich würde nicht mit Controlsource arbeiten,
wenn Du TB1 änderst wird der Wert aus TB1 in die Zelle geschrieben und die Formel ist hin.
Eine Formel musst Du mit Range().Formula... in die Zelle schreiben.

Gruß Tino


  

Betrifft: AW: Erklärung gesucht von: Ewald
Geschrieben am: 02.05.2014 17:25:26

Hallo Tino,

das ist bewußt so gewollt, in der TB1 soll oder kann geändert werden,wenn nur Werte drin stehen.

Zeigt TB3 eine Formel an,soll oder kann sie dort geändert werden.

Auch aus anderen Gründen wird die Controlsource gebraucht. Soll aber jetzt nicht das Thema sein.

Die Frage ist eigentlich nur wie kann ich den Text aus TB3 in eine Zelle als Formel schreiben.

Alle versuche dies direkt zu tun, funktionierte nicht.

Der Ausweg war TB3 in TB1 zu schreiben, dies funktioniert auch einwandfrei.

Nur wenn ich das gleiche aus einer Klasse heraus ausführe, paßt es nicht immer.

Gruß Ewald


  

Betrifft: AW: Erklärung gesucht von: Tino
Geschrieben am: 02.05.2014 18:06:42

Hallo,
naja ob dies wirklich so gewollt ist in TB1 hast Du durch Controlsource den Wert aus der Zelle.
Wenn du nun mit Range(TB2).FormulaLocal = TB3 die Formel in die Zelle schreibst und
nun in TB1 eine Änderung machst wird diese Formel wieder durch den Text in TB1 überschrieben.

FormulaLocal kommt auf die schreibweise der Formel an,
gibt noch die anderen FormulaR1C1Local, FormulaR1C1...

Gruß Tino


  

Betrifft: AW: Erklärung gesucht von: Ewald
Geschrieben am: 02.05.2014 19:59:26

Hallo Tino,

das ist ja genau das Problem, das Schreiben der Formel in die Zelle funktioniert nicht, habe wirhlich alle Möglichkeiten probiert.

Das Überschreiben einer Formel in TB1 ist nicht möglich, wird auf TB1 geklickt,wird in TB3 die Formel angezeigt.Ist das erste Zeichen in TB3 gleich "=", wird TB1 für die Eingabe gesperrt.

In TB3 kann zwar die Formel überschrieben werden, nur ist dies in einer Tabelle genau so.

Gruß Ewald


  

Betrifft: AW: Erklärung gesucht von: Tino
Geschrieben am: 02.05.2014 20:08:45

Hallo,
wie schon geschrieben,
dass problem ist das der Zellwert durch die Controlsource überschrieben wird und
dann die Formel in der Zelle dahin ist.

Hier mal eine Variante ohne Controlsource
https://www.herber.de/bbs/user/90442.xlsm


Gruß Tino


  

Betrifft: AW: Erklärung gesucht von: Ewald
Geschrieben am: 03.05.2014 11:17:19

Hallo Tino,

hast recht, das Problem ist Controlsource und Formel, konnte das jetzt auch in der Tabelle feststellen.

Excel merkt sich wohl ob eine Zelle über ControlSource verbunden war oder ist.Selbst wenn die Userform nicht angezeigt wird,passiert in der Tabelle folgendes.

Zelle B3 war mal Controlsource (beim schließen der Userform werden die Textboxen gelöscht und damit eigentlich auch die ControlSource)und hat die Formel "=A20", der Wert aus A20 wird angezeigt. Ändere ich in A20 den Wert, wird der Wert in B3 angezeigt, aber die Formel ist weg.

Das ist natürlich ein dicker Hund und war mir so nicht bekannt.

Daraus ergibt sich jetzt aber ein anderes Problem, anders wie in deiner Mappe sind die Textboxen nicht fest und werden beim Start erst erzeugt.Dies wäre aber auch noch kein Problem.

Dann aber soll die Bearbeitung in zwei Richtungen gehen, wird in Userform geändert,Anpassung in Tabelle, aber auch umgekehrt.

Versuche mal die Datei hier hochzuladen

https://www.herber.de/bbs/user/90451.xlsm

Gruß Ewald


  

Betrifft: AW: Erklärung gesucht von: Tino
Geschrieben am: 03.05.2014 11:59:35

Hallo,
dann baue dir doch in die Tabelle ein Worksheet_Change Event ein.
Dann könntest Du auf Eingabe in der Tabelle im Bereich reagieren.

Gruß Tino


  

Betrifft: AW: Erklärung gesucht von: Ewald
Geschrieben am: 04.05.2014 12:59:02

Hallo Tino,

habe es hinbekommen, funktioniert jetzt wie gewünscht.

Gruß Ewald