Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1600to1604
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 ausblenden wenn nicht ausgewählter Monat
09.01.2018 10:02:13
URH
Guten Morgen liebe Community,
in den letzten Tagen begann ich eine Dienstplan-Vorlage zu basteln und schon häng ich an den ersten Probleme:
Über Funktionen "generiere" ich in Spalte A das jeweilige Datum für's ganze Jahr.
Mittels Bedingter Formatierung färbe ich sowohl die Wochenenden ein, wie auch die Feiertage. Hierzu habe ich eine Hilftabelle mit einigen Daten.
Meine erste Hürde ist nun, daß ich gerne mittels Drehschalter (bereits vorhanden und funktioniert) den Monat auswählen möchte und alle Zeilen ausgeblendet werden die nicht diesem Monat entsprechen.
Das Sheet habe ich angehängt und hoffe mal, daß jemand einen Rat hat - gerne auch was die bereits vorhandenen Makros betrifft.
https://www.herber.de/bbs/user/118802.xlsm
Weitere Ideen für die Vorlage wären:
1. die Arbeitstage des ausgewählten Monat ermitteln und in eine Zelle schreiben
2. Funktionstasten mit vorgegebene Arbeitszeiten (von - bis) belegen, einen kompletten Bereich markieren und mittels der jeweiligen Funktionstaste die vorgegebenen Arbeitszeiten in diesen Bereich schreiben.
3. Den Soll-Plan (Anfangs- und Endezeiten) kann nur eine Person (z.B. A) mittels Benutzer und PW erstellen\ändern, andere Benutzer (B-G) können nach PW-Eingabe nur die Anfangs- und Endezeiten des IST-Plan in ihrer jeweiligen Spalte ändern.
Sind diese Ideen überhaupt mit Excel umsetztbar oder vergallopiere ich mich da schon gleich zu Beginn?
Lieben Dabk im Voraus und Gruß, URH

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

Betreff
Datum
Anwender
Anzeige
Umsetzbar, Ja ... aber
09.01.2018 10:35:51
Matthias
Hallo
Als erstes solltest Du dafür sorgen, das im Schaltjahr nicht plötzlich ein Tag fehlt!
Tabelle1

 A
60Sa, 24.02.2024
61So, 25.02.2024
62Mo, 26.02.2024
63Di, 27.02.2024
64Mi, 28.02.2024
65Fr, 01.03.2024
66Sa, 02.03.2024
67So, 03.03.2024


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Siehst Du es, da fehlt der 29.02
Das kannst Du ganz schnell lösen, in dem Du die Formel ( Zellbezug + 1 ) als Formel benutzt
Erst am Jahresende fragst Du ab ob das ( Jahr + 1 ) das selbe Jahr ist wie beim Zellbezug


die Arbeitstage des ausgewählten Monat ermitteln und in eine Zelle schreiben
Dafür gibts bereits integrierte Funktion in Excel: NettoArbeitstage
Also generell ist es machbar.
Gruß Matthias
Anzeige
AW: Umsetzbar, Ja ... aber
09.01.2018 11:30:03
URH
Moin Matthias,
Danke für den Hinweis.
Das hab ich wohl übersehen und habs nun ein Tick anders gelöst ;)
An der Stelle an der der 29.02.2020 stehen müsste habe ich eine Zeile eingefügt.
Stell ich in der Hilfstabelle das Startdatum auf 1.1.2020 dann passt das :)
Sinnvoll und etwas ästhetischer wäre jetzt noch die komplette Zeile auszublenden, wenn A65 leer ist ;)
Irgendwie mit sowas?:
Private Sub Worksheet_Calculate() If Range("A65").Value = "" Then Rows(65).Hidden = True Else Rows(65).Hidden = False End If End Sub Gruß, URH
AW: Umsetzbar, Ja ... aber
09.01.2018 11:56:29
yummi
Hallo URH,
folgendes in ein Modul kopieren:

Function Ausblenden(iWert As Integer)
Dim i As Integer
Beschleunigen True
For i = 6 To 371
If Month(ThisWorkbook.Sheets(1).Cells(i, 1).Value)  iWert Then
ThisWorkbook.Sheets(1).Rows(i).Hidden = True
Else
ThisWorkbook.Sheets(1).Rows(i).Hidden = False
End If
Next i
Beschleunigen False
End Function
Function Beschleunigen(ByVal BGesetzt As Boolean)
BGesetzt = Not BGesetzt
With Application
.ScreenUpdating = BGesetzt
.AskToUpdateLinks = BGesetzt
.EnableEvents = BGesetzt
.Calculation = BGesetzt
.DisplayAlerts = BGesetzt
End With
End Function
dan noch in deine Spin funktionen den Aufruf
Ausblenden SpinButton1.Value
und fertig
Gruß
yummi
Anzeige
@yummi ... Ja, das gefällt mir :-) owT
09.01.2018 17:29:25
Matthias
AW: @yummi ... Ja, das gefällt mir :-) owT
09.01.2018 19:06:18
URH
Hallo yummi,
super, das funktioniert (fast) perfekt. Danke!
Ich hatte am Anfang einen Typfehler und es wurden auch nicht alle Zeile ausgeblendet, das lag aber an der Zeile 65 (29.02.xx). Als ich die Zeile löschte liefs wie am Schnürchen :)
Jetzt muß ich mir für Zeile falls ein Schaltjahr doch nochmal was anderes überlegen.
Andere Frage: Wie mach ich es am Geschicktesten, daß soweit nötig alle Zeilen eingeblendet werden können? Kann ja sein, daß man mal eine Jahresübersicht haben möchte.
Gruß und Danke nochmals, URH
oh mann oh mann ...
09.01.2018 20:35:41
Matthias
Hallo URH
Datum + 1
hatte ich bereits vorgeschlagen!

Warum Du nun mir diesen Beitrag schreibst, ist mir unklar!
Gruß Matthias
Anzeige
AW: oh mann oh mann ...
11.01.2018 10:34:28
URH
Hallo Matthias,
Sorry, das war wohl ein Versehen bzw. das Übersehen bestimmter Eigenarten dieses Forums.
Zum anderen muss ich zugeben, daß ich deinen Vorschlag nicht verstanden habe und vielleicht bin ich die Idee zu der Dienstplanvorlage auch komplett falsch angegangen, sowohl was den Einsatz von Formeln als auch was VBA betrifft.
In A6 hohle ich mit

=Hilfstabelle!A2
den 1.1. des Jahres und fahre in jeder Zeile weiter mit

=WENNFEHLER(WENN(MONAT(A6+1)=MONAT($A6);A6+1;"");"")
.
Zum jeweiligen Monatsanfang (ab. 1.2) habe ich diese Formel:

=EDATUM(A6;1)

Wo und wie soll ich deinen Vorschlag zum Einsatz bringen?
Und zu guter Letzt: Von der Formel "Nettoarbeitstage" hörte ich schon mal.
Das würd ich schon gerne verbauen, jedoch müßte sich das Ergebnis auf den jeweiligen Bereich (Monat) beziehen der Eingeblendet ist bzw. auf das gesamte Jahr bei der Jahresansicht.
Wenn ich diese Hürde zu überspringen ist, dann sollte der Weg auch vorgezeichnet sein wie ich z.B. SOLL- und IST-Stunden für den jeweils angezeigten Monat (oder das gesamte Jahr) anzeige.
Gruß, URH
Anzeige
das hatte ich doch schon erwähnt ...
11.01.2018 23:21:19
Matthias
Hallo
Tabelle1

 A
6Mo, 01.01.2018
7Di, 02.01.2018
8Mi, 03.01.2018
9Do, 04.01.2018
10Fr, 05.01.2018
11Sa, 06.01.2018
12So, 07.01.2018

Formeln der Tabelle
ZelleFormel
A6=Hilfstabelle!A2
A7=A6+1
A8=A7+1
A9=A8+1
A10=A9+1
A11=A10+1
A12=A11+1


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Matthias
Anzeige
AW: das hatte ich doch schon erwähnt ...
13.01.2018 11:18:49
URH
Hallo Matthias,
du hattest natürlich Recht und ganz simpel war's dann auch noch.
Da ich das Ganze aus einem sehr ähnlichen "Projekt", das schon länger zurückliegt, aufgebaut habe, hab ich mich wohl auch an den Formeln und an ein paar anderen Dingen in der Hilfstabelle, die nun obsolet sind, fest gebissen.
Etwas unschön ist nun allerdings, daß die bedingte Formatierung ggf. wg. Schaltjahr zwangsläufig bis Zeile 371 laufen muss. Somit ist auch B371 grün eingefärbt, wenn kein Schaltjahr ist.
Danke nochmals für deinen Tipp und deine Geduld diesen 3 zu wiederholen ;)
Gruß, URH
Anzeige
AW: @yummi ... Ja, das gefällt mir :-) owT
10.01.2018 10:26:15
yummi
Hallo Urh,
kannst Du z.B. so machen, wie in der beigefügten Datei. Ohne deine letzten Änderungen und beachte auch den Hinweis von Matthias
https://www.herber.de/bbs/user/118847.xlsm
Gruß
yummi
AW: @yummi ... Ja, das gefällt mir :-) owT
13.01.2018 11:32:26
URH
Hallo yummi,
vielen Dank für deinen Vorschlag, den ich gerne eingebaut hab. Funktioniert super :)
Was mir an der Stelle gerade aufgefallen ist und ich nicht genau weiß wo ich das in deinem Code unterbringen soll: Wenn Checkbox aktiv (alle Zeilen werden eingeblendet), dann sollen die Spinbuttons deaktiviert sein und an Stelle des Monats in A2 könnte sowas wie "Gesamt" stehen.
Ist die Checkbox deaktiviert, dann sind die Spinbuttons aktiv, es können Monate ausgewählt werden bzw. der aktuelle Monat wird angezeigt.
Gruß, URH
Anzeige
AW: @yummi ... Ja, das gefällt mir :-) owT
15.01.2018 12:14:06
yummi
Hallo Urh,
einfach die Funktion etwas erweitern:

Private Sub CheckBox1_Click()
If CheckBox1.Value = -1 Then
SpinButton1.Enabled = False
ThisWorkbook.Worksheets(1).Cells(1, 2).Value = "Gesamt"
Else
SpinButton1.Enabled = True
End If
Call Ausblenden(SpinButton1.Value, CheckBox1.Value)
End Sub
Gruß
yummi

141 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige