Microsoft Excel

Herbers Excel/VBA-Archiv

VBA - Formel ändern wenn Zelle nicht leer

Betrifft: VBA - Formel ändern wenn Zelle nicht leer von: Thomas
Geschrieben am: 15.10.2014 15:25:28

Hallo,

ich brauch bitte Hilfe, weil ich an folgender Aufgabenstellung hänge:
Ich verwende in Spalte N folgende Formel:
=WENN($M2="";"";INDEX(Preismatrix!$E$5:$E$200;VERGLEICH($M2;Preismatrix!$D$5:$D$200;0)))
Nun muss ich diese Formel per Buttondruck von E5:E200 in F5:F200 ändern und zwar nur für die Zeilen, in der die Zelle links (also M) NICHT leer ist. Die Spalte wird kontinuierlich gefüllt. Es gibt also keine Lücken.
Kann mir bitte jemand sagen, wie der entsprechende Code dafür aussehen muss.

Vielen Dank
Thomas

  

Betrifft: Na, das ist ja wohl recht seltsam, ... von: Luc:-?
Geschrieben am: 15.10.2014 23:02:52

…Thomas!
Warum Button und VBA? Kannst du denn für diese Variante keine 2.Fml anlegen (könnte man ja auch besser beide Ergebnisse vgln!) oder das von einem zusätzlichen Kriterium abhängig machen? Das ginge sogar unter Bezug auf das Ergebnis der 1.FmlVariante. Ansonsten hätte das ja wohl einen Touch von (manueller) Willkür.
Gruß, Luc :-?


  

Betrifft: AW: Na, das ist ja wohl recht seltsam, ... von: Thomas
Geschrieben am: 16.10.2014 16:01:53

Hallo Luc,

das ist mit schon klar, das die Profis da die Nase rümpfen. Für mich scheint das aber der einfachste Weg zu sein.
Ich habe in Spalte "E" errechnete Geldbeträge stehen die ich in Spalte N übernehmen muss in Abhängigkeit von Spalte M. Einmal im Jahr ändern sich aber in Spalte E die Geldwerte. Deshalb kopiere ich die "alten" Werte in F um diese zu sichern. Und auf diese "alten" Werte müssen alle Zellen, die bis dahin gefüllt waren zugreifen. Ansonsten würde ich ja mit den neuen Beträgen rechnen und alle bisher aufgelaufenen wären ab diesem Zeitpunkt falsch. Deshalb muss ich die Formel von E nach F zu einem Termin umstellen und nur da, wo bereits Spalte M gefüllt ist.
Ich hoffe, ich hab das halbwegs verständlich ausgedrückt und du kannst meine herangehensweise nachvollziehen?!

VG
Thomas


  

Betrifft: Na, das geht doch ganz einfach, indem du vor ... von: Luc:-?
Geschrieben am: 16.10.2014 16:55:58

…E eine neue Spalte einfügst, Thomas,
und die dann mit den neuen Werten füllst. Alle Fmln, die sich zuvor auf E bezogen, beziehen sich jetzt automatisch auf F.
Gruß, Luc :-?


  

Betrifft: AW: so einfach scheint es dann doch nicht von: Thomas
Geschrieben am: 16.10.2014 19:12:02

Wenn ich das so mache, wie du beschrieben hast, ändern sioh alle Formeln auf F. Soweit klar. Nur möchte ich eben nicht alle Formeln ändern, sondern nur die, wo in Spalte M bereits ein Eintrag drin steht. Ideen sind gern willkommen


  

Betrifft: Aha, ein Teil der Fmln soll sich weiterhin auf ... von: Luc:-?
Geschrieben am: 20.10.2014 12:56:21

…den EingabeBereich beziehen, Thomas,
während andere sich auf den neuen Standort der alten Daten des EingabeBereichs beziehen sollen. Dann müssen beide Spalten ja unbedingt schon so angelegt sein und die Fmln, die sich auf die alten Eingabe­Daten beziehen sollen, müssen sich von vornherein auf die Spalte F statt E beziehen, denn es wird ja immer alte und neue Daten geben. Das wäre nur bei ErstEingabe anders, aber dafür muss man ja nicht solche Verrenkungen anstellen, sondern kann das in den betroffenen Fmln von vornherein berücksichtigen, zB so: =WENN(ISTLEER(F1);E1;F1) oder, falls das nicht geht: E1*ISTLEER(F1)+F1
Wenn das alles nicht passt, muss entweder eine andere BlattStruktur her oder du änderst den Bezug auf E in den betroffen Fmln per Suchen und Ersetzen einmalig manuell. Ein Makro für nur 1maligen Gebrauch ist ZeitVerschwendung.
Gruß, Luc :-?


 

Beiträge aus den Excel-Beispielen zum Thema "VBA - Formel ändern wenn Zelle nicht leer"