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

ActiveSheet.Unprotect - Laufzeitfehler

Forumthread: ActiveSheet.Unprotect - Laufzeitfehler

ActiveSheet.Unprotect - Laufzeitfehler
25.06.2003 19:36:14
Raik Reinhöfer
Hallo, wer kann mir helfen?

Ich will über eine Userform das ActiveSheet (indem Fall: "Teilgewicht") wieder freigeben (Schutz aufheben)

ich setze dazu den Befehl ActiveSheet.Unprotect ein

das funktioniert aber nur einmal.
Zur Erklärung:
ich gebe das Blatt frei, schreibe dann einige Daten auf das Blatt,
- schütze das blatt dann wieder mit ActiveSheet.Protect,
- dann minimiere ich die UF (mit uf.hide) und gehe auf das Blatt "Teilgewicht" mache da einige Eingaben.
- Mittels uf.show gehe ich zurück in meine UF.

funktioniert einmal

wenn ich diese sub dann nochmal starte, um z.B. Eingaben zu korrigieren erhalte ich folgende Fehlermeldung:

Laufzeitfehler 1004
Die Unprotect-Methode des Worksheet-Objektes ist fehlerhaft.

Wer kann mir sagen was ich Falsch mache und wies richtig ist?
Eine genau Erklärung zum Laufzeitfelhler 1004 habe ich in der Hilfe nicht gefunden.

Für Eure Hilfe bedanke ich mich im voraus.

Gruß
Raik

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: ActiveSheet.Unprotect - Laufzeitfehler
25.06.2003 19:41:08
Georg_Zi

Hallo Raik

Code wäre schon mal nicht schlecht.

Gruß Hajo

Falls Code vorhanden wurde er getestet unter Betriebssystem Windows 2000 Pro und Excel Version 2003 Beta 2.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

Anzeige
Re: ActiveSheet.Unprotect - Laufzeitfehler
25.06.2003 20:07:25
Raik Reinhöfer

Hallo, hier der Code, vielleicht kann man ja was draus erkennen?

Danke + Gruß Raik

Private Sub TG_Berechnung_Click()
If Range("kalkulation!a3") = 0 Then 'nur ausführen wenn nicht Öffnen aufgerufen
Dim Blatt As Object
Dim Aussenmass As Double, Innenmass As Double, Dichte As Double, TL As Double
Dim Fläche As Double, TG_ohne As Double



If IsNumeric(Me.TL.Value) And IsNumeric(Me.Aussenmass.Value) And _
IsNumeric(Me.Dichte.Value) Then
Sheets("Teilgewicht").Activate
ActiveWindow.WindowState = xlMaximized

'If ActiveSheet.Protect = True Then ActiveSheet.Unprotect
ActiveSheet.Unprotect

Range("TL").FormulaLocal = Me.TL.Value
Range("Aussenmass").FormulaLocal = Me.Aussenmass.Value
Range("Dichte").FormulaLocal = Me.Dichte.Value


' ANFANG: TG-ohne Berechnung

If IsNumeric(Me.Aussenmass.Value) Then Aussenmass = Me.Aussenmass.Value Else Aussenmass = 0
If IsNumeric(Me.Innenmass.Value) Then Innenmass = Me.Innenmass.Value Else Innenmass = 0
If IsNumeric(Me.Dichte.Value) Then Dichte = Me.Dichte.Value Else Dichte = 0
If IsNumeric(Me.TL.Value) Then TL = Me.TL.Value Else TL = 0

If Option1Rund = True Then 'TG-ohne Berechnung für Rundmaterial
Range("A4").FormulaLocal = "Rundmat. Ø [mm]: "
Range("Aussenmass").NumberFormat = "#,##0.00"
Range("Innenmass").ClearContents
TG_ohne = Application.WorksheetFunction.Pi / 4 * Aussenmass ^ 2 * TL * Dichte
Fläche = Application.WorksheetFunction.Pi / 4 * Aussenmass ^ 2
End If

If Option2Rohr = True And IsNumeric(Me.Innenmass.Value) Then 'TG-ohne Berechnung EG für Rohrmaterial
Range("A4").FormulaLocal = "Rohr AD x ID [mm]: "
Range("Aussenmass").NumberFormat = "#,##0.00 x"
Range("Innenmass").FormulaLocal = Me.Innenmass.Value
TG_ohne = Application.WorksheetFunction.Pi / 4 * (Aussenmass ^ 2 - Innenmass ^ 2) * vs * Dichte
Fläche = Application.WorksheetFunction.Pi / 4 * (Aussenmass ^ 2 - Innenmass ^ 2)
End If

If Option3Vierkant = True Then 'TG-ohne Berechnung für Vierkantmaterial
Range("A4").FormulaLocal = "Vierkantmat. SW [mm]: "
Range("Aussenmass").NumberFormat = "#,##0.00"
Range("Innenmass").ClearContents
TG_ohne = Aussenmass ^ 2 * TL * Dichte
Fläche = Aussenmass ^ 2
End If

If Option4Sechskant = True Then 'TG-ohne Berechnung für Sechskantmaterial
Range("A4").FormulaLocal = "Sechskantmat. SW [mm]: "
Range("Aussenmass").NumberFormat = "#,##0.00"
Range("Innenmass").ClearContents
TG_ohne = 2 * (Aussenmass / 2) ^ 2 * Sqr(3) * TL * Dichte
Fläche = 2 * (Aussenmass / 2) ^ 2 * Sqr(3)
End If


If IsNumeric(TG_ohne) Then TG_ohne = Application.WorksheetFunction.RoundUp(TG_ohne, 0) Else TG_ohne = 0
If IsNumeric(Fläche) Then Fläche = Application.WorksheetFunction.RoundUp(Fläche, 2) Else Fläche = 0

Range("TG_ohne").FormulaLocal = TG_ohne
Range("Flaeche").FormulaLocal = Fläche


' ENDE: TG-ohne Berechnung


'If ActiveSheet.Protect = False Then ActiveSheet.Protect
ActiveSheet.Protect

For Each Blatt In Sheets
If Blatt.Name <> ActiveSheet.Name Then
Blatt.Visible = False
End If
Next Blatt

Range("b8").Activate

frmDialog1.Hide
End If
End If
End Sub


Anzeige
Re: ActiveSheet.Unprotect - Laufzeitfehler
25.06.2003 20:25:26
Georg_Zi

Hallo Raik

mir war das nun zu aufwendig das nachzubauen, aber mein Eindruck ist es ist ein End if zu viel.
Der Code ist eigentlich ok. Ich habe ihn mal ein wenig umgeschrieben und "FormulaLocal" entfernt wo es meiner Meinung nach nicht notwendig ist.

Gruß Hajo

Falls Code vorhanden wurde er getestet unter Betriebssystem Windows 2000 Pro und Excel Version 2003 Beta 2.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.~

Anzeige
Re: ActiveSheet.Unprotect - Laufzeitfehler
25.06.2003 20:26:15
xxx

Hallo,
das liegt wahrscheinlich an der Ausblenderei. Ersetze dein Activesheet durch Sheets("Teilegewicht"). Oder referenziere darauf: set shTGW=sheets("Teilegewicht")
In der Schleife setze:
if Blatt.Name <>"Teilegewicht" then....
Das sollte dir helfen.

Gruß aus'm Pott
Udo

Anzeige
Re: ActiveSheet.Unprotect - Laufzeitfehler
25.06.2003 20:35:04
Raik

Danke euch beiden, werde es ausprobieren.
ob und wies geklappt hat erfahrt ihr morgen.

gruß raik

Re: gibt weiter Fehler
26.06.2003 12:29:06
Raik Reinhöfer

Hallo Hajo,

hab dein code getestet. Beim compilieren gibts die Fehler-Meldung "End With ohne With". (obwohl vorhanden)

Habe dann vor die Zeile: End With noch ein
End If eingefügt.

Dann stürzt das Programm wieder so ab wie gestern schon beschrieben.

Gruß Raik

Anzeige
Re: gibt weiter Fehler
26.06.2003 12:43:03
Raik Reinhöfer

Hallo Udo,

habe auch deine Tips ausprobiert. komme genauso nicht weiter stürzt nach wie vor beim zweiten Mal bei Sheets
("Teilgewicht").Unprotect ab.

Wenn Du/Ihr noch ne Idee habt wäre ich euch sehr dankbar.

Gruß Raik


;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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