Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Termine auf Überschneidung prüfen?
10.04.2006 15:25:08
Oliver
Hallo an alle,
ich hatte die Frage bereits letzte Woche schon einmal hier gestellt, aber leider bis jetzt noch keine Antwort darauf erhalten, ob das von mir gewünschte umsetzbar ist. Da die Frage aus dem Forum herausgewandert ist, stelle ich sie noch mal erneut.
Ich habe da ein kniffeliges Problem, bei dem ich einfach nicht weiterkomme. Ich erarbeite gerade einen Terminkalender und muss dabei prüfen, dass sich Termine einer bestimmten Kategorie nicht überschneiden. Ich habe dazu mal eine Beispieltabelle hochgeladen, die das etwas verdeutlichen soll.
https://www.herber.de/bbs/user/32617.xls
Für jeden Arbeitstag wird ein Tabellenblatt erstellt, in das über eine UserForm die Termingründe ausgewählt und dann an das entsprechende Tagesblatt mit Kundennamen, Kundentelefonnummer und Termingrund übergeben werden. Die Termingründe und –Kategorien sind in einem Tabellenblatt Namens „Firmenstammdaten aufgeführt“. Zusätzlich werden die Termine farblich hervorgehoben. Jeder Termingrund hat eine eigene Farbe, wobei sich die Farben aber wiederholen. Das alles ist in der Beispieldatei zu ersehen. In der Beispieldatei habe ich mal drei Termine eingetragen. Alle Termine sind von der Kategorie „K“, und Termine der Kategorie „K“ sollen auf Überschneidung hin geprüft werden. Es dürfen sich maximal 2 Termine der Kategorie K überschneiden. Wenn ich mich jetzt wieder auf die Beispieltabelle beziehe, habe ich zuerst den Termin für den Mitarbeiter 3 für den Zeitraum 10:30 – 12:15 Uhr eingetragen. Danach habe ich den Termin für Mitarbeiter 4 eingetragen für den Zeitraum 10:30 – 11:15 Uhr. Diese beiden Termine der Kategorie „K“ überschneiden sich, was noch in Ordnung ist. Nun gebe ich den Termin für Mitarbeiter 6 für den Zeitraum 11:15 – 11:30 Uhr ein, der ebenfalls zur Kategorie K gehört. Das wäre aber nun der 3. Termin der Kategorie „K“, der sich mit den beiden anderen Terminen überschneiden würde, was nicht sein darf. Es müsste also der Bereich der eingegebenen Termine geprüft werden und eine Meldung ausgegeben werden, wenn sich mehr als 2 Termine der Kategorie „K“ von den Zeiten her überschneiden.
Und da weiß ich jetzt nicht mehr weiter. Wie kann ich das prüfen? Ich hoffe, jemand hat Lust, Zeit und Muße mir dabei unter die Arme zu greifen, denn ich kriege es nicht hin. Solltet Ihr noch Infos benötigen, so schreibt das bitte. Ich werde dann bemüht sein diese Infos zu liefern.
Danke Euch schon mal für die kreativen Vorschläge,
Oliver S.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Termine auf Überschneidung prüfen?
10.04.2006 15:50:55
AuftragOderWas
Hallo Oliver,
Tönt ein bisschen gar nach Auftragsprogrammierung.
Was lässt den die "FHW Märkisches Viertel GmbH" dafür springen ?
Ich finde nirgends eine UF, in der die Einträge erfolgen sollen.
In dieser UF müsste auch die Prüfung erfolgen, ob schon Einträge aus der gleichen Kategorie in einer Zeile auftauchen, und dann eben nicht in die Tabelle übertragen werden.
Gruss FreierProgrammierer
AW: Termine auf Überschneidung prüfen?
10.04.2006 16:47:22
Oliver
Hallo Gruss FreierProgrammierer,
danke Dir für Deine Antwort. Klar ist das eine Auftragsarbeit und zwar für meinen Arbeitgeber. Er bezahlt mich dafür 8 Stunden am Tag und das 5 Tage die Woche. Den Namen hast Du ja bereits aus den Eigenschaften der Datei ausgelesen. Wobei ich jetzt nicht weiß, was Dich jetzt daran stört, dass ich meinem Arbeitgeber so etwas erstellen möchte/ soll. Möchtest Du noch die Telefonnummer vom Fernheizwerk haben um Dich zu erkundigen ob ich wirklich Mitarbeiter bin?
Die UserForm exisitiert noch nicht, da ich das alles erst mal im Vorfeld checken wollte. Es besteht erst mal nur das Grundgerüßt der Datei. Daher wollte ich auch im Vorfeld wissen wie man das umsetzen kann. Aber wenn Notwendig kann ich solch eine UserForm erstellen, wenn es denn zwingend notwendig ist.
Hoffe, dass es auch eine ohne forhandene UserForm gibt. Eventuell gibt es ja jemanden - eventuell ja auch FreierProgrammierer - , der sich nicht daran stört, dass ich so etwas für meinen Arbeitgeber umsetzen möchte.
Gruß,
Oliver
Anzeige
AW: Termine auf Überschneidung prüfen?
10.04.2006 17:32:30
EtoPHG
Hallo Oliver,
Neben jeden Mitarbeiter eine Hilfspalte (ev. verstecken), in die Du die Kategorie ("F", "K") einträgst. Über ZÄHLENWENN(B5:R5;"K") &gt 2 eine bedingte Formatierung in Spalte A ROT schalten.
Gruss Hansueli
AW: Termine auf Überschneidung prüfen?
10.04.2006 17:43:55
Oliver
Nabend Hansueli,
danke Dir für Deine Antwort und der Lösungsmöglichkeit. Leider suche ich aber nach einer VBA Lösung, die bei einer Eingabe, die durch eine UserForm erfolgen soll, automatisch den Zeitbereich der Eingabe prüft und eine Meldung ausgibt, wenn sich drei Mitarbeiter mit der selben Kategorie überschneiden.
Daher hilft mir Deine Lösung leider nicht weiter. Aber dennoch danke für die Hilfe.
Gruß,
Oliver
Anzeige
AW: Termine auf Überschneidung prüfen?
11.04.2006 14:44:39
Oliver
Hallo an alle,
die Aufgabe ist gelöst. Ich habe es selber hinbekommen. Für Leute, die es interesiert, nachfolgend meine Lösung, die durch ein ComboBox_Change-Ereignis, die sich in der mittlerweile angefertigten UserForm befindet, ausgelöst wird.
Private Sub ComboBox4_Change()



Dim Kategorie As String, Wiederholungen_Spalte As Integer, Wiederholungen_Zeile As Integer, _

Farbe As Integer, Arbeitsauftrag As String, Start As Integer, Länge As Integer, Mitte As Integer, _

Kategorie_Abfrage As String, Zähler As Integer, Wiederholungen_Behandlung As Integer, Zeile_Ende As Integer



For Wiederholungen = 3 To Sheets("Firmenstammdaten").Range("A65536").End(xlUp).Row

If ComboBox4.Text = Sheets("Firmenstammdaten").Cells(Wiederholungen, 1) Then

Label10.Caption = Sheets("Firmenstammdaten").Cells(Wiederholungen, 3)

End If

Next

If ComboBox4_betätigt = False And CheckBox1 = False And CheckBox2 = False Then

ComboBox4_betätigt = True

Blattname = ComboBox3.Text

Letzte_Spalte = ActiveSheet.Range("IV3").End(xlToLeft).Column - 1

'Uhrzeit ermitteln

For Wiederholungen = 5 To 49

If ComboBox6.Text = Mid(Sheets("Vorlage").Cells(Wiederholungen, 1), 1, 2) & ":" & _

Mid(Sheets("Vorlage").Cells(Wiederholungen, 1), 3, 2) Then

Zeile = Wiederholungen

End If

Next

'Zeitindexnummer ermitteln

For Wiederholungen = 3 To Sheets("Firmenstammdaten").Range("A65536").End(xlUp).Row

If ComboBox4.Text = Sheets("Firmenstammdaten").Cells(Wiederholungen, 1) Then

Zeitindex = Sheets("Firmenstammdaten").Cells(Wiederholungen, 4)

Kategorie = Sheets("Firmenstammdaten").Cells(Wiederholungen, 6)

Exit For

End If

Next

If Kategorie = "K" Then

'Abfrage Spalte

For Wiederholungen_Spalte = 1 To Letzte_Spalte

'Wenn Zeitindex für 15 Min.

If Zeitindex = 1 Then

Zeile_Ende = Zeile

Else

Zeile_Ende = Zeile + Zeitindex

End If

'Abfrage Zeile

For Wiederholungen_Zeile = Zeile To Zeile_Ende

'Farbe der angesprochenen Zelle ermitteln

Farbe = Cells(Wiederholungen_Zeile, Wiederholungen_Spalte).Interior.ColorIndex

'Wenn Farbe anders als Grau oder weiß, bzw. leer

If Farbe <> 39 And Farbe > 0 Then

'Abfrage ab der Zeile der gefundenen Farbe bis zur ersten Zelle, die nicht leer

For Wiederholungen_Arbeitsauftrag = Wiederholungen_Zeile To 5 Step -1

'Wenn Zelle nicht leer

If Cells(Wiederholungen_Arbeitsauftrag, Wiederholungen_Spalte) <> "" Then

'Behandlungsart ermitteln

Länge = Len(Cells(Wiederholungen_Arbeitsauftrag, Wiederholungen_Spalte))

Start = InStr(Cells(Wiederholungen_Arbeitsauftrag, Wiederholungen_Spalte), Chr(10))

Mitte = InStr(Mid(Cells(Wiederholungen_Arbeitsauftrag, Wiederholungen_Spalte), Start + 1, Länge), Chr(10))

Arbeitsauftrag = Mid(Cells(Wiederholungen_Arbeitsauftrag, Wiederholungen_Spalte), Start + Mitte + 1, Länge) 'Sheets("Firmenstammdaten").Cells(Wiederholungen, 1)

'Anwendungskategorie ermitteln

For Wiederholungen = 3 To Sheets("Firmenstammdaten").Range("A65536").End(xlUp).Row

If Arbeitsauftrag = Sheets("Firmenstammdaten").Cells(Wiederholungen, 1) Then

Kategorie_Abfrage = Sheets("Firmenstammdaten").Cells(Wiederholungen, 6)

Goto Weiter

End If

Next

End If

Next

Weiter:

'Zähler um die Zahl 1 erhöhen

If Kategorie = Kategorie_Abfrage Then

Zähler = Zähler + 1

Goto Weiter_1

End If

End If

Next

Weiter_1:

Next

If Zähler >= 2 Then

MsgBox "Der Monteur, der diese Arbeit erledigen kann, ist bereits im Einsatz. Bitte Termin verschieben.", vbCritical, "Achtung!"

ComboBox4.Text = ""

Exit Sub

End If

End If

End If

Ende:

ComboBox4_betätigt = False

End Sub

Danke an Hansueli, der wenigstens versucht hat mir zu helfen und nicht wie der andere Helfer, der es noch nicht mal für nötig hält hier seinen waren Vornamen zu nennen und den es scheinbar nur interessiert hat ob ich dafür Geld bekomme. Diese Hilfe von Mr. Unbekannt war eher unproduktiv als helfend.
Gruß und schönen Tag noch,
Oliver S.
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige