Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1876to1880
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
Zeilen einer Tabelle ein- und ausblenden
23.03.2022 16:44:11
Steve
Hallo zusammen,
ich brauche mal wieder ein wenig Hilfe,
ich habe eine ActiveX Combobox "Darstell_Stahl1". In dieser gibt es 2 Optionen: "alle Werkstücke" und "nur innerhalb der letzten 14 Tagen fertiggestellte und unfertige Werkstücke". Je nachdem, welcher Eintrag in dieser ComboBox aktiviert ist, möchte ich in einer Tabelle weiter unten auf dem Blatt a) alle Zeilen einblenden oder b) wenn in Spalte15 der Wert in der Zelle "f" oder "F" beträgt UND gleichzeitig das Datum in der Spalte11 vor dem (heutigen Datum -14 Tage) liegt.
Ich habe dafür folgenden Code:

Private Sub Darstell_Stahl1_Change()
Dim LR
Dim fertig As Range
Dim fe As Range
ActiveSheet.Unprotect "suse"
If Darstell_Stahl1.Text = "alle Werkstücke" Then
ActiveSheet.Rows.Hidden = False
ActiveSheet.Rows(16).Hidden = True
Else
Exit Sub
End If
If Darstell_Stahl1.Text = "nur innerhalb der letzten 14 Tage fertiggestellte und unfertige Werkstücke" Then
With Worksheets("Aufträge").ListObjects("Aufträge1")
For Each LR In .ListRows
Set LR = LR.Range.EntireRow
If Not LR.Hidden Then
Set fertig = Intersect(LR, .ListColumns("Spalte15").Range)
Set fe = Intersect(LR, .ListColumns("Spalte11").Range)
If fertig.Value = "f" Or fertig.Value = "F" And fe.Value 
Die Option "alle Werkstücke" funktioniert so, und tut genau dass, was sie soll. Für die zweite Option bekomme ich keinen Fehler angezeigt, jedoch tut sich in meiner Tabelle gar nichts.
Weiß jemand woran das liegt? Ich bin auch für einen komplett neuen Ansatz offen.
Vielen Dank für Eure Zeit und Mühe.
Viele Grüße
Steve

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen einer Tabelle ein- und ausblenden
23.03.2022 16:46:41
Steve
Sorry, im letzten Satz vor dem Code fehlt noch "...in der Spalte11 vor dem (heutigen Datum -14 Tage) liegt, diese Zeilen dann ausblenden."
War zu schnell.
AW: Zeilen einer Tabelle ein- und ausblenden
23.03.2022 16:58:32
UweD
Hallo
Wenn Nicht "nur innerhalb..." wird das Makro durch das Else..Exit sub beendet
Die andere Auswahl kommt nie zum Tragen.
ungetestet...

Private Sub Darstell_Stahl1_Change()
Dim LR
Dim fertig As Range
Dim fe As Range
ActiveSheet.Unprotect "suse"
If Darstell_Stahl1.Text = "alle Werkstücke" Then
ActiveSheet.Rows.Hidden = False
ActiveSheet.Rows(16).Hidden = True
ElseIf Darstell_Stahl1.Text = "nur innerhalb der letzten 14 Tage fertiggestellte und unfertige Werkstücke" Then
With Worksheets("Aufträge").ListObjects("Aufträge1")
For Each LR In .ListRows
Set LR = LR.Range.EntireRow
If Not LR.Hidden Then
Set fertig = Intersect(LR, .ListColumns("Spalte15").Range)
Set fe = Intersect(LR, .ListColumns("Spalte11").Range)
If UCase(fertig.Value) = "F" And fe.Value 
LG UweD
Anzeige
AW: Zeilen einer Tabelle ein- und ausblenden
24.03.2022 08:38:34
Steve
Hallo Uwe,
vielen Dank für deine Antwort.
Ich habe die Änderung gerade so vollzogen und es wird jetzt auch die zweite Option berücksichtigt, zu sehen im Einzelschritt.
Leider funktioniert das, was ich da zusammen geschrieben habe dann nicht um die gewünschten Zeilen auszublenden.
Vielleicht kann mir hier nochmal jemand helfen?
Generell ist mir aufgefallen, dass der Wert in fe mit .Range als Long interpretiert wird. Das funktioniert dann nicht diesen Wert mit einem Datum zu vergleichen oder?
Wenn ich allerdings fe als Datum (und fertig als Text) definiere bekommen ich neue Fehlermeldungen. Leider bin ich noch ganz am Anfang, was VBA angeht.
Danke für eure Hilfe.
Viele Grüße
Steve
Anzeige
Dann bitte mal Musterdatei..
24.03.2022 09:07:55
UweD
hochladen
Anonymisiert, aber das Wesentliche muss mit dem Original übereinstimmen.
LG UweD
AW: Dann bitte mal Musterdatei..
24.03.2022 10:43:43
Steve
Hallo Uwe,
ich habe aus der Arbeitsmappe eines der Blätter, in die das Makro eingefügt werden soll, in eine neue Datei gelegt.
Habe die Aufgabe auch nochmal in einem Textfeld beschrieben.
https://www.transfernow.net/dl/20220324p2NZuerL/kCwuVfuA
Leider ist die immer noch zu groß für einen upload hier.
Danke für deine Hilfe :)
Viele Grüße
Steve
AW: Dann bitte mal Musterdatei..
24.03.2022 11:14:39
UweD
Hallo
Die Datei ist so nicht Lauffähig.
Blatt "Aufträge" fehlt. Genau da läuft der Rest des Makros ab.
Userbild
LG UweD
Anzeige
AW: Dann bitte mal Musterdatei..
24.03.2022 12:54:14
Steve
Hallo Uwe,
ich muss sagen das habe ich anscheinend eher kopflos zusammenkopiert und habe am Ende die Anpassung an mein Blatt, in dem das neue Makro stattfinden soll, verpasst. Da muss ich wohl mit mehr Ruhe ran gehen :) Abgesehen davon bin ich begeistert dass das, was ich da zusammengestrickt habe grundsätzlich und mit deiner Hilfe dann funktioniert. Eigentlich sollte das Ganze dann nämlich so aussehen:

Private Sub Darstell_Stahl1_Change()
Dim LR
Dim fertig As Range
Dim fe As Range
ActiveSheet.Unprotect "suse"
If Darstell_Stahl1.Text = "alle Werkstücke" Then
ActiveSheet.Rows.Hidden = False
ActiveSheet.Rows(16).Hidden = True
ElseIf Darstell_Stahl1.Text = "nur innerhalb der letzten 14 Tage fertiggestellte und unfertige Werkstücke" Then
With Worksheets("Stahl 1").ListObjects("ProdplanStahl1")
For Each LR In .ListRows
Set LR = LR.Range.EntireRow
If Not LR.Hidden Then
Set fertig = Intersect(LR, .ListColumns("Spalte15").Range)
Set fe = Intersect(LR, .ListColumns("Spalte11").Range)
If UCase(fertig.Value) = "F" And fe.Value 
Und mit diesen Änderungen macht das Makro nun auch das, was es soll :)
Ich bedanke mich schonmal ganz herzlich für deine Hilfe. Ich werde das noch ein bisschen testen und in meine gesamte Mappe einfügen. Grundsätzlich gehe ich aber gerade davon aus dass meine Frage gelöst wurde :)
Viele Grüße
Steve
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige