Fehler in Makro

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Fehler in Makro
von: Michael L.
Geschrieben am: 02.07.2015 13:21:56

Hallo Zusammen,
ich habe folgendes Makro, das ich gerne erweitert hätte. Die Zeilen 80:82 sollen ausgeblendet werden, wenn 0 oder wenn Empty (leer). Ich möchte ich das Makro so erweitern, dass die Zeilen auch bei dem Wert "n.Aufw." ausgeblendet wird.
Wäre schön, wenn mir hier jemand behilflich sein könnte.
Danke und VG
Micha L.

Sub ausblenden_drucken1()
Dim intZeile As Integer
Dim strDrucken As String
'Wenn etwas im Bereich $C$20:$BF$104; $AE$141  (dem habe ich den Namen "Dateneingabe" gegeben)
'etwas eingetragen bzw. geändert wird:
With Worksheets("Ergebnisrechnung M1")
  'Blattschutz aufheben:
  .Unprotect
  'alle Zeilen einblenden:
  .Range("10:93").EntireRow.Hidden = False
  'Zeilen  80 und 77 (Pauschalbeträge), wenn in Spalte T eine Null steht,
  'diese und die nächsten zwei Zeilen ausblenden:
  If .Cells(80, 20) = 0 Or IsEmpty(.Cells(80, 20)) Then
    .Range("80:82").EntireRow.Hidden = True
  Else
    .Range("80:82").EntireRow.Hidden = False
  End If
  If .Cells(77, 20) = 0 Or IsEmpty(.Cells(77, 20)) Then
    .Range("77:79").EntireRow.Hidden = True
  Else
    .Range("77:79").EntireRow.Hidden = False
  End If
  'Zeilen von 73 - 37 rückwärts durchgehen und wenn in Spalte T eine Null steht,
  'diese und die nächsten drei Zeilen ausblenden:
  For intZeile = 73 To 37 Step -4
    Select Case intZeile
      Case 41, 45, 53, 57, 65, 69
        If .Cells(intZeile, 20) = 0 Or IsEmpty(.Cells(intZeile, 20)) Then
          .Range(intZeile & ":" & intZeile + 3).EntireRow.Hidden = True
        Else
          .Range(intZeile & ":" & intZeile + 3).EntireRow.Hidden = False
        End If
    End Select
  Next intZeile
  
  'Zeilen von 37 - 10 rückwärts durchgehen und wenn in Spalte T eine Null steht,
  'diese und die nächsten zwei Zeilen ausblenden:
  For intZeile = 37 To 10 Step -3
    Select Case intZeile
      Case 13, 16, 22, 25, 31, 34
    If .Cells(intZeile, 20) = 0 Or IsEmpty(.Cells(intZeile, 20)) Then
      .Range(intZeile & ":" & intZeile + 2).EntireRow.Hidden = True
    Else
      .Range(intZeile & ":" & intZeile + 2).EntireRow.Hidden = False
    End If
    End Select
  Next intZeile
  If Worksheets("Eingabemaske M1").Range("AE141") = "" Then
    .Range("93:93").EntireRow.Hidden = True
  Else
    .Range("93:93").EntireRow.Hidden = False
  End If
  strDrucken = MsgBox("Soll die Ergebnisrechnung jetzt 1 x gedruckt werden?", vbYesNoCancel, " _
Ergebnis drucken")
  If strDrucken = vbYes Then
    'Bereich drucken:
    Sheets("Ergebnisrechnung M1").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    Sheets("Eingabemaske M1").Select
End If
  'Blattschutz setzen:
  .Protect
End With
End Sub

Bild

Betrifft: AW: Fehler in Makro
von: UweD
Geschrieben am: 02.07.2015 13:37:08
Hallo
ungetestet....

  If .Cells(80, 20) = 0 Or IsEmpty(.Cells(80, 20)) Or .Cells(80, 20) = "n.Aufw." Then
Gruß UweD

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Fehler in Makro"