Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1432to1436
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Macro zum Zeilen ausblenden (erweiterung)

Macro zum Zeilen ausblenden (erweiterung)
09.07.2015 07:33:59
Stefan
Hallo,
ich hatte ja nun schon einen Beitrag zum Spaltenausblenden via VBA geöffnet.
Leider weiss ich nicht wie man in diesem weiter schreiben kann.
Ich suche nun Hilfe beim Zeilen ausblenden. Wenn möglich auf die gleiche Weise.
Es soll die Zeile Ausblenden wenn in Zelle x eine 0 drin ist ansonsten nicht.
Es handelt sich um 19 Zeilen die einzeln je nach Inhalt ein oder ausgeblendet werden sollen.
Ich hab auch schon gebaut aber letztendlich kam es immer zu Fehlern und zwar so heftig das ich Excel zwangsbeenden musste. ;)
Folgend der Code wie er jetzt in meinem Tabellenblatt steht.
Private Sub Worksheet_Calculate()
Dim Spalte As Integer
Dim Spalte1 As Integer
Dim Spalte2 As Integer
Dim Spalte3 As Integer
Dim SpalteEnd As Integer
Dim SpaltenString As String
With Tabelle20                                                          ' welche Tabelle
For Spalte = 32 To 33
If Spalte = 32 Then SpaltenString = "E:F" Else SpaltenString = "G:H"    ' Für Spalte E-F und G- _
H
If Cells(Spalte, 1) = 0 Then                                            ' Wenn 0 dann
.Columns(SpaltenString).Hidden = True                                   ' Spalte ausblenden
Else
.Columns(SpaltenString).Hidden = False                                  ' Wenn nicht 0 dann  _
nicht ausblenden
End If
For Spalte1 = 34 To 35
If Spalte1 = 34 Then SpaltenString = "I:J" Else SpaltenString = "K:L"   ' Wiederholung für I-J  _
und G-H
If Cells(Spalte1, 1) = 0 Then
.Columns(SpaltenString).Hidden = True
Else
.Columns(SpaltenString).Hidden = False
End If
For Spalte2 = 36 To 37
If Spalte2 = 36 Then SpaltenString = "M:N" Else SpaltenString = "O:P"   ' Wiederholung für M-N  _
und O-P
If Cells(Spalte2, 1) = 0 Then
.Columns(SpaltenString).Hidden = True
Else
.Columns(SpaltenString).Hidden = False
End If
For Spalte3 = 38 To 38
If Spalte3 = 38 Then SpaltenString = "Q:R" Else SpaltenString = "Q:R"   ' Wiederholung für Q  _
und R
If Cells(Spalte3, 1) = 0 Then
.Columns(SpaltenString).Hidden = True
Else
.Columns(SpaltenString).Hidden = False
End If
Next Spalte3
Next Spalte2
Next Spalte1
Next Spalte
End With
End Sub
Viele Grüße
Stefan

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Macro zum Zeilen ausblenden (erweiterung)
09.07.2015 09:08:48
JoWE
Hallo Stefan,
z.B. mit einem weiteren Makro:
Option Explicit
Sub hide_rows()
'angenommen die Prüfzelle "x"  befände sich in der Spalte "A" der Tabelle1
'dann könnte es, wenn die Prüfung innerhalb der 19 Zeilen von Zeile 2 bis Zeile 20
'stattfinden sollte, vllt. so klappen:
Dim ze As Range
With Worksheets("Tabelle1")
For Each ze In .Range("A2:A20")
If ze = 0 Then
.Rows(ze.Row & ":" & ze.Row).Hidden = True
End If
Next
End With
End Sub

Gruß
Jochen

AW: Macro zum Zeilen ausblenden (erweiterung)
09.07.2015 11:30:16
Stefan
Ich habs eingefügt, passiert aber gar nix. Habe den Code aus Tabellenblatt 20 angehängt. Schön wäre auch wenn es bei jeder Neuberechnung aktiviert würde so wie der andere Code im Tabellenblatt.
Irgend wie steh ich noch auf dem Schlauch. Geht das überhaupt wenn der Code einfach anghängt wird?
VBA is noch ein bischen schwer für mich.
Gruß Stefan
Private Sub Worksheet_Calculate()
Dim Spalte As Integer
Dim Spalte1 As Integer
Dim Spalte2 As Integer
Dim Spalte3 As Integer
Dim SpalteEnd As Integer
Dim SpaltenString As String
With Tabelle20                                                          ' welche Tabelle
For Spalte = 32 To 33
If Spalte = 32 Then SpaltenString = "E:F" Else SpaltenString = "G:H"    ' Für Spalte E-F und G- _
H
If Cells(Spalte, 1) = 0 Then                                            ' Wenn 0 dann
.Columns(SpaltenString).Hidden = True                                   ' Spalte ausblenden
Else
.Columns(SpaltenString).Hidden = False                                  ' Wenn nicht 0 dann  _
nicht ausblenden
End If
For Spalte1 = 34 To 35
If Spalte1 = 34 Then SpaltenString = "I:J" Else SpaltenString = "K:L"   ' Wiederholung für I-J  _
und G-H
If Cells(Spalte1, 1) = 0 Then
.Columns(SpaltenString).Hidden = True
Else
.Columns(SpaltenString).Hidden = False
End If
For Spalte2 = 36 To 37
If Spalte2 = 36 Then SpaltenString = "M:N" Else SpaltenString = "O:P"   ' Wiederholung für M-N  _
und O-P
If Cells(Spalte2, 1) = 0 Then
.Columns(SpaltenString).Hidden = True
Else
.Columns(SpaltenString).Hidden = False
End If
For Spalte3 = 38 To 38
If Spalte3 = 38 Then SpaltenString = "Q:R" Else SpaltenString = "Q:R"   ' Wiederholung für Q  _
und R
If Cells(Spalte3, 1) = 0 Then
.Columns(SpaltenString).Hidden = True
Else
.Columns(SpaltenString).Hidden = False
End If
Next Spalte3
Next Spalte2
Next Spalte1
Next Spalte
End With
End Sub

Sub hide_rows()
'angenommen die Prüfzelle "x" befände sich in der Spalte "A" der Tabelle1
'dann könnte es, wenn die Prüfung innerhalb der 19 Zeilen von Zeile 2 bis Zeile 20
'stattfinden sollte, vllt. so klappen:
Dim ze As Range
With Worksheets("Tabelle20")
For Each ze In .Range("S5:S22")
If ze = 0 Then
.Rows(ze.Row & ":" & ze.Row).Hidden = True
End If
Next
End With
End Sub

Anzeige
AW: Macro zum Zeilen ausblenden (erweiterung)
09.07.2015 11:51:22
JoWE
Hallo Stefan,
du wolltest Hilfe beim Ausblenden von Zeilen. Genau das mach das Makro "hide-rows()".
Dein Beispielcode blendet Spalten aus, das hat nun mit Deiner Eingangsfrage eigentlich nix zu tun.
Gib uns eine Beispieltabelle die sollte in einem Blatt die Ausgangssituation und in einem zweiten Blatt das korrespondierende Wunschergebnis zeigen.
Gruß
Jochen

AW: Macro zum Zeilen ausblenden (erweiterung)
09.07.2015 11:52:03
JoWE
Hallo Stefan,
du wolltest Hilfe beim Ausblenden von Zeilen. Genau das mach das Makro "hide-rows()".
Dein Beispielcode blendet Spalten aus, das hat nun mit Deiner Eingangsfrage eigentlich nix zu tun.
Gib uns eine Beispieltabelle die sollte in einem Blatt die Ausgangssituation und in einem zweiten Blatt das korrespondierende Wunschergebnis zeigen.
Ich stelle Deine Frage nochmal auf offen.
Gruß
Jochen

Anzeige
AW: Macro zum Zeilen ausblenden (erweiterung)
09.07.2015 11:58:04
Stefan
Jetz gehts hab With Worksheet durch With Tabelle20 ersetzt.
Wie bekomm ichs hin das er bei neuberechnung ändert?
Vielen Dank erstmal soweit
Sub hide_rows()
'angenommen die Prüfzelle "x"  befände sich in der Spalte "A" der Tabelle1
'dann könnte es, wenn die Prüfung innerhalb der 19 Zeilen von Zeile 2 bis Zeile 20
'stattfinden sollte, vllt. so klappen:
Dim ze As Range
With Tabelle20
For Each ze In .Range("S5:S22")
If ze = 0 Then
.Rows(ze.Row & ":" & ze.Row).Hidden = True
End If
Next
End With
End Sub

AW: Macro zum Zeilen ausblenden (erweiterung)
09.07.2015 12:04:32
JoWE
z.B. mit diesem Code in der Tabelle:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
hide_rows
End Sub
Gruß
Jochen

Anzeige
AW: Macro zum Zeilen ausblenden (erweiterung)
09.07.2015 15:48:03
Stefan
Kann ich den Code
Sub hide_rows()
'angenommen die Prüfzelle "x"  befände sich in der Spalte "A" der Tabelle1
'dann könnte es, wenn die Prüfung innerhalb der 19 Zeilen von Zeile 2 bis Zeile 20
'stattfinden sollte, vllt. so klappen:
Dim ze As Range
With Tabelle20
For Each ze In .Range("S5:S22")
If ze = 0 Then
.Rows(ze.Row & ":" & ze.Row).Hidden = True
End If
Next
End With
End Sub
Irgend wie in meine vorhandenen Code einbauen das dat Worksheet_Calculate benutzt wird.
Dein Code Funktioniert auch super. Nur bei jeder Zellauswahl soll er das nich machen.
Vielen Dank für die Hilfe.
Gruß
Stefan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige