Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeile ausblenden, wenn bestimmter Bereich leer

Zeile ausblenden, wenn bestimmter Bereich leer
14.06.2016 10:53:34
Benji
Guten Tag,
ich bin auf der Suche nach einem Makro dass mir die Zeile ausblendet, wenn im Bereich "C:AD" der jeweiligen Zeile kein Wert also "" steht.
Ich bin auf folgenes Makro gestossen.

Sub Ausblenden()
'Zeilen ausblenden wenn 0 und einblenden wenn 1 in Spalte A steht
Columns(1).Insert
With Range("A1:A" & Cells(65536, 2).End(xlUp).Row)
'Einblenden
.FormulaR1C1 = "=if(RC2=1,true,row())"
.Formula = .Value
.SpecialCells(xlCellTypeConstants, 4).EntireRow.Hidden = False
'Ausblenden
.FormulaR1C1 = "=if(RC2=0,true,row())"
.Formula = .Value
.SpecialCells(xlCellTypeConstants, 4).EntireRow.Hidden = True
.EntireColumn.Delete
End With
End Sub
Hierfür habe Ich in der Hilfspalte "AH" eine Abfrage gestartet die mir den Wert 1 oder 0 setzt. Allerdings bekomm ich das Makro nicht funktionstüchtig auf "AH" umgestellt.
Ich wäre sehr dankbar wenn mir jmd erkären könnte was genau in diesem Makro geschieht und wie das umgebaute Makro für mich aussehen würde.
Gruß
Benji

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

Betreff
Datum
Anwender
Anzeige
AW: Zeile ausblenden, wenn bestimmter Bereich leer
14.06.2016 11:46:45
Dieter
Hallo Benji,
du kannst das mit der folgenden Prozedur machen
Sub Ausblenden()
Dim letzteZeile As Long
Dim rng As Range
Dim ws As Worksheet
Dim zeile As Long
Set ws = ActiveSheet
letzteZeile = ws.UsedRange.Rows.Count
For zeile = 1 To letzteZeile
Set rng = ws.Cells(zeile, "C").Resize(1, 28)
If Application.WorksheetFunction.CountBlank(rng) = 28 Then
ws.Rows(zeile).Hidden = True
End If
Next zeile
End Sub

Viele Grüße
Dieter

AW: Zeile ausblenden, wenn bestimmter Bereich leer
14.06.2016 12:02:05
Werner
Hallo Benji,
oder so:
Sub ausblenden()
Dim i As Long
With Sheets("Tabelle1") 'Tabellenblatt ggf. anpassen
For i = 1 To .Cells(.Rows.Count, 3).End(xlUp).Row 'letzten Zeile in Spalte C, ggf. anpassen
.Rows(i).Hidden = WorksheetFunction.CountBlank(.Cells(i, 3).Resize(, 28)) = 28
Next
End With
End Sub
Gruß Werner

Anzeige
AW: Zeile ausblenden, wenn bestimmter Bereich leer
14.06.2016 12:16:48
UweD
Ich hab noch was ohne Schleife.

Sub Ausblenden()
On Error GoTo Fehler
Dim LR&, CC%
With ActiveSheet
.Rows.Hidden = False
LR = .Cells(Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte A
CC = .Cells.SpecialCells(xlCellTypeLastCell).Column + 1 'Letzte Spalte des gesamten  _
Blattes +1
.Range(Cells(1, CC), Cells(LR, CC)).FormulaR1C1 = "=IF(COUNTA(RC3:RC30)>0,"""",false)"
.Columns(CC).SpecialCells(xlCellTypeFormulas, 4).EntireRow.Hidden = True
.Columns(CC).ClearContents
End With
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub
- alle Zeilen werden eingeblendet
- Letzte Zeile wird ermittelt
- erste freie Spalte wird ermittelt
- dort wird per Formel ermittelt, ob der Bereich in der Zeile leer ist
- Alle betroffenen Zeilen werden ausgeblendet
- Hilfsspalte wird geleert
Gruß UweD

Anzeige
AW: Zeile ausblenden, wenn bestimmter Bereich leer
14.06.2016 16:49:17
Benji
Dank Euch erst mal für die raschen Antworten.
Soweit funktionieren die Vorschläge wunderbar.
Nur bei dem Vorschlag von UweD habe ich das Problem dass die Abfrage über CountA leider nicht das gewünschte Ergebnis erzielt. Die Zellen sind ja nicht wirklich leer, sondern nur über eine Formel auf ""(Leer) gesetzt. Aber Ich hab´s mal mit ANZAHL2 getestet, er zählt mir die Zellen als "nicht leer".
Könnte man dass Makro noch umschreiben? Würde es gern testen ob es mir von der Berechnungsdauer was bringt.
Vielen Dank und Grüße,
Benji

AW: Zeile ausblenden, wenn bestimmter Bereich leer
14.06.2016 20:53:22
Werner
Hallo Benji,
ich habe mal mit dem Code von Uwe ein wenig herumgespielt
Sub Ausblenden()
On Error GoTo Fehler
Dim LR&, CC%
With ActiveSheet
.Rows.Hidden = False
LR = .Cells(Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte A
CC = .Cells.SpecialCells(xlCellTypeLastCell).Column + 1 'Letzte Spalte des gesamten _
Blattes 1
.Range(Cells(1, CC), Cells(LR, CC)).FormulaR1C1 = "=IF(COUNTBLANK(RC3:RC30)=28,false,""" _
")"
.Columns(CC).SpecialCells(xlCellTypeFormulas, 4).EntireRow.Hidden = True
.Columns(CC).ClearContents
End With
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Gruß Werner

Anzeige
AW: Zeile ausblenden, wenn bestimmter Bereich leer
15.06.2016 08:56:54
Benji
Vielen Dank nochmals an alle für die verschiedenen Möglichkeiten und Hilfestellungen.
Der Code funktioniert jetzt auch wunderbar, danke Werner.
Gruß Benji

AW: Gerne und danke für die Rückmeldung....
15.06.2016 11:15:27
Werner
...wobei der Dank ja mehr gebührt.
Gruß Werner

335 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige