Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1500to1504
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

Bestimmte Zellen freigeben

Bestimmte Zellen freigeben
21.06.2016 15:33:33
Kai
Hallo,
ich habe nun schon mehrere Stunden mit Versuchen und Suchen in Google und Co. verbracht. Leider komme ich zu keiner Lösung.
Ich habe eine Excel Datei, in welcher durch eine Eingabemaske immer neue Tabellen erstellt werden können.
In diesen Tabellen kann mann dann eintragungen vornehmen.
Nun möchte ich, dass nur Eintragungen in Feldern vorgenommen werden können, in welchen "ausfüllen" steht oder welche ein DropDown Feld sind (Voreinstellung "auswählen")
Die Anzahl dieser Felder ist je nach Eingabe im Formular dynamisch.
Alle Tabellenblätter schütze ich mit folgender Funktion
Dim AB As Worksheet
For Each AB In ActiveWorkbook.Worksheets
AB.Unprotect ("Schutz")
Next AB
Vielleicht könnt ihr mir sagen, wie ich die genannten Felder aus dem Schutz ausklammern kann.
Vielen Dank
Kai

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Zellen freigeben
21.06.2016 15:36:57
Kai
Sorry, natürlich mit
Dim AB As Worksheet
For Each AB In ActiveWorkbook.Worksheets
AB.Protect ("Schutz")
Next AB

AW: Bestimmte Zellen freigeben
22.06.2016 01:05:36
Michael
Hi Kai,
mit der Range.Locked Eigenschaft, z.B. Range("A1").Locked = false
Das mußt Du halt für alle Zellen machen, aber das läßt sich in einem Rutsch erledigen, wenn Du sowieso Werte reinschreibst...
Schöne Grüße,
Michael

AW: Bestimmte Zellen freigeben
23.06.2016 16:15:34
Kai
Danke für die schnelle Antwort, das klappt auch einwandfrei. Ich möchte aber eigentlich auch, dass der Eintrag nicht mehr beschrieben werden kann, sobald jemand eine Änderung vorgenommen hat und somit nicht mehr "auswählen" in der Zelle steht.
Dafür müsste man eine Schleife über das gesamte Workbook laufen lassen, sobald die Datei neu geöffnet wird, oder liege ich da falsch?

Anzeige
AW: Bestimmte Zellen freigeben
24.06.2016 14:04:55
Michael
Hi Kai,
das sind so Sachen, die mit Beispieldatei plausibler sind...
Wenn beim Erzeugen des Blattes alle Zellen mit "auswählen" locked=false sind, sollte es eigentlich reichen, ein Worksheet_Change zu verwenden: gesperrte Zellen könnten ja nicht geschanged werden, also vermute ich, daß das geht:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
Target.Locked = True
ActiveSheet.Protect
MsgBox "Jetzt gelocked"
End Sub
Schöne Grüße,
Michael

AW: Bestimmte Zellen freigeben
27.06.2016 15:28:27
Kai
Hallo, danke der Tipp war gut. Ich habe jetzt folgenden Code hinzugefügt:
Private Sub SaveButton_Click()
Dim AB As Worksheet
For Each AB In ActiveWorkbook.Worksheets
AB.Unprotect ("025")
Next AB
Dim x As Integer
With ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
x = .CreateEventProc("Change", "Worksheet")
.InsertLines x + 1, "ActiveSheet.Unprotect (""025"")"
.InsertLines x + 2, "Target.Locked = True"
.InsertLines x + 3, "ActiveSheet.Protect (""025"")"
.InsertLines x + 4, "MsgBox ""Eingabe gespeichert, Zelle gesperrt!"""
End With
For Each AB In ActiveWorkbook.Worksheets
AB.Protect ("025")
Next AB
Unload Me
End Sub
Wenn ich es über workbook_sheetchange mache, erstellt er keine neue Tabelle mehr.
Jetzt Lande ich allerdings nach jedem erstellten Blatt im VB-Projekt. Das ist ja auch nicht Sinn der Sache.
Wie kann ich das verhindern? Ich möchte, dass das zuletzt erstellte Tabellenblatt angezeigt wird
Gruß Kai

Anzeige
wer weiß
27.06.2016 18:33:06
Michael
Hi Kai,
also, das Makro würde ich nicht händisch kopieren...
Es genügt, ein VORHANDENES Tabellenblatt zu kopieren, dann wird das Worksheet_Change automatisch mitkopiert.
Also etwa:
- kopiere Blatt: sheets("abc").copy after...
- weise es einer Variabeln zu: set newSh=activesheet
- benenne es um: newSh.name="DeinneuerName"
- tu dies, tu das
- newSh.activate
Ansonsten, wie gesagt, bitte Beispieldatei...
Schöne Grüße,
Michael

AW: wer weiß
29.06.2016 15:50:49
Kai
Hallo Michael, es hat jetzt geklappt per Makro.
Vielen Dank für deine Hilfe

106 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige