Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Makro funktioniert nicht bei Blattschutz


Betrifft: Makro funktioniert nicht bei Blattschutz von: Thomas
Geschrieben am: 23.01.2018 22:49:27

Hallo zusammen,

das u.g. Makro funktioniert nicht wenn ich den Blattschutz aktiviere und der Bereich entsperrt ist, der tatsächlich auch per Autofilter verändert wird. Liegt das am Makro selber oder weil Makros mit Autofiltern generell nicht funktionieren? Gruß und Danke!

Option Explicit

'Modifikationen 2018-01-14
    '- Autofilterbereich jetzt ab Spalte B
    '- Sortieren nach Spalte B nach zurücksetzen der Historie

Sub Modifi_Historie()
'
' Modifi_Historie Makro
'

'
    Dim wks   As Worksheet
    Dim varModifi
    Dim Zeile As Long
    Set wks = ActiveSheet
    
    With wks
        Zeile = ActiveCell.Row
        
        If Zeile > 16 And Zeile <= .Cells(.Rows.Count, 5).End(xlUp).Row Then '1 = Spalte A in 5  _
 _
= Spalte E _
                zur Berechnung der letzten Zeile mit Daten muss eine Spalte gewählt werden, die  _
 _
in allen _
                Zeilen einen Eintrag hat
            varModifi = wks.Cells(Zeile, 5).Value
            If varModifi = "" Then
                MsgBox "Zelle Modifikation darf nicht leer sein!", _
                    vbOKOnly, "Historie-Modifikation"
            Else
                If .AutoFilterMode = True Then
                    If .FilterMode = True Then
                        .ShowAllData
                    End If
                Else
                    'Autofilter ist nicht aktiv - Filterbereich neu festlegen in Spalten C bis   _
_
R
                    'letzte Zeile mit Daten in Spalte E (5)
                    Zeile = .Cells(.Rows.Count, 5).End(xlUp).Row
                    'Da nicht alle Spalten sondern erst ab Spalte B in den Autofilter sollen  _
muss der _
                        Zellbereich statt des Zeilenbereichs angegeben werden inkl.  _
Spaltentitel
                    .Range(.Cells(16, 2), .Cells(Zeile, 18)).AutoFilter             'geändert
                End If
                .AutoFilter.Range.AutoFilter Field:=4, Criteria1:="=" & varModifi  'geändert
                .AutoFilter.Sort.SortFields.Clear
                .AutoFilter.Sort.SortFields.Add Key:=.Range("C16"), _
                    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
                .AutoFilter.Sort.SortFields.Add Key:=.Range("F16"), _
                    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

                With .AutoFilter.Sort
                    .Header = xlYes
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
            End If
        Else
            MsgBox "Bitte eine Zelle in Zeile mit Eintrag für Modifikation wählen", _
                vbOKOnly, "Historie-Modifikation"
        End If
        
    End With 'wks
End Sub


  

Betrifft: AW: Makro funktioniert nicht bei Blattschutz von: Sepp
Geschrieben am: 23.01.2018 23:32:27

Hallo Thomas,

entweder den Blattschutz am Beginn des Makros aufheben und am Ende wieder setzten (wks.Protect bzw. .UnProtect) oder den Blattschutz beim Öffnen der Datei mit der Option UserInterfaceOnly:=True setzen.

Gruß Sepp



  

Betrifft: AW: Makro funktioniert nicht bei Blattschutz von: Thomas
Geschrieben am: 24.01.2018 22:28:54

Danke Sepp! Hat problemlos geklappt!


Beiträge aus dem Excel-Forum zum Thema "Makro funktioniert nicht bei Blattschutz"