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

Verleihkalender HomeOffice

Verleihkalender HomeOffice
19.01.2022 05:57:20
Franz
Guten Tag,
ich habe schon viel versucht brauche aber dringend Hilfe bezüglich meinem Verleihkalender. Ich bekomme es leider nicht hin und könnte dringend eure Hilfe gebrauchen. Ich habe einen Laptop Verleihkalender und dort sollen pro Tag maximal 3 Laptops verliehen werden für den HomeOffice. Das habe ich auch schon durch Datenüberprüfung hinbekommen. Jedoch kommt jetzt die Schwierigkeit das der nächste Tag auch geblockt sein soll weil der Laptop erst an diesen Tag ja wieder zurückkommt. So das der nächste diesen erst wieder mitnehmen kann. Dann wäre es auch sehr schön, wenn jemand zum Beispiel ein H für HomeOffice einträgt das Automatisch geprüft wird welcher Laptop verfügbar ist. Ich hoffe ich könnt mir helfen!
Vielen vielen Dank im Voraus
https://www.herber.de/bbs/user/150500.xlsx

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

Betreff
Datum
Anwender
Anzeige
AW: Verleihkalender HomeOffice, VBA
19.01.2022 08:25:46
MCO
Guten Morgen!
Ich hab dir mal eine Funktionalität reingebaut, die die Verfügbarkeit für den nächsten Tag regelt.
Allerdings bezieht sich das auch streng auf die von Dir angegebenen Daten, daher weiß ich nicht, ob du in der Lage bist, das zu adaptieren.
Funktion:
Wird im Bereich der Personen eine Zahl eingetragen, werden die anderen verfügbaren Geräte ins Auswahlmenü aufgenommen. Dies gilt bei jedem Eintrag und auch für den nächsten Tag. "Nächster Tag" war allerdings nicht durchgängig definiert, daher hab ich das einfach mal angenommen: Freitags verliehene Geräte sind am MO noch nicht wieder verfügbar.
Schwäche: Es wird 1 Werktag vorwärts geändert, nachträgliche Änderungen erzeugen keinen Fehler in der Wochenplanung.
Das mit dem "H" hab ich nicht verstanden und wird auch nicht in meinem Code als Bdingung berücksichtigt, aber als Eintrag mit bereitgestellt.
Ich hoffe, das kann dir als Basis für die weitere Entwicklung dienen.
https://www.herber.de/bbs/user/150503.xlsm
Viel Erfolg
Gruß, MCO
Anzeige
AW: Verleihkalender HomeOffice, VBA
19.01.2022 08:41:21
Franz
Hallo MCO,
erstmal vielen vielen Dank für deine Mühe. Mit Freitag hast du recht das dieser dann nicht am Montag verfügbar ist. Jedoch kommt keine Fehlermeldung wenn ich zum Beispiel die 1 am 03.01. bei Person 1 eintrage und am 04.01. nochmal die 1 bei Person 2 eigentlich sollte dieser ja am nächsten Tag gesperrt sein. So ist es auch wenn ich das bei einer Person mache aber nicht bei einer anderen. Hast du dafür vielleicht noch eine Idee?
Vielen Dank im Voraus
AW: Verleihkalender HomeOffice, VBA
19.01.2022 09:03:33
Franz
Hallo MCO,
es funktioniert alles! Jetzt verstehe ich was du mit Rückwärts meinst. Vielen Vielen Dank!
AW: Verleihkalender HomeOffice
19.01.2022 10:10:52
Franz
Hallo,
ich müsste noch eine frage stellen. Ich hätte gerne noch das die Zahl 1,2 oder 3 eingefärbt wird und gleich noch die Zelle daneben. Gibt es auch hierfür eine Lösung?
Vielenb Dank im Voraus
Anzeige
AW: Verleihkalender HomeOffice
19.01.2022 10:53:42
MCO
Hallo Franz!
Ergänze:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim zl_max As Long
Dim rng As Range
zl_max = Range("A4").End(xlDown).Row
If Not Application.Intersect(Rows("4:" & zl_max), Target) Is Nothing Then
Set rng = Target
        rng.Interior.Color = 32
rng.Offset(0, 1).Interior.Color = 32
verfügb_Geräte rng
End If
End Sub
Gruß, MCO
Doof ....
19.01.2022 10:57:17
MCO
Sorry, hab gleich 2 Sachen "ungünstig" eingebaut.
Es muss heißen:

rng.Interior.ColorIndex = 15
rng.Offset(0, 1).Interior.CoorIndex = 15
Das wird aber nur bei den zusammenhängenden Wochentagen funktionieren, nicht übers Wochenende...
Gruß, MCO
Anzeige
AW: Doof ....
19.01.2022 11:09:32
Franz
Hallo MCO,
vielen Dank für die schnelle Antwort! Leider kommt bei mir ein Laufzeitfehler.
Gruß Franz
AW: Doof ....
19.01.2022 11:18:39
MCO
Hallo Franz!
So sollte es auch mit den Wochentagen funktionieren.
Allerdings musste ich die Reihenfolge im Makro etwas anpassen.

Sub verfügb_Geräte(Verleih_tag As Range)
Dim Summer_ger As Long
Dim Verleih_rng As Range, num_rng As Range
Dim an As Long
Dim rng As Range
Dim zl_max As Long
On Error Resume Next
zl_max = Range("A4").End(xlDown).Row
Set Verleih_rng = Range(Cells(4, Verleih_tag.Column), Cells(zl_max, Verleih_tag.Column))
Set num_rng = Verleih_rng.SpecialCells(xlCellTypeConstants, xlNumbers)
If Weekday(Cells(3, Verleih_tag.Column).Offset(0, 1), vbMonday) > 5 Then
nächster_Tag = 10 - Weekday(Cells(3, Verleih_tag.Column).Offset(0, 1), vbMonday)
Else
nächster_Tag = 2
End If
Verleih_rng.Offset(, nächster_Tag - 1).Interior.Color = xlNone
If Not num_rng Is Nothing Then
Summe_ger = WorksheetFunction.Sum(num_rng)
anz = WorksheetFunction.Count(Verleih_rng.SpecialCells(xlCellTypeConstants, xlNumbers))
Select Case Summe_ger
Case 1: verfügb = "2,3"
Case 2: verfügb = "1,3"
Case 3 And anz = 1: verfügb = "1,2"
Case 3 And anz = 2: verfügb = "3"
Case 4: verfügb = "2"
Case 5: verfügb = "1"
Case 6: verfügb = "-"
End Select
num_rng.Interior.ColorIndex = 37
num_rng.Offset(, nächster_Tag - 1).Interior.ColorIndex = 37
Else
verfügb = "1,2,3"
End If
Set rng = Verleih_rng.Resize(, nächster_Tag - 1)
With rng.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=verfügb & ",H"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Set Verleih_rng = Nothing
Set num_rng = Nothing
Set rng = Nothing
End Sub
Zur Vollständigkeit hier nochmal die vollständige Tabelle
https://www.herber.de/bbs/user/150506.xlsm
Gruß, MCO
Anzeige
AW: Doof ....
19.01.2022 11:28:40
Franz
Wahnsinn vielen vielen Dank!!!
AW: Verleihkalender HomeOffice
25.01.2022 07:23:23
Franz
Guten Morgen,
leider brauche ich nochmal Hilfe. Bei meinen Kalender muss die Anzahl der Laptops jetzt auf 5 erhöht werden und der Dienstag und der Freitag müssen als gesperrte Tage zählen. Somit muss auch das Feld wenn ich den Laptop zum Beispiel am Montag ausleihe auch am Mittwoch noch gesperrt sein und der Freitag muss wie Wochende schon zählen. Ich hoffe Ihr könnt mir wieder helfen.
Vielen Vielen Dank im Voraus
Lösung mit Makeln....
25.01.2022 09:35:18
MCO
Guten Morgen, Franz!
Die Auswahl der verleihbaren Geräte hab ich komplett geändert bzw vereinfacht.
Auch die gesperrten Tage hab ich eingebaut.
Allerdings ergibt sich dadurch eine "Unstimmigkeit": Ein Gerät, dass am Do verliehen wird, ist Mo nicht verfügbar. Ein Gerät, dass am Fr. verliehen wird, überschreibt diese Vorgabe und ist nur selbst am Mo nicht verfügbar. Dafür hab ich leider keine Lösung gefunden. Daher hab ich die Färbung der Zellen mal stehengelassen für den gesperrten Zeitraum.
Neu: Die Färbung wird gelöscht, wenn das Gerät gelöscht wird, nur am Gerät, nicht der ganze Tag.
Bau das mal ein.

Sub verfügb_Geräte(Verleih_tag As Range)
Dim Verleih_rng As Range, num_rng As Range
Dim an As Long
Dim rng As Range
Dim zl_max As Long
On Error Resume Next
Dim verfügb As String
Application.EnableEvents = False
zl_max = Range("A4").End(xlDown).Row
Set Verleih_rng = Range(Cells(4, Verleih_tag.Column), Cells(zl_max, Verleih_tag.Column))
Set num_rng = Verleih_rng.SpecialCells(xlCellTypeConstants, xlNumbers)
Verleih_wochentag = Weekday(Cells(3, Verleih_tag.Column), vbMonday)
Select Case Verleih_wochentag
Case 1, 6: nächster_Tag = 3
Case 2, 3, 7: nächster_Tag = 2
Case 4: nächster_Tag = 5
Case 5: nächster_Tag = 4
End Select
If Verleih_tag = "" Then
Verleih_tag.Interior.Color = xlNone
Verleih_rng.Offset(, nächster_Tag - 1).Interior.Color = xlNone
End If
verfügb = "1,2,3,4,5,H"
If Not num_rng Is Nothing Then
For Each num In num_rng
verfügb = Replace(verfügb, num & ",", "")
Next
num_rng.Interior.ColorIndex = 37
num_rng.Offset(, nächster_Tag - 1).Interior.ColorIndex = 37
End If
Set rng = Verleih_rng.Resize(, nächster_Tag)
Werte_einschränken rng, verfügb
Set Verleih_rng = Nothing
Set num_rng = Nothing
Set rng = Nothing
Application.EnableEvents = 1
End Sub
Sub Werte_einschränken(Bereich As Range, Werte As String)
With Bereich.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Werte
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Gruß, MCO
Anzeige
AW: Lösung mit Makeln....
25.01.2022 10:22:16
Franz
Hallo MCO,
vielen vielen Dank so ist es perfekt!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige