MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 07.04.2018, 18:34   #151
okrim
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,

jetzt ist mir gleich wieder etwas aufgefallen, und zwar bekomme ich jetzt eine Fehlermeldung wenn ich Diensteinträge mit Blattschutz mache.

Es kommt die Fehlermeldung:
Laufzeitfehler 1004
Anwendungs- oder objektdefinierter Fehler

Wenn ich auf Debuggen gehe, wird mir folgende Rote Zeile markiert
Code:

Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
'========================================================================================================
' Check eingegebenen Dienst
'   Case 1: Dienst <> Rodeldienst       Array p_ArrDG, Array p_ArrD
'   Case 2: Dienst = Rodeldienst        Array p_ArrDG, Array p_ArrD (Index = 2 oder 4)
'   Case 3: Dienst = Rodeldienst, aber falscher Zeitraum
'   Case 4: Sonderdienst                Array p_ArrDS
'   Case 5: leer
'   case 6: Sonstiges
'========================================================================================================
' Version V 8.3 vom 26.03.2018
...
...
...
...
...
'========================================================================================================
' im Anzeigeblock alle Zellen der angeklickten Spalte überprüfen und ggf markieren
'========================================================================================================
        c = Target.Column                       ' Spalte der Eingabezelle
        r = 63                                  ' Startzeile Anzeigeblock - 1
    
' Zählen Dienste für den angeklickten Tag
        For a = 1 To UBound(p_ArrD, 1)          ' alle Anlagen prüfen
            swF = False                             ' Schalter, True = in der Spalte fehlt ein Dienst für die Anlage oder ist doppelt
            r = r + 1                               ' korrespondierende Zeile im Anzeigeblock
      
      ' Spezielle Aktion bei Anlage Rodelbahn außerhalb Termin
            If Left(p_ArrA(a, 1), 10) = "Rodelabend" And swT = False Then
                Application.EnableEvents = False
                .Cells(r, c) = "X"
                .Cells(r, c).Interior.Color = xlNone
                Application.EnableEvents = True
            Else
                
       ' Standard-Anlagen sowie Rodelbahn für gültigen Termin
                For a2 = 1 To p_ArrD(a, 0)
                    If WorksheetFunction.CountIf(TBereich, p_ArrD(a, a2)) <> 1 Then
                        swF = True              ' Fehler bei Doppel bzw Fehlen
                        Exit For
                    End If
                Next a2
            .Cells(r, c).Interior.Color = IIf(swF = True, 255, 5287936)     ' Zelle Dienst pro Anlage für aktuellen Tag farblich markieren
            End If
        Next a
    End With
End Sub
Da es im Workbook_SheetChange ist weis ich nicht wie ich das mit F8 machen kann, so das ich besser nachvollziehen kann woran es liegen könnte.

Auf jeden Fall hatte ich den Fehler bevor ich das mit den Saisonzeiten eingefügt habe nicht gehabt. Auch jetzt ohne Blattschutz hab ich diesen Fehler nicht.

Gruß Mirko

Geändert von okrim (07.04.2018 um 18:36 Uhr).
okrim ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.04.2018, 19:16   #152
aloys78
MOF Meister
MOF Meister
Standard

Hallo Mirko,

Zitat:

Auf jeden Fall hatte ich den Fehler bevor ich das mit den Saisonzeiten eingefügt habe nicht gehabt. Auch jetzt ohne Blattschutz hab ich diesen Fehler nicht.

Klar - wenn Du das Blatt geschützt hast, dann ist im Anzeigebereich auch kein Speichern mit VBA möglich.

Dazu 2 Möglichkeiten:
a) im Code wird der Blattschutz temporär ausgeschaltet, oder
b) noch besser: bei Workbook_Open wird das Blatt so gesperrt, dass dennoch VBA-Schreiboperationen möglich sind.
Siehe dazu die Anweisung
Sheets(i).Protect userinterfaceonly:=True

Wenn Du damit nicht weiterkommst, dann melde Dich.

Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.04.2018, 19:40   #153
okrim
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,

habe aber im Anzeigebereich C64:AG75 keinen Schutz und vor der letzten Änderung ging es auch mit Blattschutz.

Zitat:

b) noch besser: bei Workbook_Open wird das Blatt so gesperrt, dass dennoch VBA-Schreiboperationen möglich sind.

muss ich die folgende Zeile
Code:

Sheets(i).Protect userinterfaceonly:=True
mit einer FOR-Schleife für alle Tabellen in Workbook_Open einfügen?
Das bekomme ich hin

Danke erst einmal, werde es dann gleich mal versuchen.

Gruß Mirko
okrim ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 01.05.2018, 12:38   #154
okrim
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,

erst einmal Entschuldigung das ich so lange nichts von mir hören lasen habe, hatte eine Schulung mit Prüfung und musste bisschen lernen Daher habe ich nicht mit meinem Dienstplan weiter gemacht.

Habe jetzt so wie du vorgeschlagen hast überall wo ich den Blattschutz mit "Protect" einfüge, das "userinterfaceonly:=True" hinzugefügt.

Aber der Fehler ist weiterhin wie im Beitrag #151 beschrieben, habe jetzt mal im gesamten Tabellenblatt das Häckchen bei Zellen Formatieren - Schutz rausgenommen, wenn ich dann wieder alle Blätter mit meinem Button schütze hab ich den Fehler trotzdem, hebe ich den schutz wieder auf geht es.

Ich verstehe das nicht, weis garnicht nach was ich suchen soll.

Gruß Mirko
okrim ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 01.05.2018, 19:27   #155
aloys78
MOF Meister
MOF Meister
Standard

Hallo Mirko,

dann stelle doch mal Deine Datei mit dem Monatsblatt zur Verfügung, womit Du getestet hast.

Zeige daran auf, was Du konkret getan hast, das zu diesem Fehler führt.

Wo hast Du den empfohlenen Code eingefügt ?

Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.05.2018, 10:31   #156
okrim
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,

hab zur zeit soviel um die Ohren das ich gar nicht zu meinem Dienstplan gekommen bin.
Hab jetzt nochmal bisschen rum probiert, dabei ist mir aufgefallen das es nach setzen des Blattschutz gegangen ist und nach dem neu öffnen nicht mehr.

Hab jetzt beim Workbook_Open() eine Abfrage gemacht ob beim Schließen der Blattschutz gesetzt war oder nicht, wenn er gesetzt war, dann setze ich ihn beim öffnen nochmal mit dem Zusatz "userinterfaceonly:=True".

Jetzt geht es werde noch intensiv testen, hoffe es geht jetzt alles

Ich bedanke mich auf jeden fall nochmal recht Herzlich, ich bin sowas von Froh das du mir so viel geholfen hast, hätte es ohne deine Hilfe nicht mal halb so gut hinbekommen. Find ich toll das es solche Leute gibt

Viele Liebe Grüße
Mirko
okrim ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.05.2018, 06:11   #157
aloys78
MOF Meister
MOF Meister
Standard

Hallo Mirko,

es freut mich, dass ich Dir helfen konnte.

Zitat:

Hab jetzt beim Workbook_Open() eine Abfrage gemacht ob beim Schließen der Blattschutz gesetzt war oder nicht, ...

Das hätte ich wie im folgenden Code gelöst. Der Schutz erfolgt beim Öffnen der Datei.
Wenn Du also den Code einbaust, dann mußt Du anschließend die Datei speichern und schließen und danach wieder öffnen. Erst dann ist der Blattschutz aktiv.

Meines Erachtens solltest Du auch ein Password angeben, damit der Schutz nicht leichtfertig ausgeschaltet werden kann.
Code:

Private Sub Workbook_Open()
' Version V7 vo 10.03.2018          ' ergänzt am 12.05.2018
'*************************************************************************************
' Beim Öffnen der Datei werden die Arrays aufgebaut und das zuletzt gespeicherte
' Tabellenblatt aktiviert
'*************************************************************************************
    Dim sh As Worksheet
    Dim monat As String
    Dim t As Long
    monat = ActiveSheet.Name                ' Name des zuletzt gespeicherten Blattes
    Worksheets("Admin").Activate
    Call Array_Aufbau                       ' Arrays für die Monatsblätter aufbauen
    
    For t = LBound(p_arrSheet) To UBound(p_arrSheet)
        On Error Resume Next
        Worksheets(p_arrSheet(t)).Protect Password:="aloys", UserInterfaceOnly:=True   '<---- Password anpassen
        On Error GoTo 0
    Next t
    
    Worksheets(monat).Activate              ' aktuelles Monatsblatt ansteuern 
End Sub
Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.05.2018, 15:13   #158
okrim
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,

danke noch mal für deinen Tipp.

Ich habe es so gelöst, folgender Code hab ich in Workbook_Open() eingefügt.
Code:

'Schaut ob beim Schliesen der Blattschutz Ein oder Aus war
    If Sheets("Zwischenspeicher").Range("K4").Value = "Ein" Then
        'in allen Tabellen der Arbeitsmappe den Blatschutz setzen
        Dim blatt As Worksheet
        For Each blatt In Worksheets
        blatt.Protect "1234", userinterfaceonly:=True
        Next blatt
    End If
Ich mach wenn ich mit meinem Button den Blattschutz setze einen Eintrag in Tabelle Zwischenspeicher, wo ich dann beim Starten eben schau ob er beim schließen gesetzt war oder nicht. Wenn ja dann setzt ich ihn einfach nochmal. Funktionieren tut es so wunderbar so weit ich es bis jetzt testen konnte. Soll ich es besser so machen wie du mir vorgeschlagen hast? Wenn ja setz ich deinen Code in meine IF abfrage, oder?

Gruß Mirko
okrim ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.