2.2k Aufrufe
Gefragt in Tabellenkalkulation von hermann57 Einsteiger_in (47 Punkte)
Mahlzeit, hi Leute ich bin auf der suche nach einem code der mir wieder mein zuvor gesetztes Passwort reinsetzt. Das ich halt nur auf ein Button klicke und alles ist halt wiedergeschützt. ( Das Tabellenblatt )

Könnt ihr mich vill dabei helfen, das wäre echt wieder einmal sehr nett.
Ich danke euch sehr !

Gruß Hermann

8 Antworten

0 Punkte
Beantwortet von vbalehrling Einsteiger_in (37 Punkte)
Hi Hermann,

Schreib ein Makro zu diesen Tabellenblatt, hier der Code (über Steuerelemente-Box eine CommandButton erstellen-> doppelklick darauf)

Private Sub CommandButton1_Click()

Worksheets("Sheet1").Protect Password:="Test"

End Sub






MfG
0 Punkte
Beantwortet von hermann57 Einsteiger_in (47 Punkte)
Hi, ich danke dir. Ich hab bis jetzt das. - aber es funktioniert nciht. Es kommt kein Fehler, aber die Aktion wird nicht ausgeführt. Ich kann immer noch alles machen wie zu vor. Was mache ich falsch ?

Gru0 Hermann

Option Explicit

Private Sub Schaltfläche2_BeiKlick()
Dim wks As Worksheet
Dim i As Long
Dim Passwort As String
Passwort = InputBox("Bitte PW eingeben", "Passwort")
If Passwort = "0815" Then
i = Sheets("E_no").Index
For Each wks In ThisWorkbook.Worksheets
If wks.Index > i Then
With wks
.Protect
End With
End If
Next wks
MsgBox "Zellschutz ist nun eingeschaltet."
Else
MsgBox "MöP!?'* "
End If
End Sub
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Hermann,

ändere die Code-Zeile

If wks.Index > i Then
in

If wks.Index <> i Then
, denn Du hast nur die Blätter, die größer der Indexzahl aus Variablen "i" angespürochen, aber keine, die darunter sind. Angenommen die Variable "i" hat den Wer 3, dann sprichst Du nur alle Blätter mit dem Index >3 an, also 4, 5 usw. Blätter mit dem Index 1 und 2 bleiben außen vor. Daher die Abfrage auf größer und kleiner.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von hermann57 Einsteiger_in (47 Punkte)
Hi Oliver !
Also ich habe es so geändert wie du sagtest, aber leider scheint es immer noch nicht zuklappen.

ich habe ein neues Modul auf gemacht und 2 Buttons im ersten Tabellenblatt hinterlegt.

Was meinst du , was ich falsch mache. Habe ich irgend etwas übersehen?

Ich danke dir herzlich wie immer :)

Gru0 Hermann


Option Explicit

Sub An()

Dim wks As Worksheet
Dim i As Long
Dim Passwort As String
Passwort = InputBox("Bitte PW eingeben", "Passwort")
If Passwort = "0815" Then
i = Sheets("E_no").Index
For Each wks In ThisWorkbook.Worksheets
If wks.Index <> i Then
With wks
.Protect
End With
End If
Next wks
MsgBox "Zellschutz ist nun eingeschaltet."
Else
MsgBox "MöP!?'* "
End If
End Sub


Sub Aus()

Dim wks As Worksheet
Dim i As Long
Dim Passwort As String
Passwort = InputBox("Bitte PW eingeben", "Passwort")
If Passwort = "0815" Then
i = Sheets("E_no").Index
For Each wks In ThisWorkbook.Worksheets
If wks.Index <> i Then
With wks
.Unprotect
End With
End If
Next wks
MsgBox "Zellschutz ist nun ausgeschaltet."
Else
MsgBox "MöP!?'* "
End If
End Sub
0 Punkte
Beantwortet von
Hi,

@Hermann
Tja, was machst Du falsch?
Du sagst imo nicht genau wo Dein Problem liegt, und wie Dein Wunschergebnis genau aussehen soll. ;-)

Was ist denn nun falsch?
Du versiehst mit dem Makro aus AW4 alle Tabellen der Mappe mit einem Blattschutz. (Ausser die Tabelle "E_no"). Wolltest Du das anders? Soll nur Tabelle "E_no" geschütz werden? (dann ginge das z.B. so If wks.Index = i Then

Der Tabellenschutz ist so nicht mit einem Passwort belegt. Er lässt sich also durch das Excelmenü ohne Passwortabfrage wieder aufheben. Ist es das, was Dich stört? (dann ändere es wie folgt:
.Protect Password:=Passwort und .Unprotect Password:=Passwort)

Oder sört Dich etwas ganz anderes?

bye
malSchauen
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ein wenig optimiert :-)

gruss nighty

Sub Schutz()
Dim wks As Worksheet
If InputBox("Bitte PW eingeben", "Passwort") = "0815" Then
For Each wks In ThisWorkbook.Worksheets
If wks.Index <> Worksheets("E_no").Index Then
wks.Protect Password:="0815"
End If
Next wks
MsgBox "Zellschutz ist nun eingeschaltet."
Else
MsgBox "MöP!?'* "
End If
End Sub
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Hermann ^^

noch zu deinem fehler

wenn du ein passwort angibst sollte es im späteren verlauf auch mit angegeben werden :-)))

gruss nighty
0 Punkte
Beantwortet von hermann57 Einsteiger_in (47 Punkte)
hehe, ich danke euch allen sehr, das " = " Zeichen war mein 'Denk- Fehler'.

Ich danke euch sehr, bis bald !

Schönen Guten Morgen wünsche ich euch, der Hermann.
...