Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
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

Zeilen ausblenden

Zeilen ausblenden
25.11.2019 10:20:57
Thorsten

Hallo zusammen,
ich habe mit folgendes "zusammengebastelt"
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.ScreenUpdating = False ' Zeilen 41 42 ausblenden
If Not Intersect(Target, Range("B39:X40")) Is Nothing Then
Rows("41:42").Hidden = WorksheetFunction.CountA(Range("B39:X40")) = 0
End If
Application.ScreenUpdating = True
Application.ScreenUpdating = False ' Zeilen 39 40 ausblenden
If Not Intersect(Target, Range("B37:X38")) Is Nothing Then
Rows("39:40").Hidden = WorksheetFunction.CountA(Range("B37:X38")) = 0
End If
Application.ScreenUpdating = True
Application.ScreenUpdating = False ' Zeilen 37 38 ausblenden
If Not Intersect(Target, Range("B35:X36")) Is Nothing Then
Rows("37:38").Hidden = WorksheetFunction.CountA(Range("B35:X36")) = 0
End If
Application.ScreenUpdating = True
Application.ScreenUpdating = False ' Zeilen 35 36 ausblenden
If Not Intersect(Target, Range("B33:X34")) Is Nothing Then
Rows("35:36").Hidden = WorksheetFunction.CountA(Range("B33:X34")) = 0
End If
Application.ScreenUpdating = True
Application.ScreenUpdating = False ' Zeilen 33 34 ausblenden
If Not Intersect(Target, Range("B31:X32")) Is Nothing Then
Rows("33:34").Hidden = WorksheetFunction.CountA(Range("B31:X32")) = 0
End If
Application.ScreenUpdating = True
Application.ScreenUpdating = False ' Zeilen 31 32 ausblenden
If Not Intersect(Target, Range("B29:X30")) Is Nothing Then
Rows("31:32").Hidden = WorksheetFunction.CountA(Range("B29:X30")) = 0
End If
Application.ScreenUpdating = True
Application.ScreenUpdating = False ' Zeilen 29 30 ausblenden
If Not Intersect(Target, Range("B27:X28")) Is Nothing Then
Rows("29:30").Hidden = WorksheetFunction.CountA(Range("B27:X28")) = 0
End If
Application.ScreenUpdating = True
Application.ScreenUpdating = False ' Zeilen 27 28 ausblenden
If Not Intersect(Target, Range("B25:X26")) Is Nothing Then
Rows("27:28").Hidden = WorksheetFunction.CountA(Range("B25:X26")) = 0
End If
Application.ScreenUpdating = True
Application.ScreenUpdating = False ' Zeilen 25 26 ausblenden
If Not Intersect(Target, Range("B23:X24")) Is Nothing Then
Rows("25:26").Hidden = WorksheetFunction.CountA(Range("B23:X24")) = 0
End If
Application.ScreenUpdating = True
Application.ScreenUpdating = False ' Zeilen 23 24 ausblenden
If Not Intersect(Target, Range("B21:X22")) Is Nothing Then
Rows("23:24").Hidden = WorksheetFunction.CountA(Range("B21:X22")) = 0
End If
Application.ScreenUpdating = True
Application.ScreenUpdating = False ' Zeilen 21 22 ausblenden
If Not Intersect(Target, Range("B19:X20")) Is Nothing Then
Rows("21:22").Hidden = WorksheetFunction.CountA(Range("B19:X20")) = 0
End If
Application.ScreenUpdating = True
Application.ScreenUpdating = False ' Zeilen 19 20 ausblenden
If Not Intersect(Target, Range("B17:X18")) Is Nothing Then
Rows("19:20").Hidden = WorksheetFunction.CountA(Range("B17:X18")) = 0
End If
Application.ScreenUpdating = True
......................
Leider funktioniert das nicht so, wie ich mir das vorgestellt habe.
Die Zeilen werden nicht immer ordentlich ausgeblendet.
Man muß immer in die Zeilen klicken
Alles sehr kackelig und nicht flüssig.
Hat da jemand eine Idee, was ich machen kann.
Lieben Dank bereits im Voraus.

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen ausblenden
25.11.2019 10:58:05
volti
Hallo Thorsten,
also der erste Tipp ist schon mal
Applcation.screenupdating = false am Anfang einmalig zu setzen und
Applcation.screenupdating = true am Ende einmalig zu setzen.
Sonst wird zwischendrin immer wieder der Bildschirm aktualisiert, das dann zur "Kackeligkeit" führt.
Außerdem hast es mittels "Intersect" ja so programmiert, dass nur die Zeilen ausgeblendet werden, die aktuell selektiert sind.
Deine Beschreibung sagt auch nicht aus, was Du eigentlich möchtest (mir zumindest nicht)
PS: Was wird hiermit bezweckt? WorksheetFunction.CountA(Range("B17:X18"))
viele Grüße
Karl-Heinz
Anzeige
AW: Zeilen ausblenden
25.11.2019 11:05:40
Thorsten
Hallo Karl-Heinz,
ich habe ein wenig gegooglet und dann diesen Code gefungen.
Hast du den einen besseren Tip, wie ich es hin bekomme.
Hintergrund:
Meine Eingabetabelle soll einfach nur bis zu einem gewissen bereich "mitwachsen"!
Darum möchte ich leere Zeilen in Abhängigkeit der vorherigen ausblenden!
Dieses soll dann auch noch mit Spalten gemacht werden!
AW: Zeilen ausblenden
25.11.2019 12:30:31
volti
Hallo Thorsten,
meinst Du das so? Nach Eingabe von Daten in einer von jeweils zwei Zeilen werden die nachfolgenden zwei Zeilen eingeblendet
Private Sub Worksheet_Change(ByVal Target As Range)
'Sub blendet Zeilen aus, wenn vorherige Zeilen leer sind bzw. ein wenn nicht leer
  Dim iZeile As Long
  Application.ScreenUpdating = False
  If Not Intersect(Target, Range("B17:X40")) Is Nothing Then    'Nur bei änderungen in diesem Bereich
    For iZeile = 42 To 20 Step -2
      Rows(iZeile - 1 & ":" & iZeile).Hidden = _
      WorksheetFunction.CountA(Range("B" & iZeile - 3 & ":X" & iZeile - 2)) = 0
    Next iZeile
  End If
  Application.ScreenUpdating = True
End Sub
viele Grüße
Karl-Heinz

Anzeige
AW: Zeilen ausblenden
25.11.2019 13:59:17
Thorsten
Super Karl-Heinz,
das funktioniert echt super.
Hast du soetwas dann auch noch um Spalten aus zu blenden.
Die Anfprderung soll ähnlich sein.
Bereich L9: X42
Ist in der im Bereich W (W9:W42) kein Eintrag, dann soll X ausgeblendet werden,
ist in der im Bereich V (V9:V42) kein Eintrag, dann soll W ausgeblendet werden,
......
Wenn du auch hierfür so eine super Lösung hättest, wärst du mein Held des Tages.
AW: Zeilen ausblenden
25.11.2019 14:04:00
volti
Ok.
Ich versuche mich daran und melde mich hier wieder :-)
AW: Zeilen ausblenden
25.11.2019 14:14:41
Thorsten
:-) :-) :-)
AW: Zeilen ausblenden
25.11.2019 14:25:45
volti
Hallo Thorsten,
schau mal, ob  es so passt:
Private Sub Worksheet_Change(ByVal Target As Range)
'Sub blendet Zeilen/Spalten aus, wenn vorherige Zeilen/Spalten leer sind bzw. ein wenn nicht leer
  Dim iZeile As Long, iSpalte As Integer
  Application.ScreenUpdating = False
'Zeilen ausblenden
  If Not Intersect(Target, Range("B17:X40")) Is Nothing Then    'Nur bei änderungen in diesem Bereich
    For iZeile = 42 To 20 Step -2
      Rows(iZeile - 1 & ":" & iZeile).Hidden = _
      WorksheetFunction.CountA(Range("B" & iZeile - 3 & ":X" & iZeile - 2)) = 0
    Next iZeile
  End If
  If Not Intersect(Target, Range("L9:X42")) Is Nothing Then    'Nur bei änderungen in diesem Bereich
    For iSpalte = 24 To 12 Step -1
     Columns(iSpalte + 1).Hidden = _
      WorksheetFunction.CountA(Range(Chr$(iSpalte + 64) & "9:" & Chr$(iSpalte + 64) & "42")) = 0
    Next iSpalte
  End If
  Application.ScreenUpdating = True
End Sub

viele Grüße
Karl-Heinz
Spalten ausblenden

Anzeige
AW: Zeilen ausblenden
25.11.2019 15:39:15
Thorsten
Wow,
fast total super.
Zur Zeit wird die Spalte Y noch mit ausgeblendet.
Die muss jedoch sichtbar bleiben.
Da ich deinen Code nicht einmal im Ansatz verstehe, hoffe ich noch einmal auf deine Hilfe!
AW: Zeilen ausblenden
25.11.2019 16:41:06
volti
Hi,
brauchst Du nur die Beginnspaltennummer anpassen:
For iSpalte = 23 To 12 Step -1
Da ja mehrfach das gleiche gemacht werden soll, wurden die Aktivitäten in zwei Schleifen (einmal für Zeilen und einmal für Spalten) implementiert.
In den Schleifen werden die aus/einzublendenden Zeilen und die zugehörigen Referenzzeilen/spalten ermittelt und über die WorksheetFunction festgestellt, ob diese leer sind. Dann erfolgt Ein/Ausblendung.
Hier spart man sich die zig-fache Ausweisung der einzelnen Zeilenbereiche. Und es kann ohne weiteren Code auch einfach angepasst werden.
viele Grüße
Karl-Heinz
Anzeige
AW: Zeilen ausblenden
25.11.2019 16:48:10
Thorsten
Es läuft,
du bist mein Held!!!!!!!!!!!!!!
Ganz ganz lieben Dank dir für deine Unterstützung!
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige