Herbers Excel-Forum - das Archiv

Makro arbeitet nicht bei Blattschutz

Bild

Betrifft: Makro arbeitet nicht bei Blattschutz
von: Tekiela
Geschrieben am: 18.09.2003 23:51:48
Hallo Ihr Excelianer!
Ich habe mir eine Arbeitszeitberechnung für eine Woche gebaut und möchte über die Eingabe der Start- und Endzeiten meine Wochenarbeitszeit erfassen.
Das funktioniert auch einwandfrei.
Da der Mensch ja faul ist, möchte ich diese Zeiten nicht mit dem lästigen Klammergriff für den Doppelunkt in der Uhrzeit eingeben. Dafür habe ich ein Makro gefunden, das mir den Doppelpunkt automatisch einfügt.
Das geht auch wunderbar, solange wie ich nicht das Blatt schütze. Das wäre aber sehr gut, damit mir meine nich so versierten Kollegen nicht dauernd die Formeln zerschiessen, aber dann funktioniert das Makro nicht mehr. Anstatt der Uhrzeit (zum Beispiel Blattschutz aktiviert, Eingabe 10:00 erhalte ich die Fehlermeldung: Laufzeitfehler 1004 Die NumberFormateigenschaft des RangeObjektes kann nicht festgelegt werden! ...und dann kann ich debuggen oden beenden anklicken)Wähle ich davon was, wird aus meiner schönen 10:00 Uhr ein 240:00!Ich habe leider keine VisualBasic-Kenntnisse und kann den Fehler nicht
selbst beheben.
Vielleicht könnt Ihr mir ja helfen?
Zur Erläuterung:
In den Zellen B11,c11, g11, h11, i11, m11, q11 und r11
trage ich die Zeiten ein.
Da es für viele Mitarbeiter gemacht wird, geht der Zeilenbereich bis
bis B367 .. .. .. .. .. .. r367
Hier das Makro dazu:
Oben steht dann "Worksheet" und "Change"

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s%, m%, xpos
If Target.Column < 0 Or Target.Column > 19 Then Exit Sub
' Auslesen der aktuellen Position (Spalte und Zeile)
xSpalte = "" & Target.Column
'Hier umsetzen der Spaltenzahlen ( 2 = B, 3 = C etc.)
Select Case xSpalte
Case 2, 3, 7, 8, 12, 13, 17, 18
xSpalte = Target.Column
xZeile = Target.Row
Case Else
'Rauswerfen wenn andere als o.a. Zeilen
Exit Sub
End Select
'Prüfen ob die ZelenZahl im Bereich 11 - 376 liegt
If xZeile >= 11 And xZeile <= 367 Then
xZeile = Target.Row
Else
'Wenn nicht dann
Exit Sub
End If
With Cells(Target.Row, Target.Column)
If .Value = "" Then Exit Sub
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then
.NumberFormat = "[hh]:mm"
If Len(.Value) > 2 Then
s = Left(.Value, Len(.Value) - 2)
m = Right(.Value, 2)
Else
s = .Value
m = 0
End If
.Value = s & ":" & m
End If
End With
End Sub



Für eine brauchbare Lösung würde ich dem Helfer auch die Füße k.....naja Ihr wißt schon.

Vielen Dank im Voraus
Tekiela LLiebscher@t-online.de
Bild

Betrifft: AW: Makro arbeitet nicht bei Blattschutz
von: PeterW
Geschrieben am: 19.09.2003 00:01:44
Hallo Tekiela,

mal ein anderer Ansatz für die Zeiteingabe. Benutze die Autokorrektur (unter Extras) und lass zwei Kommata durch den Doppelpunkt ersetzen. Alle Zeiteingaben sind jetzt bequem auf dem nummerischen Teil der Tastatur möglich.

Gruß
Peter
Bild

Betrifft: AW: Makro arbeitet nicht bei Blattschutz
von: Tekiela
Geschrieben am: 19.09.2003 01:02:22
Danke Peter!

Habe diese Möglichkeit auch schon mal gelesen; gab da aber manchmal auch Probleme mit der richtigen Berechnung. Das Makro is schon gar nicht schlecht, aber vielleicht liegt es auch an dem Alter, ich meine, dass es eventuell für Excel_alt geschrieben wurde, als VBA noch englischsprachig war.
Nun denn, hier könnt Ihr mein Problem runterladen und selber testen.

https://www.herber.de/bbs/user/1081.xls
Gruß teKIELa
Bild

Betrifft: AW: Makro arbeitet nicht bei Blattschutz
von: PeterW
Geschrieben am: 19.09.2003 01:17:10
Hallo Tekiela,

hab mir die Mappe angesehen aber was soll wo getestet werden? Die Zeiteingabe wie beschrieben passt ohne Probleme. VBA ist zwar seeehr hilfreich aber manchmal geht es mit den Excel-Bordmitteln einfacher. :-)

Wo gab es denn Probleme mit der angebotenen Lösung? Die macht nichts anderes als ein Doppelkomma in einen Doppelpunkt bei der Eingabe zu korrigieren. Die einzig vorstellbaren Probleme sind negative Zeiten. Dazu gibt es reichlich Informationen in der Recherche.

Gruß
Peter
Bild

Betrifft: AW: Makro arbeitet nicht bei Blattschutz
von: Tekiela
Geschrieben am: 19.09.2003 11:32:49
Hallo Peter,

ich hoffe, Du nimmst dir noch einmal Zeit, hier unten nach zu schauen.
Das vorgestellte Arbeitsblatt ist natürlich nur ein Ausschnitt aus einer größeren Tabelle, in der auch dann Zeiten mit finanziellen Zuschlägen gefiltert werden.
Da habe ich schon mal Probleme gehabt, weil dort Zeiten wie z.Bsp. 06:00, dezimal in einer Formel als 0,25 geschrieben wird. Stelle ich dann die beschriebene Korrektur ein, wird aus 0,25 ein 0:25.
Mit `nem Doppelkomma werde ich das mal testen, aber eigentlich bin ich ja tippfaul.
Bei dem Makro genügt es nämlich bei einer vollen Stunde nur die ersten beiden Zahlen einzutippen und mit dem Cursorpfeil in die nächste Spalte zu springen. Das Makro fügt dann den Doppelpunkt und die beiden Nullen hinzu. Darum wäre mir eine solche Lösung auch am Liebsten. Nun kannst Du ja sagen: Dann hast Du eben selber Pech gehabt (Zitat meines Sohnes, 3 Jahre, dann musst Du eben damit Leben, dass Dein Blatt ungeschützt bleibt!
Gruß teKIELa
Bild

Betrifft: AW: Makro arbeitet nicht bei Blattschutz
von: PeterW
Geschrieben am: 19.09.2003 22:34:48
Hallo Tekiela,

wenn es denn sein muss hebe am Anfang des Makros den Blattschutz auf und setze ihn am Ende erneut.

Gruß
Peter
Bild

Betrifft: AW: Makro arbeitet nicht bei Blattschutz
von: Tekiela
Geschrieben am: 20.09.2003 02:25:22
Danke Peter!
War wohl zu logisch, die Lösung!
 Bild
Excel-Beispiele zum Thema " Makro arbeitet nicht bei Blattschutz"
Kennwort für Blattschutz Blattschutz aufheben
Blattschutzdialog über VBA aufrufen Blattschutz für eine Serie von Tabellen setzen und aufheben
Blattschutz beim Speichern setzen Blattschutz setzen und dennoch mit AutoFiltern
Blattschutz aufheben, Daten eintragen, Blattschutz setzen Blattschutz für VBA-Einträge ausschließen
Blattschutz mit und ohne Passwort aufheben und setzen Spaltenweiser Blattschutz in Abhängigkeit des Anwendernamens