2.5k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo und guten Tag,

habe das Problem, wenn der Blattschtuz aktiviert ist, funktioniert das Makro nicht.
"Debugger" wird angezeigt. Möchte aber den Blattschutz und das Makro. Erbitte Hilfe, da ich Anfänger im VBA bin.

M.f.G.
Micha

13 Antworten

0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Micha,
den Blattschutz mit einem Makro aktivieren und deaktivieren.

Etwa so:

Sub Dein Makro ()
Sheets("Tabelle1").Unprotect Password:="XY" 'Blattschutz aus
End Sub

'Inhalt von deinem Makro

Sheets("Tabelle1").Protect Password:="YX" 'Blattschutz ein
End Sub

Gruß
fedjo
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Micha,
oh, End Sub löschen vergessen.

Etwa so:

Sub Dein Makro ()
Sheets("Tabelle1").Unprotect Password:="XY" 'Blattschutz aus

'Inhalt von deinem Makro

Sheets("Tabelle1").Protect Password:="YX" 'Blattschutz ein
End Sub

Gruß
fedjo
0 Punkte
Beantwortet von
Hallo fedjo,
vielen Dank für deine so schnelle Antwort.

Anbei mein geschriebener Code. Da ich leider, leider Anfänger bin wäre ich Dir sehr dankbar, wenn du deine Lösung in meinem Code einarbeiten könntest, da ich nicht weiß wie man es macht.
Vielen Dank schon mal im Voraus.
M.f.G. Micha
Private Sub Worksheet_Change(ByVal Target As Range)

Dim IntZeile As Integer

For IntZeile = 1 To 230

If Cells(IntZeile, 9) = "Fehler!" Then
MsgBox "Achtung! Einnahme/Ausgabe vertauscht!" & vbCrLf & "Erbitte Korrektur", vbInformation
Cells(IntZeile, 2).Interior.ColorIndex = 44
Cells(IntZeile, 3).Interior.ColorIndex = 45

Else
Cells(IntZeile, 2).Interior.ColorIndex = xlColorIndexNone
Cells(IntZeile, 3).Interior.ColorIndex = xlColorIndexNone
End If


If Cells(IntZeile, 10) = "Fehler!" Then
MsgBox "Achtung! Buchungssatz falsch." & vbCrLf & "Übersicht verwenden." & vbCrLf & "Erbitte Korrektur", vbInformation
Cells(IntZeile, 7).Interior.ColorIndex = 6

Else
Cells(IntZeile, 7).Interior.ColorIndex = xlColorIndexNone

End If

Next

End Sub
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Micha,
dann versuchs mal,
nicht vergessen das Passwort im Code zu ändern.

Gruß
fedjo

Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Tabelle1").Unprotect Password:="XY" 'Blattschutz aus,Passwort ändern
Dim IntZeile As Integer
For IntZeile = 1 To 230
If Cells(IntZeile, 9) = "Fehler!" Then
MsgBox "Achtung! Einnahme/Ausgabe vertauscht!" & vbCrLf & "Erbitte Korrektur", vbInformation
Cells(IntZeile, 2).Interior.ColorIndex = 44
Cells(IntZeile, 3).Interior.ColorIndex = 45

Else
Cells(IntZeile, 2).Interior.ColorIndex = xlColorIndexNone
Cells(IntZeile, 3).Interior.ColorIndex = xlColorIndexNone
End If

If Cells(IntZeile, 10) = "Fehler!" Then
MsgBox "Achtung! Buchungssatz falsch." & vbCrLf & "Übersicht verwenden." & vbCrLf & "Erbitte Korrektur", vbInformation
Cells(IntZeile, 7).Interior.ColorIndex = 6

Else
Cells(IntZeile, 7).Interior.ColorIndex = xlColorIndexNone
End If
Next
Sheets("Tabelle1").Protect Password:="YX" 'Blattschutz ein, Passwort ändern
End Sub
0 Punkte
Beantwortet von
Guten Tag fedjo,

nochmals vielen Dank für deine Hilfe.
Find ich prima.
Habe diese Zeilen eingefügt, funktioniert aber leider immer noch nicht. "Debugger": Laufzeitfehler '9': Index außerhalb des gültigen Bereichs. Habe den Code auch in "diese Arbeitsmappe geschrieben, jedoch auch ohne Erfolg. Möchtest du noch einen Versuch mit mir wagen? Wenn nicht, auch nicht schlimm. Muss ich dann mit leben.
Arbeite z.Z. mit Office 2010. Kann ich auch einzelne Zellen vor Überschreibung schützen, ohne den Blattschutz zu aktivieren. Denn wenn Blattschutz ein, dann tritt der Fehler auf.

M.f.G. Micha
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Micha,
wenn deine Tabelle1 einen anderen Namen hat, im Code auch anpassen.

Sheets("Tabelle1").Unprotect Password:="XY" 'Blattschutz aus, Passwort ändern

Sollte es immer noch nicht funktionieren, dann Upload eine Musterdatei und stell den Link ins Forum.

Die zu schützenden Zellen kennzeichnen.

Es gibt schon noch eine andere Möglichkeit.

Gruß
fedjo
0 Punkte
Beantwortet von
Hallo und guten Tag,

möchte nicht viel Worte mit "Spalten und Reihen" verlieren.
Folgendes Problem:
Wenn das Arbeitsblatt über Blattschutz geschützt wird, wird mein Makro nicht mehr ausgeführt.
Anbei einen Link, wo Ihr die Arbeitsmappe in Excel öffnen könnt.
Ich arbeit z.Z. mit Office 2010
http://www.xup.in/dl,19977914/Testmappe.xlsm/

Für Vorschläge, die auch ein Anfänger umsetzen kann, wäre ich sehr dankbar.

M.f.G.
Micha
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Micha,
da ist mir ein Fehler passiert, hatte da XY und YX verwechselt.


Sheets("Tabelle1").Unprotect Password:="XY" 'Blattschutz aus
Sheets("Tabelle1").Protect Password:="YX" 'Blattschutz ein

http://www.xup.in/dl,15229503/TESTMAPPE.XLSM/

Gruß
fedjo
0 Punkte
Beantwortet von
Hallo fedjo,

vielen Dank für Deine Mühe. Funktioniert bestens.
Alles Gute bis dahin.

Gruß Micha
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Micha,
danke für deine Rückmeldung!
Es freut mich das es fuktioniert.

Gruß
fedjo
...