19.02.2021, 12:04 (Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2021, 16:15 von WillWissen.
Bearbeitungsgrund: Unnötige Leerzeilen entfernt
)
Hallo liebe Freunde,
ich bin dabei einen Rotationsplan zu erstellen, wo verschiedene Mitarbeiter in verschiedenen Bereichen eingesetzt werden sollen.
jetzt wollte ich eine Funktion hinzufügen, dass eine einzelne Person oder eine Gruppe von Personen an einem ausgewähltem Wochentag automatisch mit einem Bereich und dem Bereich von bis (Datum) eingefügt wird.
ich habe hier schon etwas vorbereitet. schaut mal herein.
hier mal ein Ansatz. Für ein automatisches Ausfüllen sollte es einen Rhythmus geben. Dazu könnten die Kollegen festen „Schichtteams“ zugeordnet werden. Bei einer Regel kann man die Schichten per Formel zuordnen und auf so einem Blatt irgendeinen Zeitraum darstellen. Hier hab ich mal ein kleines Beispiel für ein 3-Schicht-System. Oben links in dem gelben Bereich habe ich ein Datum für die Frühschicht eines Teams an einen Montag eingetragen. Ausgehend von diesem Datum kannst Du für das Team auch ausrechnen, welche Schicht es an einem bestimmten Datum in 100 Jahren hat ? Ich hab mit den Abkürzungen F-S-N gearbeitet
ja, schauen wir mal. Bin nur gerade unterwegs, wird vielleicht heute Nachmittag oder Abend, falls nicht zwischendurch ein anderer die Aufgabe übernimmt ...
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Claus Thaler
04.03.2021, 16:40 (Dieser Beitrag wurde zuletzt bearbeitet: 04.03.2021, 16:40 von schauan.)
Hallöchen,
im Prinzip was in der Art. Das Startdatum könnte man ggf. mit FIND suchen, dann geht es etwas schneller. Ich habe hier mal die Eintragung auf die aktive Zelle bezogen. Wenn Du den Mitarbeiter auf dem Blatt anklickst und nimmst, würdest Du Dir die Auswahl im Dialog sparen.
Code:
Private Sub CommandButton4_Click() 'Variablendeklaration Dim icnt% 'Schleife ab Spalte 7 (G) bis zum Ende des ausgefüllten Bereichs der Zeile 9 For icnt = 7 To Cells(9, Columns.Count).End(xlToLeft).Column 'Wenn das Datum der Zelle mit dem Datum der Box uebereinstimmt, dann If Cells(9, icnt).Value >= CDate(Box3.Value) Then 'Wenn der Wochentag auf dem Blatt mit dem der Box uebereinstimmt, dann If Cells(10, icnt).Text = Box2.Value Then 'Gewaehltes Kuerzel eintragen Cells(ActiveCell.Row, icnt).Value = Box5.Value 'Ende Wenn der Wochentag auf dem Blatt mit dem der Box uebereinstimmt, dann End If 'Wenn das Datum auf dem Blatt groesser als das gewaehlte ist, dann Schleife verlassen If Cells(9, icnt).Value > CDate(Box4.Value) Then Exit For 'Ende Wenn das Datum der Zelle mit dem Datum der Box uebereinstimmt, dann End If 'Ende Schleife ab Spalte 7 (G) bis zum Ende des ausgefüllten Bereichs der Zeile 9 Next End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Claus Thaler
Aber könntest du mir trotzdem bei der FIND Funkrion weiter Helfen? Ich bekomme das nicht so hin das aus der Box der Name gesucht und die Celle markiert wird. Wenn das noch klappen könnte wäre das super.
Würde das auch für eine Mehrfachauswahl gehen? Das ich z.B alle Mitarbeiter vom einem gleichen Beruf oder einem Lehrjahr mit einer Auswahl übernehmen kann?
Vielen dank.
Bis hier hin ist es schon echt super.
und durch die Kommentare auch super erklärt. Ich freu mich so :)
schaue ich mir dann nochmal an. Bei Einfachauswahl würde FIND ausreichen, bei Mehrfachauswahl könnte man eventuell per Autofilter alles in einem Rutsch... Muss ich mal durchdenken.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Claus Thaler
10.03.2021, 18:10 (Dieser Beitrag wurde zuletzt bearbeitet: 10.03.2021, 18:11 von schauan.)
Hallöchen,
hier ist erst mal die Änderung für einen Namen. Das Prinzip ist erst mal ähnlich. Diesmal aktiviert der Code die Zelle mit dem Namen. Kann man auch anders lösen, idem man bei Find die Zeile zieht und dann mit der Zeilennummer arbeitet. Für eine Mehrfachauswahl müsste dann noch eine Schleife drum herum.
Code:
Private Sub CommandButton4_Click() 'Variablendeklaration Dim icnt%
'Schleife ab Spalte 7 (G) bis zum Ende des ausgefüllten Bereichs der Zeile 9 For icnt = 7 To Cells(9, Columns.Count).End(xlToLeft).Column 'Wenn das Datum der Zelle mit dem Datum der Box uebereinstimmt, dann If Cells(9, icnt).Value >= CDate(Box3.Value) Then 'Wenn der Wochentag auf dem Blatt mit dem der Box uebereinstimmt, dann If Cells(10, icnt).Text = Box2.Value Then 'Gewaehltes Kuerzel eintragen Cells(ActiveCell.Row, icnt).Value = Box5.Value 'Ende Wenn der Wochentag auf dem Blatt mit dem der Box uebereinstimmt, dann End If 'Wenn das Datum auf dem Blatt groesser als das gewaehlte ist, dann Schleife verlassen If Cells(9, icnt).Value > CDate(Box4.Value) Then Exit For 'Ende Wenn das Datum der Zelle mit dem Datum der Box uebereinstimmt, dann End If 'Ende Schleife ab Spalte 7 (G) bis zum Ende des ausgefüllten Bereichs der Zeile 9 Next End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Claus Thaler