Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
272to276
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
272to276
272to276
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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.

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

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


36 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige