vor dem Speichern Festwert in Zelle eintragen
#1
Hallöchen   :43:

ich benötige mal eure Hilfe, VBA ist nicht meine Welt.

Ich habe eine Arbeitsmappe mit aktuell 130 Registerblättern. Ab dem 7. Registerblatt (natürlich von links gezählt) möchte ich vor dem Speichern in die Zelle C8 (in allen Registerblättern ab dem 7., egal wie viele Registerblätter enthalten sind) eine Formel eintragen lassen, egal was dort vorher eingetragen war. Gedacht als Sicherheit, falls jemand in einem der ganzen Registerblättern diese Zelle mit einem anderen Wert versehen hat.

Ich hoffe ihr könnt mir helfen, für einen VBA Programmierer sicher nur eine Kleinigkeit  :19:
Antworten Top
#2
Moin!
Warum nimmst Du nicht aus allen anderen Zellen außer C8 den Sperrvermerk heraus und schützt die Blätter?

Fragt sich Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Hallo Ralf,
danke schon mal für die Rückmeldung.

Für den Zeitraum, wo die Datei geöffnet ist, soll eine temporäre Wertveränderung möglich sein. Soweit mir bekannt ist, würde bei einer gesperrten Zelle aber keine Eintragung bzw. Veränderung des Zelleninhalts möglich sein oder gibt es da eine Möglichkeit, die ich übersehen habe?

Gruß

    Kalliseppell
Antworten Top
#4
Hallöchen,

laut Deiner Aufgabe soll in C8 eine Formel eingetragen werden. Wenn Du bei der Zelle "gesperrt" entfernst, ist diese auch nicht mehr gesperrt und Du kannst die Formel eintragen.

Zitat:Für den Zeitraum, wo die Datei geöffnet ist, soll eine temporäre Wertveränderung möglich sein.
Wenn der temporäre Zeitraum den gesamten Zeitraum umfasst, in dem die Datei offen ist, dann muss man die nicht unbedingt sperren Smile Ansonsten müsstest Du das auch mal genauer definieren. Was meinst Du nun mit "Wertveränderung"? In der Aufgabe hast Du nur von einem Formeleintrag in C8 … geschrieben:

Zitat:möchte ich vor dem Speichern in die Zelle C8 (in allen Registerblättern ab dem 7., egal wie viele Registerblätter enthalten sind) eine Formel eintragen lassen, egal was dort vorher eingetragen war. Gedacht als Sicherheit,

Eventuell muss es dann genau anders rum sein und die Zelle C8 wäre zur "Sicherheit" zu schützen, damit keiner dort was ändern kann? Ich wüsste jetzt nicht, was eine Formel alleine für eine Sicherheit bieten soll.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Moin Moin.

ich verssuche es noch einmal anders zu beschreiben.

In C8 soll ein Rabatt ermittelt werden (über eine Formel), der standardmäßig immer vorgegeben ist. ABER im Einzelfall könnte man den Rabatt auch temporär verändern, um für diesen Einzelfall ein anderes Gesamtergebnis zu erhalten. Jedes Registerblatt (ab Registerblatt 7) definiert eine andere Bestellnumer mit einem eigenen Preis und ggf. auch einem eigenen Rabatt.

Ich möchte keine veränderbare Zelle, egl ob temporär oder dauerhaft, gesperrt haben.

Hier meine plumpe Formel in Worten ausgedrückt:

Vor dem Speichern in allen Registerblättern (ab dem 7 Registerblatt) Zelle C8 mit Formel "XY" versehen.

Ich hoffe diese Version der Erläuterung ist nun zielführend.

Da ich kein VBA kann, ich aber zumindest schon mal rausgefunden habe, dass es vor dem speichern möglich ist eine Programmierung einzusteuern, erhoffe ich hier einen findigen Helfer zu finden, der mein Problem lösen kann.

Danke und viele Grüße

    Kalliseppell
Antworten Top
#6
Moin!
Vorweg habe ich ob der >100 gleich aufgebauten Tabellenblättern Bauchschmerzen!
So etwas sollte man immer vermeiden.
Egal!
Grobes Schema:
Microsoft Excel Objekt DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
Dim i& 
For i = 7 To Worksheets.Count 
  Worksheets(i).Range("C8").Formula = "=DeineFormel" 
Next 
End Sub 
 

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
PERFEKT!!!  :23:

So schnell eine Lösung zu bekommen ist echt der Hammer, vielen lieben Dank.

Musste noch hinter Formula ein Local einfügen, dann hat Excel auch meine Formel gefressen, Google hat da mal wieder schnell ausgeholfen.

Zum Thema > 100 Tabellenblätter... eine andere Darstellungsart ist mir bei diesem Thema leider nicht eingefallen. Ich habe aber das 1. Tabellenblatt als Übersicht um zu dem jeweiligen Tabellenblatt hinspringen zu können, dadurch ist das Handling für mich zielführend.


Viele Grüße

    Kalliseppell
Antworten Top
#8
Auch Hallo,

(18.09.2019, 15:57)Kalliseppell schrieb: Musste noch hinter Formula ein Local einfügen, dann hat Excel auch meine Formel gefressen, Google hat da mal wieder schnell ausgeholfen.

ich kenne deine Formel zwar nicht, würde dir aber trotzdem empfehlen die englische Schreibweise zu verwenden. Wenn Du diese nicht wissen solltest, kannst du Sie ganz einfach herausfinden. Öffne das Direktfenster mit der Tastenkombination STRG + G, gebe in dieses

?Worksheets(7).Range("C8").Formula

ein und drücke Return. Jetzt hast Du die englische Schreibweise.

Ein paar Infos findest du hier
https://www.online-excel.de/excel/singsel_vba.php?f=66
https://www.online-excel.de/excel/singsel_vba.php?f=67

Beachte den dritten Kasten im zweiten Link.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#9
Vielen lieben Dank, ich werde mir die Empfehlung zu Herzen nehmen und mal gucken ob ich das auf alles anwenden kann (auch zeitlich).

Zum Glück kann man ja nur schlauer werden. Ich bin für jeden Hinweis, Tipp und ähnlichem sehr dankbar.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste