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

Felder nach Makro-Lauf gesperrt

Felder nach Makro-Lauf gesperrt
13.11.2019 08:34:05
Thomas70
Hallo zusammen,
ich habe 3 Sheets in einer Datei.
Das erste ist zur Eingabe der Daten durch den User. Das 2. und 3. sind unterschiedliche Formulare, in die die Daten aus dem ersten Sheet per Makro übertagen werden.
Alle 3 Sheets werden per .Unportect / .Protect entsperrt bzw. wieder gesperrt, so dass die User keine Fehleingaben machen können.
Es sind also auf allen 3 Sheets sowohl gesperrte wie auch offene Zellen vorhanden.
Auf Sheet 2 und 3 funktioniert dies einwandfrei. Auch nach dem das Makro gelaufen ist, sind die Zellen wie vorher gesperrt / offen.
Auf Sheet 1 funktioniert es so, dass Zellen die vorher offen waren nach der Ausführung des Makos und somit dem Sperren des Sheets teilweise gesperrt sind. Komisch dabei ist, dass es eben nicht alle Zellen sperrt.
Zu den dann gesperrten Zellen ist in "Zellen formatieren - Schutz" die Checkbox "Gesperrt" dann schwarz gefüllt.
Das Sperren der Sheets erfolgt so:
With Sheets("Sheet1")
.Protect , DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=False, AllowFormattingColumns:=False, _
AllowFormattingRows:=False, AllowInsertingColumns:=False, AllowInsertingRows:=False, _
AllowInsertingHyperlinks:=False, AllowDeletingColumns:=False, AllowDeletingRows:=False, _
AllowSorting:=False, AllowFiltering:=False, AllowUsingPivotTables:=False
End With
With Sheets("Sheet2")
.Protect , DrawingObjects:=True, Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True, AllowFormattingCells:=False, AllowFormattingColumns:=False, _
AllowFormattingRows:=False, AllowInsertingColumns:=False, AllowInsertingRows:=False, _
AllowInsertingHyperlinks:=False, AllowDeletingColumns:=False, AllowDeletingRows:=False, _
AllowSorting:=False, AllowFiltering:=False, AllowUsingPivotTables:=False
End With
With Sheets("Sheet1")
.EnableSelection = xlUnlockedCells
.Protect Password:="QM", DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
With Sheets("Sheet2")
.EnableSelection = xlUnlockedCells
.Protect Password:="QM", DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
Das Ergebnis auf Sheet1 ist immer das gleiche. Also, immer die gleichen, ungewollt gesperrte Zellen.
Sollte das am Sheet selber liegen?
Herzlichen Dank für eure Tips im Voraus
Thomas

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

Betreff
Datum
Anwender
Anzeige
AW: Felder nach Makro-Lauf gesperrt
13.11.2019 09:47:18
fcs
Hallo Thomas,
was passiert den alles im Makro in Sheet1 zwischen entsperren und erneutem sperren?
Werden dort Zellbereiche mit Range("?").Clear geleert?
Das setzt auch die Zellformatierung zurück.
Benutze hier Range("?").ClearContents
LG
Franz
AW: Felder nach Makro-Lauf gesperrt
13.11.2019 12:02:41
Thomas70
Hallo fcs,
Zellen werden keine geleert.
Was hauptsächlich passiert ist dass verbundene Zellen aufgelöst werden, der Wert in eine anderes Sheet kopiert wird und anschliessend die Zellen wieder verbunden werden.
Auf Sheet 2 und 3 werden die Zellen aber auch aufgelöst, der Wert rein geschrieben und die Zellen wieder verbunden.Auf Sheet 2 & 3 ändert sich nichts bezüglich "Gesperrt/Nicht gesperrt"
Sheets("Sheet2").Select 'im Zielgebiet den Zellbereich zerlegen
Range("I1:L3").Select
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
Sheets("Sheet").Select 'im Zielgebiet den Zellbereich zerlegen
Range("S13:AW17").Select
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
Range("S13").Select
Selection.Copy
Sheets("Sheet2").Select 'Zielbereich auswählen
Range("I1").Select ' erste Zelle des -künftig- wieder verbundenen Bereichs auswählen-
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("I1:L3").Select 'Auswahl des wieder zu verbindenden Bereichs
Application.CutCopyMode = False
With Selection 'Wieder Herstellen des verbundenen Bereichs
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = True
End With
Sheets("Sheet1").Select 'Zielbereich auswählen
Range("S13:AW17").Select 'Auswahl des wieder zu verbindenden Bereichs
Application.CutCopyMode = False
With Selection 'Wieder Herstellen des verbundenen Bereichs
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = True
End With
Das ganze wiederholt sich x mal
Grüsse
Thomas
Anzeige
AW: Felder nach Makro-Lauf gesperrt
13.11.2019 12:58:43
fcs
Hallo Thomas,
eigentlich sollte folgende Zeile reichen, um den Wert eines verbunden Zellbereiches in einen anderen verbundene Bereich zu übertragen. D.h. die verbundenen Zellen werden nicht vorübergehend aufgelöst, sondern die Werte direkt übertragen.
Sheets("Sheet2").Range("I1").Value = Sheets("Sheet1").Range("S13").Value

Dabei immer jeweils nur die 1. Zelle des verbundenen Bereichs angegeben.
Ansonsten bei den Problembereichen in Sheet1, wenn die Zellen wieder verbunden werden zusätzlich den Zellschutz noch deaktivieren.
Sheets("Sheet1").Select 'Zielbereich auswählen
Range("S13:AW17").Select 'Auswahl des wieder zu verbindenden Bereichs
Application.CutCopyMode = False
With Selection 'Wieder Herstellen des verbundenen Bereichs
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = True
.locked =False   'zusätzliche Zeile
End With
LG
Franz
Anzeige
AW: Felder nach Makro-Lauf gesperrt
14.11.2019 09:27:11
Thomas70
Hallo fcs,
so funktioniert es.
Danke für die Hilfe.
Grüsse
Thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige