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

VBA Zeilen ausblenden wenn 0

VBA Zeilen ausblenden wenn 0
17.12.2008 10:14:17
AndyV
Hallo,
ich VBA-Laie brauche einen Code für TabBlatt4.
In diesem Blatt wird in Spalte A11:A100 über
eine WENN-Formel in jeder Zelle eine 0 oder nichts
angezeigt.
Die Zeilen mit 0 sollen automatisch ausgeblendet
werden.
Bitte um Hilfe
Gruß
Andy

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeilen ausblenden wenn 0
17.12.2008 10:29:47
Armin
Hallo Andy,
dazu brauchst Du noch ein Event. z.B. Tabelle aufrufen, in bestimmten Zellen Werte eingeben usw..
Oder du nimmtst das Makro:

Sub Makro1()
Dim Rx As Range
For Each Rx In Worksheets("Tabelle1").Range("A10:A100")
If Rx.Value = 0 Then Rx.EntireRow.Hidden = True
Next
End Sub


und ruftst es über Makro aufrufen in der Standard-Oberfläche oder einen Butto erstellen und das Makro zuweisen.
Gruß Armin

AW: VBA Zeilen ausblenden wenn 0
17.12.2008 10:29:00
Matthias
Hallo
probiers mal so:

Private Sub Worksheet_Calculate()
Dim loX As Long
For loX = 11 To 100
If Cells(loX, 2).Value = "0" Then Rows(loX).EntireRow.Hidden = True
Next
End Sub


Gruß Matthias

Anzeige
und damit es nicht so flackert ...
17.12.2008 10:40:00
Matthias
Hallo
hatte versehentlich Spalte B benutzt, sorry
hier nun mit Spalte A

Private Sub Worksheet_Calculate()
Dim loX As Long
Application.ScreenUpdating = False 'Bildschirmaktualisierung aus
For loX = 11 To 100
If Cells(loX, 1).Value = "0" Then Rows(loX).EntireRow.Hidden = True
Next
Application.ScreenUpdating = True 'Bildschirmaktualisierung wieder an
End Sub


Gruß Matthias

AW: und damit es nicht so flackert ...
17.12.2008 10:54:37
AndyV
Hallo,
bekomme folgende Meldung:
Laufzeitfehler "1004" Hiddeneigenschaft
If Cells(loX, 1).Value = "0" Then Rows(loX).EntireRow.Hidden = True
Gruß
Andy
Anzeige
steht der Code auch in der Tabelle ?
17.12.2008 11:06:00
Matthias
Hallo
Hast Du den Code auch in die entsprechenden Tabelle kopiert ? (nicht in ein Modul)
oder ist das Tabellenblatt geschützt ?
Gruß Matthias
AW: steht der Code auch in der Tabelle ?
17.12.2008 11:21:00
AndyV
Hallo Matthias,
der Code steht in Tab4
Nach der Fehlermeldung friert Excel komplett ein
und ich kann es nur über den Takmanager beenden.
Gruß
Andy
sehr seltsames Verhalten von Excel
17.12.2008 11:42:00
Excel
Hallo
Ich nutze hauptsächlich XL2000, da klappt das einwandfrei!
habe es jetzt mal mit XL2007 getestet, da bekomme ich einen Fehler
setzt ich an den Anfang On Error Resume Next, friert mir auch Excel ein. Mysteriös!
Da bin ich jetzt überfragt, sorry.
Lass es mal offen
Gruß Matthias
Anzeige
AW: sehr seltsames Verhalten von Excel
17.12.2008 13:02:21
Excel
Hallo Mathias und Andy,
das Ein-/Ausblenden löst in den neueren Excel.Version auch das Calculate-Ereignis aus.
Deshalb müssen die Ereignis-Prozeduren vorübergehend deaktiviert werden, damit Excel hier nicht in eine Endlos-Schleife bis zum Absturz gerät.
Mit folgender Anpassung sollte es funktionieren.
Gruß
Franz

Private Sub Worksheet_Calculate()
Dim loX As Long
Application.ScreenUpdating = False 'Bildschirmaktualisierung aus
Application.EnableEvents = False 'Ereignismakros deaktivieren
For loX = 11 To 100
Rows(loX).EntireRow.Hidden = Cells(loX, 1).Value = "0"
Next
Application.EnableEvents = True 'Ereignismakros aktivieren
Application.ScreenUpdating = True 'Bildschirmaktualisierung wieder an
End Sub


Anzeige
alles klar, Danke oT
17.12.2008 21:22:43
Matthias
AW: VBA Zeilen ausblenden wenn 0
17.12.2008 13:09:16
Rudi
Hallo,
das hier funzt unter WinXP/ ExcelXP einwandfrei:

Sub tt()
Dim i As Long
Application.ScreenUpdating = False
For i = 11 To 100
Rows(i).Hidden = Cells(i, 1) = 0
Next
Application.ScreenUpdating = True
End Sub


Gruß
Rudi

AW: VBA Zeilen ausblenden wenn 0
17.12.2008 13:32:38
Daniel
Hi
für sowas nimmt man den Autofilter in Calculate-Event:
(Code ins Modul des Tabellenblatts einfügen!)
da der Autofilter das Calculate-Event auch nochmal aufruft, und sich somit das Makro ständig selbst aufrufen würde (was zur dauerschleife führt), muss man das Aufrufen der Events unterbinden.
Bis Excel 2003 gabs hierfür die "Application.EnableEvents"-Eigenschaft, damit würde das Makro so aussehen:

Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Range("A10:A100").AutoFilter Field:=1, Criteria1:="="
Application.EnableEvents = True
End Sub


allerdings wurde meines Wissens nach das Application.EnableEvents in Excel 2007 abgeschafft, dh. man muss diese Funktionalität mithilfe einer Variable selbst nachbauen
die Variable muss ausserhalb der der Prozedur, ganz oben unter Option Explicit dimensioniert werden:


Option Explicit
Dim EventsAus As Boolean
Private Sub Worksheet_Calculate()
If EventsAus Then Exit Sub
EventsAus = True
Range("A10:A100").AutoFilter Field:=1, Criteria1:="="
EventsAus = False
End Sub


wenn, analog dem normalen ausblenden die Filter-Markierungen nicht erscheinen sollen, kannst du das mit dieser Erweiterung in der autofilter-Zeile erreichen:
Range("A10:A100").AutoFilter Field:=1, Criteria1:="=", VisibleDropDown:=False
Gruß, Daniel

Anzeige
AW: VBA Zeilen ausblenden wenn 0
17.12.2008 15:00:07
Gerd
Hi,
"...allerdings wurde meines Wissens nach das Application.EnableEvents in Excel 2007 abgeschafft,..."
Quatsch, 11833 anrufen.
mfg Gerd

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige