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

Zellschutz mit Makros übernehmen

Zellschutz mit Makros übernehmen
19.01.2023 10:08:52
Mira
Hallo liebes Forum,
ich habe eine Tabelle angelegt, bei der ein Tabellenblatt (Vorlage) mit einem Makro kopiert, umbenannt und durch Formeln ergänzt wird. Innerhalb dieser Vorlage habe ich einen Zellschutz angelegt, den ich gerne beim Kopieren der Vorlage auch übernehmen möchte. Ich hab nur leider keine Idee wie. Um das Tabellenblatt kopieren zu können, muss ich ja vorher den Blattschutz aufheben, oder?
Wenn es hilft - es sind immer dieselben Zellen, die geschützt bzw. bearbeitbar sein sollen, am Format ändert sich nichts.. Vielleicht habe ich auch grade echt ein gigantisches Brett vor'm Kopf, aber ich komme echt nicht weiter. Vielleicht kann hier jemand helfen?
Viele Grüße
Mira

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellschutz mit Makros übernehmen
19.01.2023 10:45:04
Rudi
Hallo,
muss ich ja vorher den Blattschutz aufheben, oder?
musst du nicht.
Gruß
Rudi
AW: Zellschutz mit Makros übernehmen
19.01.2023 11:03:02
Mira
Hallo Rudi,
danke für die schnelle Antwort! Wenn ich den Zellschutz nicht vorher aufhebe, bekomme ich eine Fehlermeldung beim Ausführen des Makros (Die Zelle/Diagramm befindet sich auf einem schreibgeschützten Blatt etc.). Hebe ich den Schutz vorher per Makro auf und reaktiviere ihn nach Ausführen des Makros habe ich keine Fehlermeldung, aber auch keinen Zellschutz.
Viele Grüße
Mira
AW: Zellschutz mit Makros übernehmen
19.01.2023 11:23:46
Rudi
Hallo,
teste mal:
Sub VorlageKopieren()
  Const strPW As String = "DeinPasswort"
  With Sheets("Vorlage")
    .Unprotect strPW
    .Copy after:=Sheets("Vorlage")
    .Protect strPW
    .Next.Protect strPW
  End With
End Sub
Gruß
Rudi
Anzeige
AW: Zellschutz mit Makros übernehmen
19.01.2023 11:47:34
Mira
Hallo Rudi,
damit bekomme ich leider immer noch dieselbe Fehlermeldung... Ich bin allerdings auch echt noch ein totaler VBA-Anfänger und hangel mich für gewöhnlich von Tutorial zu Tutorial. Hier ist mein Makro, vielleicht hilft das?
Option Explicit
Sub Schaltfläche1_Klicken()
Dim i As Long, ws As Worksheet, boVorhanden As Boolean
Application.ScreenUpdating = False
With Worksheets("Stammdaten")
    For i = 13 To .Cells(.Rows.Count, "C").End(xlUp).Row
        For Each ws In ThisWorkbook.Worksheets
            If ws.Name = .Cells(i, "B") & " " & .Cells(i, "C") Then
                boVorhanden = True
            End If
        Next ws
        If Not boVorhanden Then
            Worksheets("Vorlage").Copy after:=Worksheets(Sheets.Count)
            With ActiveSheet
                .Name = Worksheets("Stammdaten").Cells(i, "C") & " " _
                & Worksheets("Stammdaten").Cells(i, "B")
                .Cells(2, "Z").FormulaLocal = "=Stammdaten!C" & i & "&"" ""&Stammdaten!B" & i
                .Cells(38, "EK").FormulaLocal = "='Stammdaten'!F" & i
                .Cells(38, "EN").FormulaLocal = "='Stammdaten'!G" & i
                .Cells(38, "EV").FormulaLocal = "='Stammdaten'!J" & i
                .Cells(38, "EY").FormulaLocal = "='Stammdaten'!K" & i
                .Cells(38, "FG").FormulaLocal = "='Stammdaten'!N" & i
                .Cells(38, "FJ").FormulaLocal = "='Stammdaten'!O" & i
            End With
            boVorhanden = False
        End If
    Next i
End With
End Sub
Viele Grüße
Mira
Anzeige
AW: Zellschutz mit Makros übernehmen
19.01.2023 12:03:55
Rudi
vielleicht so?
Sub Schaltfläche1_Klicken()
  Dim i As Long, ws As Worksheet
  Dim strName As String
  
  Application.ScreenUpdating = False
  
  Const strPW = "DeinPasswort"
  
  With Worksheets("Stammdaten")
    For i = 13 To .Cells(.Rows.Count, "C").End(xlUp).Row
      strName = .Cells(i, 2) & " " & .Cells(i, 3)
      Set ws = Nothing
      On Error Resume Next
      Set ws = Worksheets(strName)
      On Error GoTo 0
      If ws Is Nothing Then
        With Worksheets("Vorlage")
          .Unprotect strPW
          .Copy after:=Worksheets(Sheets.Count)
          .Protect strPW
        End With
        With ActiveSheet
          .Name = strName
          .Cells(2, "Z").FormulaLocal = "=Stammdaten!C" & i & "&"" ""&Stammdaten!B" & i
          .Cells(38, "EK").FormulaLocal = "='Stammdaten'!F" & i
          .Cells(38, "EN").FormulaLocal = "='Stammdaten'!G" & i
          .Cells(38, "EV").FormulaLocal = "='Stammdaten'!J" & i
          .Cells(38, "EY").FormulaLocal = "='Stammdaten'!K" & i
          .Cells(38, "FG").FormulaLocal = "='Stammdaten'!N" & i
          .Cells(38, "FJ").FormulaLocal = "='Stammdaten'!O" & i
          .Protect strPW
        End With
      End If
    Next i
  End With
End Sub
Gruß
Rudi
Anzeige
AW: Zellschutz mit Makros übernehmen
19.01.2023 12:20:05
Pierre
Hallo Mira,
unter
With Worksheets("Stammdaten")
schreibst du .Unprotect
Später unter den ganzen FormulaLocal schreibst du ".Protect"
Kurz vor dem Ende, unter "Next i" dann nochmal ".Protect"
Kann man, wenn gewünscht mit Passwort machen, da hilft dir Google aber bestimmt ;-)
Gruß Pierre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige