Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
924to928
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
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Worksheet Change

Worksheet Change
09.11.2007 13:49:36
Luftibus
Guten Tag geschätze Excel-HelferInnen
Wer kann mir hierbei helfen?
Ausgangslage:
beim Blattaufruf ist F2 leer, A6:bis aktuell bis A750 = 0 (durch Funktion =Zählenwenn(Bereich;$F$2)
Ich möchte, dass nach jeder Änderung des Wertes in der Zelle F2 folgendes passiert:
wenn F2 <> ““; alle Zeile von 6 bis… werden angezeigt, die in der Spalte A einen Wert > 0 haben.
wenn F2 = ““; alle Zeilen von 6 bis… werden angezeigt, die in der Spalte A einen Wert = 0 haben.
(Die Zeilen 1-5 sind immer sichtbar)
Vielen Dank für eure Unterstützung !!!!!!
Beste Grüsse
Luftibus

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

Betreff
Datum
Anwender
Anzeige
AW: Worksheet Change
09.11.2007 15:24:07
Oberschlumpf
Hi Luftibus (is das dein echter Name?...fiese Eltern!)
Ich würde gern helfen (na ja..es zumindest versuchen)
Aber ich müsste zuerst deine Datei "nachbauen", was aber durchaus mit Fehlern enden kann, da ich ja deine Beschreibung falsch verstehen könnte.
Kannst du uns vllt eine Bsp-Datei per Upload zur Verfügung stellen?
Danke & Ciao
Thorsten

AW: Worksheet Change
09.11.2007 15:26:10
Renee
Hallo Luftibus,
Diesen Code in das entsprechende Tabellenblatt:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim dRow As Double
If Intersect(Target, Range("F2")) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Application.EnableEvents = False
For dRow = 6 To Range("A" & Rows.Count).End(xlUp).Row
Rows(dRow).Hidden = Not (((Range("F2") = "" And Cells(dRow, 1) = 0) Or _
(Range("F2")  "" And Cells(dRow, 1) > 0)))
Next dRow
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


GreetZ Renee

Anzeige
AW: Worksheet Change
09.11.2007 15:28:00
Oberschlumpf
Renee is nich so faul wie ich :o))

AW: Worksheet Change
09.11.2007 15:48:01
Luftibus
Hallo Renee
danke, dass du mir hilfst!!!!
Wenn ich einen Wert in F2 schreibe funktioniert es tadellos - wenn ich jedoch dann F2 lösche, wird ab A6 jedoch keine Zeile mehr angezeigt. Dabei sollten wieder alle sichtbar sein.
allenfalls lade ich gerne eine beispieldatei hoch?!
gruss Luftibus

AW: Worksheet Change
09.11.2007 16:11:00
Luftibus
Hallo zusammen
anbei ein Testfile.....
https://www.herber.de/bbs/user/47561.xls
wenn in ein F2 ein Begriff eingegeben wird, der in der Tabelle nicht vorhanden ist, wird keine Zeile mehr angezeigt (hier wäre cool, wenn alle Zeilen eingeblendet bleiben, und eine Message-Box darauf hinweist, dass der Begriff nicht vorhanden ist. Alle Zeilen müssten sichtbar bleiben.
Danke - Danke - Danke !!!!!!
Gruss Luftibus

Anzeige
AW: Worksheet Change
09.11.2007 16:50:00
Renee
Hi Luftibus,
Ich habe genau das umgesetzt, was Du im ersten Post verlangt hast,
wenn Du aber bei F2 = "" wieder alles (d.h. inkl. 0) sehen willst dann ändere:

statt:
Rows(dRow).Hidden = Not (((Range("F2") = "" And Cells(dRow, 1) = 0) Or _
(Range("F2")  "" And Cells(dRow, 1) > 0)))
das:
Rows(dRow).Hidden = Not (((Range("F2") = "") Or _
(Range("F2")  "" And Cells(dRow, 1) > 0)))


GreetZ Renee

AW: Worksheet Change
09.11.2007 17:04:24
Luftibus
Hi Renee
ich weiss deine Hilfe sehr zu schätzen!!!
aber bei mir bleiben die Zeilen ausgeblendet?
Ich versuche mal nachzuvollziehen, was da genau läuft, oder eben nicht läuft....
Funktioniert es bei dir?
Danke und Gruss
Luftibus

Anzeige
AW: Worksheet Change
09.11.2007 17:56:23
Renee
Hi again,
Ich hab was übersehen (alle Zeilen = 0 und v.a. letzte Zeile > 0)
Also dann so:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim dRow As Double
If Intersect(Target, Range("F2")) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Application.EnableEvents = False
If Range("F2") = "" Then
Rows().Hidden = False
Else
For dRow = 6 To Range("A" & Rows.Count).End(xlUp).Row
Rows(dRow).Hidden = Not (Range("F2")  "" And Cells(dRow, 1).Value > 0)
Next dRow
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


GreetZ Renee

Anzeige
AW: Vereinfacht
09.11.2007 18:01:00
Renee
Hi again again...
Natürlich sollte überflüssiger Code auch entfernt sein:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim dRow As Double
If Intersect(Target, Range("F2")) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Application.EnableEvents = False
If Range("F2") = "" Then
Rows().Hidden = False
Else
For dRow = 6 To Range("A" & Rows.Count).End(xlUp).Row
Rows(dRow).Hidden = Cells(dRow, 1).Value = 0
Next dRow
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


GreetZ Renee (lightly drunken ;-)

Anzeige
Frage noch offen - Worksheet Change (oT.)
09.11.2007 16:51:07
Luftibus

AW: Worksheet Change
09.11.2007 20:47:31
Gerd
Hallo Luftibus,
probier mal.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address  "$F$2" Then Exit Sub
With Range("A5:A" & Range("B65536").End(xlUp).Row)
If Application.CountIf(Range("B6:F" & Range("B65536").End(xlUp).Row), Target.Value) > 0 Then
.AutoFilter Field:=1, Criteria1:="0", visibledropdown:=False
Else
.AutoFilter Field:=1, visibledropdown:=False
End If
End With
End Sub


Gruß Gerd

Gerd + Renee - vielen Dank !!! ((oT.)
12.11.2007 08:55:00
Luftibus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige