Berechnung einfügen wenn ein bestimmtes Wort genannt wird

...komplette Frage anzeigen

3 Antworten

Ohne Makro geht das mit dem Szenario-Manager (nur als Hinweis, falls nichts besseres nachkommt). Da musst du ein bisschen rumprobieren, ist mir etwas zu langwierig für heute.

Iamiam 18.06.2011, 00:23

Wenn Du sehr viele solcher Szenarien hast,: ich hab da mal eine riesen-Makro-Kombination geschrieben zum automatischen Speichern, wieder Abrufen und Aktualisieren von umfangreichen Rezepten in getrennten Dateien für verschiedene Rezepttypen. Zum immergleichen Berechnen in einer zentralen Rechendatei.

Hat wunderbar funktioniert, benötigt aber Einarbeitung. Kannst Dir ja vormerken, falls Du's später mal brauchst. (und ich hoffe, es funktioniert auch mit den neuen Versionen!) Das Berechnen ist nicht essentiell, es kann auch was anderes damit gemacht werden, zB ausdrucken oder "nur" vergleichen" (auch über Rechnung)

0
Iamiam 18.06.2011, 14:23
@Iamiam

Hätte für so eine AW nicht mit einem Stern gerechnet, danke schon mal!

zu Deiner Nachfrage: Dann wohl doch ein Makro. Ich hoffe, das heute nacht hinzukriegen, erst mal das Konzept, das mir vorschwebt:

Nehmen wir an, Dein Demo-Bereich sei B3:D9, die aufrufende Zelle sei B1:

Konzept: bennenne das Sz1 als Bereich Sz1 im Rechen-Blatt (Rech)

Stelle dort Deine Formeln ein, aber mit $-Bezügen, zumindest bei den Zeilen(s.später).
erstelle ein Blatt Sze und ein Blatt Szbcp

Wähle den Bereich Sz1 mittels Bereichsnamen aus (der stehe zunächst nur passiv in B1). Schneide ihn aus und setze ihn ein in 'Sze!'B3. Kopiere ihn an die gleiche Stelle in Szbcp.

Zum Bearbeiten schneidest Du ihn in Sze wieder aus und setzt ihn wieder nach Rech Dieses Hin-und her kann man per µ automatisieren, dabei den Text (Bereichsnamen nach freier Wahl) zur Adressierung benützen. Um vor Falschbearbeitungen geschützt zu sein, ein Backup in Szbcp.

Weitere Bereiche werden im Blatt Sze unterhalb des ersten gespeichert. Der Bereichsname sollte auch links neben dem in Sze eingefügten Bereich nochmal stehen, dann kann man auch abrufen (notwendig? weiß noch nicht)

die Bereiche kann man mit gefärbten Zellen umgeben, dann sieht man in Sze gleich, was fehlt, was also in Bearbeitung ist.

Bis -hoffentlich- heut nacht!

0
Iamiam 18.06.2011, 14:25
@Iamiam

Hätte für so eine AW nicht mit einem Stern gerechnet, danke schon mal!

zu Deiner Nachfrage: Dann wohl doch ein Makro. Ich hoffe, das heute nacht hinzukriegen, erst mal das Konzept, das mir vorschwebt:

Nehmen wir an, Dein Demo-Bereich sei B3:D9, die aufrufende Zelle sei B1:

Konzept: bennenne das Sz1 als Bereich Sz1 im Rechen-Blatt (Rech)

Stelle dort Deine Formeln ein, aber mit $-Bezügen, zumindest bei den Zeilen(s.später).
erstelle ein Blatt Sze und ein Blatt Szbcp

Wähle den Bereich Sz1 mittels Bereichsnamen aus (der stehe zunächst nur passiv in B1). Schneide ihn aus und setze ihn ein in 'Sze!'B3. Kopiere ihn an die gleiche Stelle in Szbcp.

Zum Bearbeiten schneidest Du ihn in Sze wieder aus und setzt ihn wieder nach Rech Dieses Hin-und her kann man per µ automatisieren, dabei den Text (Bereichsnamen nach freier Wahl) zur Adressierung benützen. Um vor Falschbearbeitungen geschützt zu sein, ein Backup in Szbcp.

Weitere Bereiche werden im Blatt Sze unterhalb des ersten gespeichert. Der Bereichsname sollte auch links neben dem in Sze eingefügten Bereich nochmal stehen, dann kann man auch abrufen (notwendig? weiß noch nicht)

Bis -hoffentlich- heut nacht!

0
Iamiam 18.06.2011, 17:38
@Iamiam

jetzt hat mir diese Mistsoftware keine Aktion angezeigt, ich hab abgebrochen und wollte Dir den obigen Kommentar von einem fremden Rechner nachschicken, dabei steht er gleich zweimal drin! Nochmal zum Konzept:

die Szenarien sollen am Ende alle untereinander in Sze stehen, jedes in seinem benannten Bereich. Szbcup schaut dann ganz genauso aus, nur ohne benannte Bereiche.

Der Name des Szenarios =Bereichsname muss übrigens doch dastehen, entweder links neben der ersten jeweiligen Zelle oder - wenn man später mal (bei sehr vielen) mit Autofilter drangeht- links daneben in allen Zeilen des Bereichs. Mal sehen.

Kann man vorläufig natürlich auch von Hand machen, aber mit µ wirds bequemer.

Wenn Du die Wahl über eine Gültigkeitsliste anstrebst, sieh ausreichend Leerzellen vor, sonst hast Du größeren Aufwand zum Erweitern der Liste.

Wäre übrigens hilfreich, wenn Du mir die Positionen und Maße der fraglichen Bereiche übermittewln könntest, dann kann ich s gleich passend schreiben.

0
Iamiam 18.06.2011, 17:48
@Iamiam

Deine Bereiche stehen ja schon da, habs überlesen. Aber füge in Rech am Anfang noch eine Leerspalte ein, damit sich alles ab Sp.B abspielt, du brauchst die Spalte A in Sze für die Bereichsnamen. Wenn Dus aber versetzt, könnte es Zirkelbezüge geben. Vorsichtshalber. Kannst die neue Spalte A in Rech ja ausblenden oder sehr schmal machen.

0
Iamiam 18.06.2011, 23:39
@Iamiam

Bereich ausschneiden /anderen einfügen erfordert indirekte Adressierung. Die hat den Nachteil, dass sie nicht selbstanpassend ist, wenn oberhalb/links Zeilen/Spalten eingefügt werden (d.h., mit Klimmzügen schon). Deshalb die Frage: wieviele Beziehungen gibt es zwischen innen und Aussen beim Einzelszenario? Bei nur wenigen kann man das inkauf nehmen, bei vielen müsste ich einen anderen Weg einschlagen.

Wird heute Nacht ohnehin nichts mehr, hat länger gedauert und ich bin unkonzentriert und müde.

0

Hallo lamiam,

deine Idee mit den Szenarien hörte sich gut an. Hab ich gleich ausprobiert. In den Berechnungen sind jedoch Formeln hinterlegt, die erhalten bleiben müssen und zudem einzelne Werte weiterhin veränderbar bleiben müssen nach der Auswahl eines Objekts.

Für weitere Ideen bin ich sehr dankbar.

Iamiam 24.06.2011, 00:22

bist Du mit den etwas verwirrenden Erklärungen und den Makros zurechtgekommen?

Hab bei einer anderen Antwort eben gelesen, dass die Gültigkeitsliste auch in einem anderen Blatt sein darf, wenn man sie als benannten Bereich erstellt!

0

So, jetzt bin ich soweit und fasse das in eine neue Antwort:

Voraussetzungen: in 'Rech!'A1 wird der Name einer Version gezeigt und es existieren:

benannter Bereich ZeigeSz in 'Rech!'E1:J19

benannter Bereich Sz1 in 'Sze!'E1:J19

benannter Bereich Sz2 in 'Sze!'E21:J39

für später: benannter Bereich GüLi irgendwo im Blatt Rech

zwei beschriftete Autoformen fürs holen und fürs aktualisieren, fürs Neu anlegen später noch eine dritte. Zwei Screenshots dieser beiden Blätter sind (hoffentlich) angehängt.

in einem neuen Modulblatt stehen folgende zwei Makros ( µ ):

Sub Sz_holen()

Dim Sel

Sel = Selection.Address  Sheets("Sze").Select  Application.Goto Reference:=Worksheets("Rech").Range("A1").Value  Selection.CopyApplication.Goto Reference:="ZeigeSz"ActiveSheet.Paste        Application.CutCopyMode = FalseActiveSheet.Range(Sel).Select

End Sub

Sub Sz_aktual()

Dim Sel

Sel = Selection.AddressApplication.Goto Reference:="ZeigeSz"Selection.Copy  Sheets("Sze").Select  Application.Goto Reference:=Worksheets("Rech").Range("A1").Value  ActiveSheet.Paste         Application.CutCopyMode = FalseActiveWorkbook.Sheets("Rech").ActivateActiveSheet.Range(Sel).Select

End Sub

Szenariomgr Blatt Rech - (Excel, Berechnung bei Bedingung) Szenariomgr Blatt Sze, Blatt Szbcp nicht gezeigt - (Excel, Berechnung bei Bedingung)
Iamiam 19.06.2011, 18:24

da hat doch diese Mist-Software schon wieder alles kaputt gemacht und mich obendrein am weiterschreiben gehindert. Ich versuchs mal über ein Textfeld laufen zu lassen:

Sub Sz_holen()

Dim Sel

Sel = Selection.Address  Sheets("Sze").Select  Application.Goto Reference:=Worksheets("Rech").Range("A1").Value  Selection.CopyApplication.Goto Reference:="ZeigeSz"

'Unterbrechung, falls wieder was ähnliches passiert

ActiveSheet.Paste        Application.CutCopyMode = FalseActiveSheet.Range(Sel).Select

End Sub

'(noch schaut die Vorschau gut aus) dann das zweite µ:

Sub Sz_aktual()

Dim Sel

Sel = Selection.AddressApplication.Goto Reference:="ZeigeSz"Selection.Copy  Sheets("Sze").Select  Application.Goto Reference:=Worksheets("Rech").Range("A1").Value

'(wieder Unterbrechung zur Begrenzung)

  ActiveSheet.Paste         Application.CutCopyMode = FalseActiveWorkbook.Sheets("Rech").ActivateActiveSheet.Range(Sel).Select

End Sub

'mal sehen, wie das jetzt rüberkommt.

Kommentar zum Makro: da sind zwei Autoformen drin, Knöpfe für holen und aktualisieren. Sie müssen (übers Kontextmenü) den jeweiligen Makros zugewiesen werden. Das geplante µ fürs Neuanlegen eines Bereichs hab' ich noch nicht, aber das ist ja nur ein Zusatz, wenn auch etwas aufwendiger als die beiden anderen.

'wenn Du Rückfragen hast, melde Dich, über einen rein technischen Freundschaftsantrag kann man vielleicht mehr hin-und-herschicken, ich nehm sowas aber nicht ernst und habe auch nicht die Zeit, das zu pflegen.

Noch zur Gültigkeitsliste: Die funktioniert bei mir komischerweise nicht, aber bei Dir scheint es ja zu gehen. Fürs aktualisieren ist die Liste GüLi notwendig, da hier der neue Eintrag ausgelesen werden muss. (..Range("GüLi").Cells(1).End(xlDown).value)

'Wie schon gesagt, diese Liste sehr lang vorsehen, Du wirst bei zwei Szenarien nicht haltmachen!

0
Iamiam 20.06.2011, 23:49
@Iamiam

jetzt noch das Makro fürs neu erstellen (am Ende jeder Zeile 'xx xx_)

Sub SzNeuanlg() 'xx xx

Dim Sel, NeuSz 'xx xx_

 Sel = Selection.Address 'xx xx_ NeuSz = Range("GüLi").Cells(1).End(xlDown).Value 'xx xx_ Range("ZeigeSz").Copy 'xx xx_ Sheets("Sze").Select 'xx xx_ Range("D60000").End(xlUp).Offset(20, 0).Select 'xx xx_ Selection.Value = NeuSz 'xx xx_ Selection.Offset(0, 1).Select: ActiveSheet.Paste 'xx xx_

ActiveWorkbook.Names.Add Name:=NeuSz, RefersToR1C1:=Selection '

0
Iamiam 20.06.2011, 23:55
@Iamiam

im obigen steht zumindest alles drin ausser den Zeilenumbrüchen, die immer nach dem x_ erfolgen.

An die normale Textzeile (die mit .Add Name:=...) musst Du noch anhängen:

 ActiveWorkbook.Sheets("Rech").Activate 'xx xx_ ActiveSheet.Range(Sel).Select 'xx xx_

End Sub

Viel Erfolg bei Deiner Präsentation!

0

Was möchtest Du wissen?