Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1400to1404
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dynamisches Sperren von Zeilen via VBA

Dynamisches Sperren von Zeilen via VBA
16.01.2015 11:23:51
Zeilen
Hallo zusammen!
Brauche Hilfe / einen Quellcode fürs Sperren der gespeicherten Daten in Excel.
Ich habe en Excel Sheet mit zehn Kriterien je Zeile, hier beginnend mit der Zeile 4 und Spalte B, also werden hier Werte in Zellen B4-K4 erfasst, s. Datei: https://www.herber.de/bbs/user/95046.xlsx
Wenn der letzte Wert in der Zeile eingegeben ist (hier K4), wird die Datei geschlossen, dabei soll ein Automatismus greifen dass die eingegebenen Werte B4 bis K4 gesperrt werden und nicht mehr überschrieben werden können.
Die Datei wird mehrmals am Tag aufgerufen und mit Daten gefüttert. Das heißt, beim nächsten Aufruf werden bsp. die Felder B5 bis K5 ausgefüllt usw. Die Felder B4-K4 bzw. alle drüber liegenden Zeilen müssen dabei bereits gesperrt sein.
Der Code müsse hier also für alle Zeilen gelten, begrenzt durch Spalten B-K. Ein Schmankerl wäre, wenn der Mechanismus vor dem Sperren bzw. vor dem Schließen der Datei noch prüfen würde, ob alle Zellen in der jeweiligen Zeile ausgefüllt sind mit entsprechender Fehler- bzw. Hinweisanzeige, dass das bestimmte Feld noch leer ist und ausgefüllt werden müsse.
Hoffe auf Eure Hilfe, ich bin in Sachen VBA leider gar nicht bewandert.
Gruß,
Ed

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamisches Sperren von Zeilen via VBA
16.01.2015 22:46:16
Zeilen
Hi Eduard
grundsätzlich ist das kein Problem.
Aber...
Ich fülle jetzt C4-K4 aus, lasse B4 "unberührt", trage keinen Wert ein.
Ein Hinweis, dass in B4 noch was eingetragen werden muss, interessiert mich nicht.
Ich speicher + schließe die Datei.
Der Code sperrt nun vorm Speichern die Zellen B4-K4.
Nach Öffnen der Datei kann in B4 nix mehr eingetragen werden, obwohl der Eintrag in B4 noch fehlt.
Was soll in so einem Fall passieren?
Ciao
Thorsten

AW: Dynamisches Sperren von Zeilen via VBA
17.01.2015 11:01:51
Zeilen
Hi, Thorsten.
Du hast vollkommen recht. Dies ist auch ein wichtiges Thema, ich gestehe ich hab´s in der Beschreibung vernachlässigt. Im Prinzip sollen die fehlenden Einträge nicht nur mit einem Hinweis abgegolten werden, sondern als Pflichtfelder behandelt werden. Sprich am besten sollte die Datei solange nicht geschlossen werden können, bis alle Pflichtfelder je Eintrag -also jeweils alle 10 Zellen- ausgefüllt worden sind.
Kann dieser Mechanismus auch noch ins VBA Gerüst eingebaut werden?
Danke schon mal im voraus!
Gruß
Eduard

Anzeige
AW: Dynamisches Sperren von Zeilen via VBA
17.01.2015 12:57:13
Zeilen
Hi Eduard
Du hast auch nicht bedacht, dass es ein MUSS ist, dass die Makros der Datei aktiviert werden.
Ich habs mit eingebaut.
Das heißt, werden die Makros beim Start der Datei NICHT aktiviert, wird nur ein Tabellenblatt angezeigt, in dem ein entsprechender Hinweis erscheint.
Es ist nun nicht möglich, die Datei in der Tabelle zu bearbeiten, in der es dir wichtig ist, dass alle Zellen von B-K einen Inhalt haben.
Hier meine Idee:
https://www.herber.de/bbs/user/95074.xls
Was passiert?
1. Öffnen der Datei mit aktivierten Makros
2. es werden alle Tabellenblätter angezeigt, außer das, in dem steht, dass Makros aktiviert sein müssen
3. in "deiner wichtigen" Tabelle werden per VBA-Code erst mal alle Zellen für die Eingabe gesperrt
4. nun wird die nächste, freie Zeile gesucht
5. wenn gefunden, werden die Zellen in B-K für die Eingabe entsperrt + gelb gefärbt
(gelb deswegen, so soll gleich gesehen werden, HIER müssen die Eingaben gemacht werden)
die Zellen für Datenname, Firmenlogo + Firmenname sind immer entsperrt
6. Es wird der Blattschutz aktiviert, Passwort = test123
es ist nur MIT Blattschutz möglich, Zellen für Eingabe zu sperren
ohne Blattschutz kannst du in jeder Zelle etwas eintragen
7. So, klick mal auf den Speicher-Button (nur speichern, noch gar nicht schließen), ohne, dass du in den gelben Zellen etwas eingegeben hast
Es wird nix passieren, da ich den Speicher-Button und auch Speichern unter deaktiviert habe
8. Versuch jetzt, die Datei zu schließen...immer noch ohne Eingabe in den gelben Zellen
Nun erscheint der Hinweis, dass in allen gelben Zellen ein Eintrag stehen muss
Der Schließen-Vorgang wird abgebrochen
9. Jetzt trag in allen gelben Zellen etwas ein
Klick auf Speicher-Button geht immer noch nicht
Schließ mal die Datei
Jetzt erst kommt die Frage, ob gespeichert werden soll.
Klick auf JA = aus gelb wird, wie in Zeile 4 hellgrau, alle Eingaben werden fett formatiert, die nächste leere Zeile wird wieder gelb
Datei wird gespeichert + geschlossen
Klick auf NEIN = Eingaben werden verworfen, Datei wird ohne Speichern geschlossen
Wichtig!
Gib im Code ein besseres Passwort als test123 ein
Dazu öffnest du die Datei OHNE die Makros zu aktivieren.
Öffne nun den VBA-Editor, ändere an allen Stellen, die im Code einen grünfarbigen Hinweis haben, das Passwort, speicher die Datei + schließe sie
Die Datei, und natürlich auch Excel selbst, kann so wirklich nur noch erst dann geschlossen werden, wenn in allen gewünschten Zellen ein Eintrag vorhanden ist.
Bedeutet, alle anderen "normalen" Versuche, die Datei zu schließen, funktionieren nicht, so lange auch nur eine gelbe Zelle leer ist.
Einzige Möglichkeit:
Wenn du mit Hilfe des Taskmanagers den Prozess "excel.exe" beendest, nur so kannst du Excel + damit auch die und alle noch anderen geöffneten Excel-Dateien schließen.
Aber mit dem Taskmanager gehen nicht gespeicherte Daten aller Excel-Dateien verloren.
Mein Code ist also mit Vorsicht zu genießen - oder es müssen halt alle geleben Zellen mit Einträgen versehen werden.
Hilfts denn?
Ciao
Thorsten

Anzeige
AW: Dynamisches Sperren von Zeilen via VBA
21.01.2015 11:47:59
Zeilen
Hallo Thorsten,
war die Tage unterwegs, deswegen konnte das Ganze erst vorhin ausprobieren.
Es ist genial! Genauso habe ich´s mir vorgestellt, sogar die hinterlegten Farben in den Zellen gelb/ grau entprechen exakt meinen Vorstellungen. Besten Dank, Du hast mir sehr geholfen!
Gruß
Eduard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige