Excel 2010 VBA Zeilen ausblenden bei Beding

Hallo,

ich bin auf der Suche nach einem Makro das mir die Zeilen ausblendet wenn der Bereich A4:smiley:400 leer ist.

Habt Ihr Vorschläge für mich ?

Vielen Dank

Hi,

wirf den Makrorekorder an. Zeichne das Ausblenden der Zeilen auf. Poste den Code hier - aber bitte mit Pre-Tag -, dann kann man Dir helfen, die Bedingung einzufügen.

M.

Habt Ihr Vorschläge für mich ?

ThisWorkbook.Worksheets(„Druck Version“).Columns(„P:stuck_out_tongue:“).EntireColumn.Hidden = False

etwas anpassen wie range() und namen der Tabelle

Hallo,

Hallo Rossi33,

ich bin auf der Suche nach einem Makro das mir die Zeilen
ausblendet wenn der Bereich A4:smiley:400 leer ist.

Das Makro ist kein Problem. Fraglich sind die Details. A4:smiley:400 hört sich nach einem statischen Bereich an. Kann mir aber nicht vorstellen, dass das tatsächlich so ist.

Habt Ihr Vorschläge für mich ?

Verstehe ich recht, dass Du alle Zeilen in dem genannten Bereich ausblenden willst, wenn die Spalten A bis D leer sind?

Vielen Dank

Wenn ich falsch liege gib mir Bescheid. Ansonsten werde ich das Makro so aufsetzen. Ausserdem empfehle ich Dir ein Makro, dass dieses Ausblenden bei Bedarf rückgängig macht.
Hast Du Erfahrung mit Aufrufen und Editieren von Makros?
MfG MwieMichel

Hallo Rossi33,

Makro das mir die Zeilen
ausblendet wenn der Bereich A4:smiley:400 leer ist.

Folgenden Code in die Entwicklungsumgebung kopieren:

Option Explicit

Sub AusBlenden()

’ Variablen deklarieren
Dim ASpalte As Long, ESpalte As Long, AZeile As Long, EZeile As Long
Dim IZeile As Long, ISpalte As Long, MaxZeile As Long, IInhalt As Integer

’ Variablen (Bereich) initialisieren
AZeile = 4
EZeile = 400
ASpalte = 1 'entspricht Spalte A
ESpalte = 4 'entspricht Spalte D

Application.ScreenUpdating = False
With ActiveWorkbook.ActiveSheet
MaxZeile = .UsedRange.Rows.Count
'MsgBox (MaxZeile)
If MaxZeile „“ Then
IInhalt = IInhalt + 1
'MsgBox ("IInhalt ist " & IInhalt)
End If
Next
If IInhalt = 0 Then
Rows(IZeile).EntireRow.Hidden = True
End If
Next
End With
Application.ScreenUpdating = True
End Sub

Sub EinBlenden()

’ Variablen deklarieren
Dim MaxZeile As Long

With ActiveWorkbook.ActiveSheet
MaxZeile = .UsedRange.Rows.Count
Rows(„1:“ & MaxZeile).Select
Selection.EntireRow.Hidden = False
Cells(1, 1).Select
End With
End Sub

Aufrufen der Makros über Alt+ F8, Editieren über Alt + F11. Über eine Bewertung oder Feedback würde ich mich freuen.

MfG MwieMichel

Grüezi Rossi

ich bin auf der Suche nach einem Makro das mir die Zeilen
ausblendet wenn der Bereich A4:smiley:400 leer ist.

Habt Ihr Vorschläge für mich ?

Zähle in einer Hilfsspalte die Anzahl Einträge von Spalte A:smiley: und blende dann über den Autofilter alle Zeilen aus, die in der Hilfsspalte eine ‚0‘ haben.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo MwieMichel,

perfekt,dass Makro funktioniert so wie ich es gesucht habe. Im Bereich A4:smiley:400 ist das Ergebnis der Formeln dynamisch. Zur Zeit sind „noch“ keine Formeln hinterlegt, dies passiert Morgen. Hoffe das Makro funktioniert dann auch noch. Ich danke Dir vielmals

Gruss Rossi33

Hallo Rossi,

ich hoffe ich hab dich richtig verstanden.

Gruß
Franz

Sub ZeilenAusblenden()
 Dim rngBereich As Range
 Set rngBereich = ActiveSheet.Range("A4:smiley:400")
 If rngBereich.Cells.Count = Application.WorksheetFunction.CountBlank(rngBereich) Then
 rngBereich.EntireRow.Hidden = True
 End If
End Sub

Hallo Rossi33,

hier mein Vorschlag (stammt aus excel2003):

Sub ausblenden()
Dim c As Variant
For Each c In Worksheets(„tabelle1“).Range(„A4:smiley:400“)
If c.Value = Empty Then
c.EntireRow.Hidden = True
End If
Next c
End Sub

Gruß Hugo

Hallo,

Um festzustellen ob in dem Bereich Zellen gefuellt sind, kann man sich der .END Funktion des Range Objektes bedienen.

schau mal dort : http://www.excel-inside.de/letzte-zeile-letzte-spalt…

Dann kann man den Bereich definieren und ein bzw. Ausschalten, mittels .Hidden = true/false

Tschau
Peter

Hallo MwieMichel,

Hallo Rossi33,

perfekt,dass Makro funktioniert so wie ich es gesucht habe. Im
Bereich A4:smiley:400 ist das Ergebnis der Formeln dynamisch. Zur
Zeit sind „noch“ keine Formeln hinterlegt, dies passiert
Morgen. Hoffe das Makro funktioniert dann auch noch. Ich danke
Dir vielmals

Die Anweisung
Selection.EntireRow.Hidden = False
sollte sich eigentlich nur auf Darstellung gegenüber dem Betrachter beziehen. Wenn’s trotzdem Probleme gäbe, meld Dich.

Gruss Rossi33

MfG MwieMichel

Hallo Rossi33,

Google ist dein Freund :wink:

hier ist die Lösung: http://www.office-loesung.de/ftopic60845_0_0_asc.php

If Trim(Range(„A10“)) = „“ Then Rows(10).EntireRow.Hidden = True

Gruß
Harry

hallo, spät aber dennoch eine Antwort.
'Schauen ob der Bereich leer ist:
sub test()
dim bLeer as Boolean
dim l as long
bLeer = false
for l=4 to 400
if tabelle1.cells(l,1)"" then
bLeer=true
end if
next l
if bLeer = false then
'Zellen sind leer --> Ausblenden
Columns(„A:A“).Select
Selection.EntireColumn.Hidden = True
else
'Zellen sind nicht leer
exit sub
end if
end sub

Grüsse Sebastian

Hallo,
vesuche es mal mit diesem Makro unter Tabelle1 (nicht als Modul einfügen !!)
Gruß,
Jochen

Private Sub Worksheet_Change(ByVal Target As Range)

For i = 4 To 400
For j = 1 To 4
Cells(i, j).Select
Wert = Cells(i, j).Value
Select Case Wert
Case Is „“
GoTo weiter
End Select
Next j
Next i
weiter:

k = i + j
Select Case k
Case Is = 406
Rows(„4:400“).Select
Selection.EntireRow.Hidden = True
End Select
Cells(i, j).Select
End Sub

Hallo,

ich hoffe, das hilft:

Sub Ausblenden()
Dim Zeile as Integer
Dim Spalte as Byte
Dim Leer as Boolean

'Initialisierung
Leer = True

'Im Schleifendurchlauf jede Zelle prüfen, ob leer. Falls eine Zelle nicht leer, wird die Variable Leer auf false gesetzt und es wird keine Zeile ausgeblendet (auch die nicht, die ggf. leer sind)
For Zeile = 4 to 400
For Spalte = 1 to 4 'Spalten A-D)
if cells(Zeile, Spalte).Value „“ then Leer = false
if not Leer then exit for
Next Spalte
if not Leer then exit for
Next Zeile

If Leer then Rows(„4:400“).EntireRow.Hidden=True
End Sub