Registriert seit: 27.07.2016
Version(en): 2013
22.03.2017, 14:03
(Dieser Beitrag wurde zuletzt bearbeitet: 22.03.2017, 14:03 von Rjinxil.)
Hallo
ich habe folgendes Problem:
Feld A1 soll feld A2 entsprechen solange A2 nicht leer ist.
für den Fall, wenn A2 leer ist soll A1 den letzten wert von A2 anzeigen bevor es leer war.
nochmal zur Verdeutlichung:
A2 enthält eine Funktion die entweder "" oder einen Namen zurückgibt.
im falle wenn es ein Name ist wird dieser in A1 kopiert.
wenn sich A2 in "" ändert, bliebt der name solange in A1 bis A2 einen neuen namen hat.
hoffe ich konnte mich verständlich ausdrücken
danke an Hilfswillige im voraus
Registriert seit: 14.04.2014
Version(en): Office 2013/2016/2019/365
Hi, keine Ahnung für was dies gebraucht wird? nur etwas widersprüchlich "Feld A1 soll feld A2 entsprechen solange A2 nicht leer ist.""wenn sich A2 in "" ändert, bliebt der name solange in A1 bis A2 einen neuen namen hat."Ich habe das jetzt so gelöst (falls mal wieder A1 angezeigt werden sollte) -> Wenn A2 leer ist -> rechtsklick auf A2 danach einen Doppelklick
merkdirwasnichtdaist.xlsm (Größe: 19,25 KB / Downloads: 10)
lg Chris Feedback nicht vergessen. 3a2920576572206973742064656e20646120736f206e65756769657269672e
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo, ich habe das viel simpler verstanden: Code: Private Sub Worksheet_Calculate() If Range("A2") <> "" Then Range("A1") = Range("A2") End Sub
Code in das Klassenmodul der Tabelle
Gruß Atilla
Registriert seit: 10.04.2014
Version(en): 2016 + 365
23.03.2017, 08:37
(Dieser Beitrag wurde zuletzt bearbeitet: 23.03.2017, 08:37 von Rabe.)
Hi, (22.03.2017, 19:40)atilla schrieb: ich habe das viel simpler verstanden: wenn aber, nachdem in A2 etwas stand, 5x in A2 leer eingetragen wird, soll A1 so lange auf dem alten Stand bleiben, bis in A2 wieder was neues eingetragen wird:Ok, ich glaube, das geht doch. A2 = Apfel => A1 = Apfel A2 = "" => A1 = Apfel A2 = "" => A1 = Apfel A2 = "" => A1 = Apfel A2 = "" => A1 = Apfel A2 = "" => A1 = Apfel A2 = Kirsche => A1 = Kirsche Aber bei mir wird nichts automatisch geändert, ich muß das Makro manuell im Editor starten. Klassenmodul der Tabelle ist doch bei Tabelle1 das rechte Fenster?
Registriert seit: 13.04.2014
Version(en): 365
23.03.2017, 08:59
(Dieser Beitrag wurde zuletzt bearbeitet: 23.03.2017, 08:59 von BoskoBiati.)
gelöscht, Anfrage falsch verstanden!
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Ralf, der TE schreibt: Zitat:A2 enthält eine Funktion Ich habe das so interpretiert, dass dort eine Formel drin ist, die Ihren Wert von anderer Stelle erhält. z.B. so etwas: =Wenn(B1="";"";B1) Um eine Veränderung der Zelle A1 zu sehen, muss in diesem Fall der Wert in B1 verändert werden, denn erst dann wird die Formel neu berechnet und das Calculate springt an. Warum dann nicht direkt auf B1 reagieren, weil ich nicht weiß, welche Formel der TE . Aber es kann auch alles ganz anders kommen. Alle Angaben sind hier ohne Gewähr.
Gruß Atilla
Registriert seit: 27.07.2016
Version(en): 2013
Hallo danke an alle antworten, und an die die sich zeit genommen haben mir zu helfen da primär die frage aufgekommen ist, wozu ich diese Funktion brauche liegt am xml import Dateiupload bitte im Forum! So geht es: Klick mich!ich habe ein sheet mit vielen xml imports was sich automatisch aktualisiert. da es jedoch viele importe sind dauert das laden sehr lange. die felder C bis G werden aus einer xml ausgelsen und es soll aussehen wie es in der ersten Zeile ist die zweite zeile zeigt jedoch leere felder da es lange dauert bis das ganze geladen ist. das ganze aktualisert sich auch relativ oft so dass ca 1/3 des Dokuments oftmals so aussieht wie Zeile 32 mein Lösungsansatz war die ganze funktion zu verschieben und die felder C-G auf die entsprechenden felder der funktion zu verweisen. was jedoch nur sinn macht wenn man vorher überprüfen kann ob diese leer sind oder nicht. weil wenn man bedingungslos alles kopiert, habe ich den selben Salat. jedoch meinte ich mit funktion einfach eine "formel" für das feld wie zb =if(Cell("b",A2), ,Cell("contents",A2)) =if(cell A2 is blank), keep old value of A1 (if true), take value of A2 (if false)
die funktion von Chris funktioniert ganz gut. vielen dank für die arbeit. wäre es ein problem wenn man diese auf ca 400 felder bei google docs nutzen würde oder wäre das zu viel Rechenleistung? am liebsten wäre mir wie gesagt eine formel die ich einfach in das feld schrieben kann ohne vba editor
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo, Dein Vorhaben geht nicht mit einer Formel. Es muss VBA eingesetzt werden. Wenn VBA eingesetzt wird, würde ich es für diesen Fall nicht unbedingt so aufwendig machen wie Chris. Es müsste so etwas reichen: Code: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then If Target.Count = 1 Then Application.EnableEvents = False If Target <> "" Then Target.Offset(0, 1) = Target Application.EnableEvents = True End If End If End Sub
Der Code kommt in das Code Fenster der Tabelle. Was macht er: -er reagiert auf Änderungen in Spalte A -wenn in einer Zelle in Spalte A ein Wert steht, wird er in die Nachbarzelle in Spalte B übernommen -wird der Wert gelöscht in Spalte A, ändert sich in Spalte B nichts
Gruß Atilla
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
es geht auch mit Formeln.
Stelle unter Optionen | Formeln die maximale Iterationszahl auf 1 und schreibe anschließend in A1 die Formel
=WENN(A2<>"";A2;A1)
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Rjinxil
Registriert seit: 27.07.2016
Version(en): 2013
(25.03.2017, 06:51)schauan schrieb: Hallöchen,
es geht auch mit Formeln.
Stelle unter Optionen | Formeln die maximale Iterationszahl auf 1 und schreibe anschließend in A1 die Formel
=WENN(A2<>"";A2;A1) vielen dank. das war die lösung für das problem. die Formel sieht jetzt so aus: =if((cell("type",A1)="b"),Cell("contents",A2),Cell("contents",A1))und funktioniert einwandfrei.danke an alle die mitgeholfen haben
|