Thema Datum  Von Nutzer Rating
Antwort
Rot Zeilen/Spalten im ganzen Dokument ausblenden
15.09.2017 08:27:56 Joeker
Solved
15.09.2017 16:17:13 Mackie
NotSolved
18.09.2017 08:48:55 Gast87329
NotSolved

Ansicht des Beitrags:
Von:
Joeker
Datum:
15.09.2017 08:27:56
Views:
923
Rating: Antwort:
 Nein
Thema:
Zeilen/Spalten im ganzen Dokument ausblenden

Hallo zusammen,

 

ich möchte mir die Arbeit ein bisschen leichter machen und bastle deshalb an ein paar Makros.

Mein Ziel ist es, leere Zellen und Spalten in Excel in Matrizen in bestimmten Tabellenblättern (Januar - Dezember) auszublenden und wieder einzublenden.

Ich habe dazu 2 Codes gefunden und an meine Bedürfnisse angepasst, doch da sie nur zum Teil mein Anliegen erfüllen, wollte ich sie jetzt kombinieren.

Der erste Code blendet alle leeren Zeilen und Spalten im Bereich B43:U73 aus und auch wieder ein und funktioniert soweit. Jedoch nur für ein Tabellenblatt...

Option Explicit

Const cstrSheets As String = "Jan;Febr;März;April;Mai;Juni;Juli;August;Sept;Okt;Nov;Dez"

Sub P()
Dim rng As Range
Dim n As Integer
Dim blnHidden As Boolean
Set rng = Range("B43:U73")
Application.ScreenUpdating = False
If Not blnHidden Then
blnHidden = True
For n = 1 To rng.Rows.Count
If Application.CountA(rng.Rows(n)) = 0 Then rng.Rows(n).Hidden = blnHidden
Next
For n = 1 To rng.Columns.Count
If Application.CountA(rng.Columns(n)) = 0 Then rng.Columns(n).Hidden = blnHidden
Next
Else
blnHidden = False
rng.Rows.Hidden = blnHidden
rng.Columns.Hidden = blnHidden
End If
Application.ScreenUpdating = True
End Sub


Sub Q()
  
  vntSheets = Split(cstrSheets, ";")
  For lngIndex = 0 To UBound(vntSheets)
    Sheets(vntSheets(lngIndex)).Range("B43:U73").EntireRow.Hidden = False
    Sheets(vntSheets(lngIndex)).Range("B43:U73").EntireColumn.Hidden = False
  Next
  
End Sub


Der zweite Code blendet alle Zeilen in einem definierten Bereich für definierte Sheets aus und wieder ein.

Option Explicit

Const cstrSheets As String = "Jan;Febr;März;April;Mai;Juni;Juli;August;Sept;Okt;Nov;Dez"

Sub aus()
  Dim lngLast As Long, rngHide As Range
  Dim vntSheets As Variant, lngIndex As Long
  
  vntSheets = Split(cstrSheets, ";")
  For lngIndex = 0 To UBound(vntSheets)
    If rngHide Is Nothing Then
      With Sheets(vntSheets(lngIndex))
        lngLast = Evaluate("MAX(IF('" & .Name & "'!B43:U73<>"""",ROW(43:73)))")
        
        If lngLast = 0 Then lngLast = 24
        
        On Error Resume Next
        Set rngHide = .Range("B43:B" & lngLast).SpecialCells(xlCellTypeBlanks)
        On Error GoTo 0
      End With
    End If
    If Not rngHide Is Nothing Then Sheets(vntSheets(lngIndex)).Range(rngHide.Address).EntireRow.Hidden = True
  Next
  
  Set rngHide = Nothing
End Sub


Sub ein()
  Dim vntSheets As Variant, lngIndex As Long
  
  vntSheets = Split(cstrSheets, ";")
  For lngIndex = 0 To UBound(vntSheets)
    Sheets(vntSheets(lngIndex)).Range("B43:U73").EntireRow.Hidden = False
  Next
  
End Sub


Ich möchte jetzt Code 1 so in Code 2 integrieren (oder andersherum ;)), dass für den Bereich B43:U73 in allen Tabellenblättern alle leeren Zeilen und Spalten ausgeblendet werden.

Danke schon mal im Voraus :)

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Zeilen/Spalten im ganzen Dokument ausblenden
15.09.2017 08:27:56 Joeker
Solved
15.09.2017 16:17:13 Mackie
NotSolved
18.09.2017 08:48:55 Gast87329
NotSolved