Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1524to1528
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

letzte freie Zeile freigeben zur Bearbeitung

letzte freie Zeile freigeben zur Bearbeitung
15.11.2016 11:56:34
EasyD
Hallo zusammen
ich bräuchte mal einen Denkanstoß.
Ich habe ein Sheet, auf dem in vorgegebenen Spalten untereinander weg Eintragungen in 5 Spalten gemacht werden müssen. Dabei darf es jedoch nicht passieren, dass Zeilen eingefügt oder gelöscht werden.
Ich möchte auf irgendeinem Weg den Benutzer dazu zwingen, IMMER in die nächste freie Zeile zu schreiben und auch NUR in die nächste freie Zeile. Alles andere darf nicht möglich sein.
Mein erster Gedanke dazu war - richte einen Blattschutz ein und sperre alle Zeilen außer die letzte freie Zeile. Das würde aber bedeuten, dass sobald wieder eine Zeile bearbeitet wurde, die nächste Zeile zur Bearbeitung frei geschaltet werden muss.
Sicherlich geht das auch, mir ist nur erstens noch nicht ganz klar wie und zweitens klingt das auch recht aufwendig.
Bessere Ideen dazu? Falls nein bräuchte ich auch noch einen Schubs in die richtige Richtung wie ich den Blattschutz zeilenweise wieder aufheben kann....
Danke!

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

Betreff
Datum
Anwender
Anzeige
AW: letzte freie Zeile freigeben zur Bearbeitung
15.11.2016 13:07:56
Daniel
Hi
könnte so funktionieren:
1. entferne das Häkchen in der Zellformatierung - Schutz - Gesperrt für die 5 Zellen in der Zeile, die aktuell bearbeitet werden darf und setze es für alle anderen Zellen.
2. schreibe folgenden Code ins modul des Tabellenblatts:
Private Sub Worksheet_Change(ByVal Target As Range)
With Intersect(Target(1).EntireRow, Range("A:E"))
If WorksheetFunction.CountA(.Cells) = 5 Then
Me.Unprotect
.Locked = True
.Offset(1, 0).Locked = False
Me.Protect
End If
End With
End Sub
3. aktiviere den Blattschutz
jetzt kannst du nur in einer Zeile werte eingeben.
sobald in dieser Zeile die Spalten A-E befüllt sind, wird die Sperrung für diese Zeile gesetzt und für die darunterliegende Zeile aufgehoben, so daß du die nächste Zeile bearbeiten kannst.
falls du ein Passwort für den Blattschutz hast, müsstest du dieses bei Protect/UnProtect noch als Parameter angeben.
Gruß Daniel
Anzeige
AW: letzte freie Zeile freigeben zur Bearbeitung
15.11.2016 20:03:14
EasyD
Hhmm
Sieht interessant aus.
Ich werd mal testen und mich wieder melden
Danke erstmal
AW: letzte freie Zeile freigeben zur Bearbeitung
16.11.2016 13:09:03
EasyD
Hallo Daniel
sehr schöner Ansatz! Funktioniert auch exakt so wie ich es mir vorgestellt hatte. und jetzte kommt das aber...
ABER:
ich muss auch ermöglichen, dass in einer Spalte der zu bearbeiteten Zeile auch mal kein Eintrag gemacht wird. Wichtig ist, dass mindestens 1 Eintrag in der jeweiligen Zeile und zwar egal in welcher der 5 Spalten gemacht wird. Wahlweise könnte man es auch so einrichten, dass wenn in Spalte 1 ein Eintrag steht (die einzige Spalte die ausgefüllt werden MUSS), die Freischaltung erfolgt.
Das fiel mir auch gerade erst auf, nachdem ich deinen Code getestet habe.
Im übrigen aber eine wirklich einfache und schicke Lösung. Hättest du da noch eine Idee zu? Man dürfte dann sicherlich nicht "WorksheetFunction.CountA(.Cells)" verwenden... was wäre die Alternative im Sinne von - schau noch ob in einer Spalte ein Eintrag steht, wenn ja dann frei schalten, wenn nein dann geschützt lassen....?
Anzeige
AW: letzte freie Zeile freigeben zur Bearbeitung
16.11.2016 23:09:57
EasyD
Hallo Daniel
jetzt muss ich meine Frage nochmal Ganz anders stellen, ich hatte nämlich noch eine Idee die aber ein Folgeproblem aufwirt. Nun also
Ich habe die Liste um die es geht jetzt als Tabelle - wie sagt man - formatiert? (Register Entwurf).
Das hat den Vorteil, dass mir automatisch Formeln, die in den 5 Spalten RECHTS NEBEN den 5 Spalten die bearbeitet werden müssen, ergänzt.
Nun funktioniert aber die Geschichte oben mit dem Blattschutz natürlich nicht mehr (by the way - mein Problem, dass 1 Eintrag in der Zeile genügt hatte ich schon gelöst).
Es würde reichen, wenn das gesamte Blatt geschützt wird, nur aber die Tabelle zur Bearbeitung frei wird. Dazu dann natürlich auch die erste Zeile UNTERHALB der Tabelle, weil man sonst ja die Tabelle gar nicht um weitere Zeilen "verlängern" kann.
Ich habe versucht, die Locked-Eigenschaft in der Tabelle irgendwie per Makrorecorder festzustellen, damit ich rausfinde wie das gehen könnte. Die Option habe ich aber nicht gefunden. Das führt mich zu der Frage - geht das überhaupt?
Sorry wenn das jetzt in eine ganz andere Richtung geht, aber die Tabellenformatierung hat für mich entscheidende Vorteile. Bin ich aber auch erst heute drauf gekommen.
Ideen?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige