Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Einzelne Spalte schützen per VBA

Forumthread: Einzelne Spalte schützen per VBA

Einzelne Spalte schützen per VBA
21.05.2007 01:11:11
MOch

Hallo Ihr da draußen,
brauche mal wieder dringend Eure Hilfe! ;-)
Habe eine Tabelle ("Tagungsorga2") mit Formeln in Spalte F (nur diese Spalte soll geschützt werden !).
Andere Anwender sollen mit der gesamten Tabelle arbeiten können u. insbesondere auch meine Makros sowie die gesetzten Gruppierungen nutzen können.
Da sich bei dieser Excel-Version der Blattschutz leider nicht auf bestimmte Funktionen einschränken lässt, wärs absolut genial, wenn mir jemand nen Tipp zur Lösung per VBA geben könnte. :-)
Ideal wäre, wenn man die Zellen in Spalte F danach weder überschreiben noch die Formeln darin lesen könnte...
Danke Euch ganz herzlich im Voraus - VG,
Mic

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Einzelne Spalte schützen per VBA
21.05.2007 01:41:00
Oberschlumpf
Hi
1. alle Spalten markieren
2. dann auf Format/Zellen klicken und Schutz auswählen
3. zusätzlich zum Haken für gesperrt den Haken für Formeln ausblenden setzen - Klick auf OK
4. alle Spalten, die beschreibbar bleiben sollen, markieren
5. dann wieder auf Format/Zellen klicken und Schutz auswählen
6. beide Haken entfernen - Klick auf OK
7. nun auf Extras/Schutz/Blattschutz klicken und mit Passwort Blattschutz setzen
fertig
Konnte ich helfen?
Ciao
Thorsten

Anzeige
AW: Einzelne Spalte schützen per VBA
21.05.2007 07:39:48
MOch
Hi Thorsten,
danke für die schnelle Antwort!
Das hatte ich ja schon probiert, aber dann lassen sich die Gruppierungen und Makros nicht mehr verwenden - deswegen such ich nen Weg über VBA... ;-)
Möchte eigentlich nur per VBA Spalte F vor unerlaubtem Ändern und Entfernen der Zellinhalte schützen u., wenn möglich, die Formeln in dieser Spalte ausblenden... :-(
VG,
Mic

Anzeige
AW: Einzelne Spalte schützen per VBA
21.05.2007 10:05:01
Oberschlumpf
Hi
Hmm...ich weiß nicht mehr genau, aber ich hatte es in einer Datei mal geschafft, trotz Blattschutz die vorher gesetzten Gruppierungen weiter benutzen zu können - aber, ob auch mit Blattschutz das Verändern der Gruppierungen möglich war, weiß ich auch nicht mehr, und ich finde die Datei leider nicht.
Formeln lassen sich m.W. nur mit Blattschutz ausblenden.
Deine Makros würden mit Blattschutz auch funktionieren, wenn du jeweils in die erste Zeile jeden Makros
den Blattschutz aufhebst und in jede letzte Zeile jeden Makros den Blattschutz wieder aktivierst.
Und das Ändern von Daten in einer Spalte, kannst du vllt so mit VBA verhindern:
Schreibe ins Change-Ereignis des Blattes, wo die Spalte geschützt werden soll, das hier.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lbMsg As Byte
If Target.Column = 6 Then
lbMsg = MsgBox("Spalte F darf nicht verändert werden", vbExclamation, "Zugriff  _
verweigert")
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End Sub


Konnte ich nun helfen?
Ciao
Thorsten

Anzeige
AW: Einzelne Spalte schützen per VBA
21.05.2007 20:00:28
MOch
Hi Thorsten,
vielen Dank nochmal für alle Mühe - werd es gleich ausprobieren. :-)
VG,
Mic
;
Anzeige

Infobox / Tutorial

Einzelne Spalte schützen in Excel per VBA


Schritt-für-Schritt-Anleitung

Um eine einzelne Spalte in Excel zu schützen, während andere Benutzer weiterhin mit der Tabelle arbeiten können, kannst Du folgenden VBA-Code verwenden. Diese Anleitung geht davon aus, dass Du bereits ein Grundverständnis für Excel und VBA hast.

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Finde das Arbeitsblatt, in dem Du die Spalte schützen möchtest, im Projekt-Explorer.

  3. Doppelklicke auf das Arbeitsblatt, um das Codefenster zu öffnen.

  4. Füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim lbMsg As Byte
       If Target.Column = 6 Then
           lbMsg = MsgBox("Spalte F darf nicht verändert werden", vbExclamation, "Zugriff verweigert")
           With Application
               .EnableEvents = False
               .Undo
               .EnableEvents = True
           End With
       End If
    End Sub
  5. Schließe den VBA-Editor und kehre zu Deiner Excel-Tabelle zurück.

  6. Aktiviere den Blattschutz:

    • Gehe zu Extras > Schutz > Blattschutz.
    • Setze ein Passwort, um den Schutz zu aktivieren.

Damit ist die Spalte F vor Änderungen geschützt, und andere Benutzer können weiterhin auf die restliche Tabelle zugreifen.


Häufige Fehler und Lösungen

Problem: Der Blattschutz funktioniert nicht richtig, und Benutzer können die Formeln in Spalte F sehen.
Lösung: Stelle sicher, dass Du die Zellen in Spalte F so konfiguriert hast, dass die Formeln ausgeblendet werden. Markiere die Zellen in Spalte F, gehe zu Format > Zellen > Schutz, und aktiviere die Option „Formeln ausblenden“.

Problem: Makros funktionieren nicht mehr, nachdem der Blattschutz aktiviert wurde.
Lösung: Du kannst den Blattschutz in Deinen Makros temporär aufheben, indem Du ActiveSheet.Unprotect am Anfang des Makros und ActiveSheet.Protect am Ende einfügst.


Alternative Methoden

Neben der Verwendung von VBA gibt es auch eine einfache Methode, um die Zellen in Spalte F zu schützen:

  1. Markiere alle Zellen in der Tabelle.
  2. Gehe auf Format > Zellen und wähle den Tab „Schutz“.
  3. Aktiviere „Gesperrt“ und „Formeln ausblenden“.
  4. Markiere die Zellen in Spalte F und entferne die Häkchen für „Gesperrt“.
  5. Aktiviere den Blattschutz.

Diese Methode erlaubt es, die Formeln auszublenden, lässt jedoch keine Änderungen an Spalte F zu.


Praktische Beispiele

Ein Beispiel für die Verwendung des oben genannten VBA-Codes:

  • Beispiel: Du hast eine Tabelle für die „Tagungsorganisation“ und möchtest sicherstellen, dass die Berechnungen in Spalte F, die die Gesamtkosten anzeigen, nicht verändert werden. Mit dem VBA-Code kannst Du verhindern, dass jemand versehentlich die Werte in dieser Spalte ändert.

Tipps für Profis

  • Ereignisse optimieren: Wenn Du mit vielen Änderungen in einer Tabelle arbeitest, kannst Du die EnableEvents-Eigenschaft verwenden, um die Effizienz Deines Codes zu verbessern.
  • Passwortschutz: Überlege Dir, ein starkes Passwort für den Blattschutz zu verwenden, um unbefugten Zugriff zu verhindern.
  • Backup machen: Bevor Du Änderungen an Deinem VBA-Code vornimmst, erstelle immer ein Backup Deiner Excel-Datei, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Spalten schützen?
Ja, Du kannst den VBA-Code anpassen, um mehrere Spalten zu schützen, indem Du die If-Bedingung entsprechend änderst.

2. Ist der Blattschutz in allen Excel-Versionen gleich?
Die grundlegenden Funktionen zum Blattschutz sind in den meisten modernen Excel-Versionen ähnlich. Einige spezifische Funktionen können jedoch je nach Version variieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige