Thema Datum  Von Nutzer Rating
Antwort
Rot VBA: Tabelle filtern und in diesem Bereich Spalten ausblenden
29.04.2020 09:24:12 Caffy
NotSolved
29.04.2020 10:03:46 Mase
NotSolved
29.04.2020 10:07:09 Mase
NotSolved
29.04.2020 11:28:42 Gast71866
NotSolved
29.04.2020 11:31:02 Mase
NotSolved
30.04.2020 08:57:12 caffy
NotSolved
30.04.2020 09:41:03 Mase
NotSolved
30.04.2020 15:09:20 caffy
NotSolved
30.04.2020 19:53:58 Mase
NotSolved

Ansicht des Beitrags:
Von:
Caffy
Datum:
29.04.2020 09:24:12
Views:
760
Rating: Antwort:
  Ja
Thema:
VBA: Tabelle filtern und in diesem Bereich Spalten ausblenden

Hallo,
ich habe vor kurzem begonnen mich mit VBA auseinanderzusetzten und habe mir für die Arbeit eine Tabelle mit Makros gebastelt.
In der Tabelle habe ich senkrecht Kompetenzen nach den einzelnen Bereichen aufgetragen nd horizontal die Mitarbeiter.
Ich habe nun mehrere Makros erstellt, welche die Tabelle jeweils nach einem Bereich filtern (anhand einer Nummer) und anschließend diesen Bereich nach leren Spalten durchsuchen und diese ausblenden.


An sich funktioniert alles, nur eine Sache stört mich:
Da immer wieder Kompetenzen hinzugefügt werden, muss ich die Makros immer wieder nachbearbeiten.
Der Filter funktiniert dynamisch, aber durch das hinzufügen von Kompetenzen ändert sich immer der Bereich in dem das Makro nach leeren Spalten sucht um diese dann auszublenden.
Um nicht immer nacharbeiten zu müssen, wäre es super wenn das Makro immer in dem Bereich, welcher sich ergiebt wenn das Makro die Tabelle nach bestimmten Kriterien filtert, nach leeren Spalten sucht und nicht wie bisher in einem vorher fest definierten Bereich.
Anbei ist mein bisheriges Makro für einen bestimmten Bereich X:
 

Sub filtern_ausblenden()

'Das Tabellenblatt aktivieren
ThisWorkbook.Worksheets("Aufgaben").Activate
'FilterEinstellungen auf null setzten
ActiveSheet.Range("A12:H425").AutoFilter

Dim rngFilterRange As Range
Dim lngCriteriaCount As Long
Dim arrCriteria() As String
'Anzahl der Kriterien festlegen
lngCriteriaCount = 2
ReDim arrCriteria(0 To lngCriteriaCount - 1)
'Filterkriterien festlegen
arrCriteria(0) = "0"
arrCriteria(1) = "0.*"

Set rngFilterRange = ActiveSheet.Range("A12:H425")
rngFilterRange.AutoFilter Field:=1, _
Criteria1:=arrCriteria(), _
Operator:=xlFilterValues

'Horizontal filtern
Dim rng As Range
Dim n As Integer
'Bereich hier soll immer der Bereich sein, der sich ergiebt wenn Tabelle zuvor nach bestimmten Kriterium gefiltert wurde
Set rng = Range("D12:DC17")
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


Ich hoffe ich habe mich verständlich ausgedrückt und jemand kann mir bei dem Problem helfen.
VG Caffy
 


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 VBA: Tabelle filtern und in diesem Bereich Spalten ausblenden
29.04.2020 09:24:12 Caffy
NotSolved
29.04.2020 10:03:46 Mase
NotSolved
29.04.2020 10:07:09 Mase
NotSolved
29.04.2020 11:28:42 Gast71866
NotSolved
29.04.2020 11:31:02 Mase
NotSolved
30.04.2020 08:57:12 caffy
NotSolved
30.04.2020 09:41:03 Mase
NotSolved
30.04.2020 15:09:20 caffy
NotSolved
30.04.2020 19:53:58 Mase
NotSolved