WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Macro für Formel in Zelle bei Excel2003 oder? (http://www.wcm.at/forum/showthread.php?t=153661)

Excalibur33 20.12.2004 17:31

Macro für Formel in Zelle bei Excel2003 oder?
 
Diesmal selber kleines Problem.
Spalte A: Wird Artikelnr. eingetragen dann
Spalte B: Formel soll erhalten bleiben(=Sverweis)
Wenn Spalte A: =leer dann
Spalte B: soll Text möglich sein
klar, wenn ich in Spalte B Text eintrage, kille ich die Formel raus
ich habe also in Spalte B die Sverweis-Formel drin, wobei ich bei Bedarf einen Text eintragen möchte. Geht dies nur mit Macro,oder kann ichs mit der:>
=Wenn A=>0 dann B= (Formel)ansonsten "Text blabla"
Wobei der Text frei gestaltbar sein sollte!
mfg Excal

flinx 20.12.2004 22:25

Wenn-Bedingung sollte funktionierern, musst halt den einzutragenden Text in die Wenn-Bedingung schreiben.

jak 21.12.2004 10:42

=WENN(A1;FORMEL;TEXT)
z.B.
=WENN(A1;A1+1;"Diese Zelle ist Leer")

Damit der Text beliebig ist musst du ihn nur ändern. Wenn du bei allen Zellen den selben Text haben willst, ist es am besten du schreibst ihn z.B. in C1 und machst dann:
=WENN(A1;FORMEL;$C$1)

Jak

Excalibur33 21.12.2004 11:05

@flinx
Ist schon klar, damit habe ich allerdings nur einen! Standard-text. Brauche aber freie Editierbarkeit.
Wie schaut es mit Macro aus,
Autoausfüllen
Sub
if RANGE (A23:A45)= Eingabe: Div; RANGE(B23:B45) = Zellenformat Text
other input= Formel(Sverweis)
Sub End
Will mit dem Macro das Zellenformat auswählen; also entweder Text-eingabe in Spalte B: wenn Spalte A=Eingabe: Div, oder die Formel bleibt drin
mit dem Macrorecorder ist das nicht so leicht hinzukriegen, beim Schreiben leichter, da Debugger die Fehler anzeigt.
@jak
Du meinst, die Formel in eine weitere Spalte(C), in B:B die erste WENN- Bedingung: WENN(A23:A45=Div;"Text";C23:c45!), und den Sverweis in C:C ?
mfg Excal

jak 21.12.2004 12:30

Du kannst es ja so machen, das du in A die Daten, in B die Formel und in C den Alternativtext hast, dann geht's mit
=WENN(A1;FORMEL;WENN(C1<>"";C1;$D$1))
Wenn du diese Formel "runterzeihst" (kenn den korrekten Ausdruck nicht), nimmt er immer den Wert aus Spalte C und wenn Cx leer ist einen Standardwert, den du in D1 einträgst.

Jak

Excalibur33 21.12.2004 18:08

Ist das gleiche,wie wenn ich den erforderlichen Text als Artikel mit Bezeichnung "Text", bzw. "Text2" anlege, und die Formel in B:B lasse. Damit hätte ich verschiedene Texte zur Verfügung. Müsste allerdings jeweils immer den Text als Artikel anlegen, somit wird das Blatt immer grösser. Ist nicht der Sinn der Sache. Soll bei Rechnung als freier Text fungieren.
Macro wär die elegantere Lösung
mfg Excal

jak 21.12.2004 19:02

Zitat:

Müsste allerdings jeweils immer den Text als Artikel anlegen, somit wird das Blatt immer grösser
Was meinst du damit?
Wieso wird die Tabelle immer größer?

Bei meiner Lösung gibst du einen Standardtext ein, und überall wo ein anderer Text stehen soll gibst du den anderen text ein. Wie soll es einfacher/mit weniger Zellen gehen?

Jak

Excalibur33 21.12.2004 20:07

Zitat:

Wieso wird die Tabelle immer größer?
Ganz einfach, da pro Rechnung durchschnittl. 3 Zeilen mit versch. Text vorhanden sind. Die Rechnung wird per Macro ins Blatt "Archiv" gespeichert. Wenn ich den Text nicht als Artikel anlege, kann ich ihn so nicht speichern. Wenn ich in der Rechnung die Spalte "B" mit Text überschreib, ist die Formel weg. Die nächste Rechnung hat andere Texte, ergo wird die Tab. immer grösser nur dadurch, oder ich muss immer wieder die Formel neu reinkopieren.
mfg Excal

flinx 21.12.2004 22:15

Ich versteh dein Problem leider immer noch nicht.
Ad Freie Editierbarkeit:
Du kannst den Text im Wenn doch Editieren. Ist doch egal welcher drinnen steht, wennst einen anderen brauchst, schreibst ihn halt hinein (ins Wenn).
:confused:
Alternativ:
Schreib deinen Text einfach in die B Zelle und lass die Formel per Makro in die fehlenden B Zeilen schreiben.
:confused: :)

Excalibur33 21.12.2004 22:55

Das Stimmt! Ich könnte Editieren, aber , mein Kollege soll damit arbeiten, wenn er allerdings nicht auf die Formelzeile oben springt, ist die Formel futsch.
ad 2: es sind nicht immer die gleichen Zeilen, die Text benötigen.
ad 3: Wird die Artikelnr. und Menge gespeichert, dadurch kann ich die archivierte Rechnung nochmal anschauen bzw ausdrucken. Wenn ich in der WENN-Formel den Text editier, erscheint dann immer der letzt-eingetragene Text!
Ist doch nicht soo einfach wie ich dachte.
mfg Excal

flinx 21.12.2004 23:06

Zitat:

ad 3: Wird die Artikelnr. und Menge gespeichert
:confused:
Warum speicherst du nicht den Wert der Zelle ins Archiv sondern die Formel?

Was spricht eigentlich dagegen, den gewünschten Text dann in $C$1 einzutragen, wie von Jak vorgeschlagen?

Excalibur33 22.12.2004 08:47

Zitat:

Original geschrieben von flinx
:confused:
Warum speicherst du nicht den Wert der Zelle ins Archiv sondern die Formel?

Geschieht ja: ArtNr. ist in A:A
Formel in B:B(gibt bei der Rechnung die Art.-Bezeichnung ein) ;Stückzahl in C:C;
Preis(Formel)D: D
Geb ich in Rechnung A:A die ArtNr. ein, erscheint in B:B die Bezeichnung(durch die Formel). Wenn ich da in der WENN-Formel den TEXT reinschreib, hab ich beim Wiederaufruf (einer alten Rechn.)den letzten Text(der in der Formel steht),und nicht den vorher verwendeten.Es wird nur A:A,C:C und E:E(=Rabatt) gespeichert.
mfg Excal

flinx 22.12.2004 10:02

Zitat:

Wenn ich da in der WENN-Formel den TEXT reinschreib, hab ich beim Wiederaufruf (einer alten Rechn.)den letzten Text(der in der Formel steht),und nicht den vorher verwendeten. Es wird nur A:A,C:C und E:E(=Rabatt) gespeichert.
Wenn du B:B nicht speicherst, dann wird ist IMHO nie rekonstruierbar, was du da für einen Text eingibst/eingegeben hast. Egal, ob du den Text direkt in die Zelle schreibst oder in die Wenn-Bedingung oder Sonstwie.

Excalibur33 22.12.2004 11:36

Zitat:

Original geschrieben von flinx
Wenn du B:B nicht speicherst, dann wird ist IMHO nie rekonstruierbar, was du da für einen Text eingibst/eingegeben hast. Egal, ob du den Text direkt in die Zelle schreibst oder in die Wenn-Bedingung oder Sonstwie.
Das IST mein Problem, wenn ich nämlich B:B auch speichere, wird das Blatt noch grösser und ist umständlich zu handhaben.
Wenn ich allerdings die Möglichkeit habe, alternativ die Formel in B:B zu belassen, oder bei Eingabe von "DIV" in A:A den Bereich B:B zu editieren und ins Archiv speichern, hab ich das was ich brauch.
So wie es ausschaut, gehts nur mit nen Macro.
Das Speichern per Macro und (oder)der Wiederaufruf funken tadellos. Nur bei DEM Problem weiss ich nicht, wie ich das Macro schreiben(ansetzen) soll.
Was ist, wenn ich dem B:B den Zellen-Name "Formel" zuweise, und nur bei Eingabe von "DIV" in A:A wird aus der jeweiligen Zelle in B:B Zelle "Text" ?
Dann könnte ich nur(WENN A:A=DIV;B:B) speichern
mfg Excal

jak 22.12.2004 12:02

Wenns nur um die größe/Handhabung geht, kannst du die Spalte(n) ja ausblenden.

Als Makro hättest du eine Schleife (for each ... next) die alle Zellen in Spalte A durchgeht, und dann in B das richtige reinkopiert.

Jak

Excalibur33 22.12.2004 18:41

Ich glaub ich habs:
Da ich gern mit Macros arbeite, hab ich auch eines fürs Clearen bei ner neuen Rechnung. Ich häng zus. ins Macro rein:
Range("B23:B45").Formula="=WENN(A:A>0;Sverweis(Rec hnung!A23;Artikel!A:F;2;0))"
Damit schreibt sich die Formal autom. wieder rein, wenn ich eine neue Rechnung schreiben will(wird per Macro aktiviert), und speichere zusätzlich den Bereich B23:B45 mit:
step 0 to 23, i=0+1,Cells(2,23)
next i
if Range ("B23:B45"). i = " " then Archiv! Cells(50,73).Value
mfg Excal


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag