Hallo zusammen
Ich stehe gegenwärtig wie der Esel am Berg und komme nicht mehr weiter :( Ist schon eine Weile her seit ich etwas programmiert habe, habe also sicher einen dummen Anfänger-Fehler drinn.
Ich habe eine Excel-Datei, welche aus mehreren Sheets besteht. Diese Sheets sollen mittels Makro in der Spalte B durchsucht werden. Wenn in der Spalte B nur der Wert 0 auftaucht (Es sollen nur numerische Werte durchsucht werden), ist das Blatt auszublenden. Wenn in der Spalte B auch Numerische Werte >0 auftauchen, muss das Blatt eingeblendet bleiben.
Das bisherige Makro weist zwei Probleme auf:
1. Beim Ausführen des Makros auf einem Blatt «Gesamtkosten» (das Blatt ist also aktiv) erscheint ein Laufzeitfehler, dass keine Werte gefunden wurden für Z (Zeile ). Eigentlich dürfte das Blatt gemäss "Select Case wks.Name" aber gar nicht durchlaufen werden?
2. Beim Ausführen des Makros auf einer Seite mit Numerischem Inhalt wird nur das besagte Sheet durchsucht, trotz der "For Each wks In ActiveWorkbook.Worksheets" Anweisung.
Sub UnbenötigteModulregisterAusblenden()
Dim strErgebnis As String, ZeileTitelErgebnis As Long
Dim wks As Worksheet, rngSuchbereich As Range
Dim SP As Integer, CNT As Integer, LR As Double, Z
SP = 2 'Spalte B, damit auch Produkte zum Preis 0.00 angezeigt werden!
Dim PriceSet As Boolean
PriceSet = False
ActiveWorkbook.Unprotect Password:="pass"
For Each wks In ActiveWorkbook.Worksheets
Select Case wks.Name
'in diesen Tabellenblättern nicht suchen
Case strErgebnis, "Offerte"
'MsgBox "Offerte bleibt eingeblendet"
Case strErgebnis, "Gesamtkosten"
'MsgBox "Gesamtkosten bleiben eingeblendet"
Case Else
ActiveSheet.Unprotect Password:="pass"
For Each Z In Columns(SP).SpecialCells(xlCellTypeConstants, 1)
Select Case Z
Case 0, "0"
Case Else
PriceSet = True
End Select
Next
ActiveSheet.Protect Password:="pass"
If PriceSet = False Then
ActiveSheet.Visible = False
'MsgBox "Blatt" & Application.ActiveSheet.Name & "Weist keine Werte >0 auf"
PriceSet = False
End If
End Select
Next
Sheets("Staffelpreisberechnung").Visible = False
Sheets("PreisvergleichMitbewerber").Visible = False
ActiveWorkbook.Protect Password:="pass"
End Sub
Könnt Ihr mir auf die Sprünge helfen?
Danke!
|