Anzeige
Archiv - Navigation
1100to1104
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

Zeitstrahl/Platzbelegung -VBA-

Zeitstrahl/Platzbelegung -VBA-
Wolfgang
Hallo,
ich habe schon länger recherchiert, um ein passendes Tool für die Beobachtung von Teilnehmerplätzen zu finden. Auf der Herber-Excel-CD konnte ich dabei ein Tool "Timesheet" entdecken, welches meinen Wünschen am nächsten käme. Da es mir schwer fällt, diese hier nur schriftlich zu beschreiben, habe ich eine geänderte Version von der Excel-CD beigefügt und hierin meine Änderungswünsche beschrieben. Kurz umschrieben möchte ich erreichen, dass Teilnehmerdaten in ein Tabellenblatt über UF eingepflegt werden und diese Daten in Form eines Zeitstrahls widergespiegelt werden. Ich wäre sehr dankbar, wenn ich aus diesem Forum Hilfestellung erhalten würde und bedanke mich schon jetzt für die Rückmeldungen.
Herzliche Grüße
Wolfgang
https://www.herber.de/bbs/user/64387.xls

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeitstrahl/Platzbelegung -VBA-
13.09.2009 18:56:39
Daniel
HI
wenn du im Zeitstrahl tagesgenau 15 Monate abbilden willst, musst du die Tabelle umbauen pro Tag eine Zeile verwenden, nicht eine Spalte.
in deiner Excelversion hast du nur 256 Spalten zur Verfügung, das reicht nicht mal für ein Jahr.
Gruß, Daniel
AW: Zeitstrahl/Platzbelegung -VBA-
13.09.2009 19:32:07
Wolfgang
Hi Daniel,
Danke für den Hinweis, das habe ich gar nicht bedacht bzw. gewusst. Wäre es denn denkbar, einen solchen Kalender in Spalte A einzubauen und dann das, was in den Zeilen steht, in die jeweiligen Spalten zu bringen?
Danke erneut für die Rückmeldungen.
Herzliche Grüße
Wolfgang
AW: Zeitstrahl/Platzbelegung -VBA-
13.09.2009 22:56:47
fcs
Hallo Wolfgang,
alle 256 Spalten mit Daten zu belegen ist für die Optische Darstellung ja eh nicht so prickelned.
Die Daten stehen ja alle in deiner Tabelle TN-Daten.
In dem du den Startmonat im Termplan anpasst und dann den Plan aktualisiertst, kannst du problemlos auch einen längeren Zeitraum verwalten und mit horizontalen Zeitbalken darstellen.
Grundsätzlich kann man natürlich Spalten und Zeilen durchtauschen. Aber das ist in deinem Blatt relativ kompliziert.
Und ich hab keine Lust das erstellte Makro in dieser Form umzustellen. Das ist im Prinzip "nur" eine Fleissarbeit, aber man muss halt wissen was man macht.
Gruß
Franz
Anzeige
AW: Zeitstrahl/Platzbelegung -VBA-
13.09.2009 22:43:03
fcs
Hallo Wolfgang,
Ich hab dir deine Datei mal so eingerichtte, dass nach der Eingabe von Daten im Formular das Blatt TN-Daten per Makro ausgefüllt und das Timesheet aktualisiert wird. Änderungen von Daten oder löschen von ganzen Zeilen muss du im Blatt TN-Daten machen. Du kannst neue Zeilen auch direkt in der Tabelle ergänzen.
Die verwendeten Formeln für die Bestimmung der Farbe und insbesondere für die Berechnung der Anzahl freien Plätze sind sehr rechenintensiv. Deshalb solltest du während der Dateneingabe die Berechnungs-Option auf manuell setzen. Das Makro macht das automatisch.
Ich hab die Datei mit Excel2007 erstellt und als 97-2003 gespeichert. Ich bin nicht sicher, ob die im Makro für den Eingabe-Button eingefügte Sortierung der Liste mit den älteren Versionen kompatibel ist.
https://www.herber.de/bbs/user/64391.xls
Gruß
Franz
Anzeige
Danke Franz; Objekt nicht gefunden
14.09.2009 20:17:34
Wolfgang
Hallo Franz,
herzlichen Dank für Deine Rückmeldung und Deine Ausarbeitungen. Sie entsprechen sehr deutlich meinen Vorstellungen. Ich mußte für mich zunächst nur realisieren, wie der Kalender "fortgeschrieben" wird. Das ist doch von Dir gut gelöst. Bei Eingabe der Daten erscheint dabei allerdings eine Fehlermeldung, die ich nicht einkreisen kann. VBA meldet bei "With .ListObjects("Tabelle1").Sort" im Modul des UF den Fehler, dass das Datenobjekt bzw. die Methode nicht gefunden werden konnte. Hättest Du da evtl. noch eine Idee? - Gebe ich die Daten manuell in das Blatt TN_Daten ein, werden sie auch in TimeSheet einsortiert. Das ist so, wie ich es mir gewünscht hatte. Dafür nochmals recht herzlichen Danke.
Gruß - Wolfgang
Anzeige
AW: Danke Franz; Objekt nicht gefunden
15.09.2009 07:44:08
fcs
Hallo Uwe,
die "Einkreisung" heißt Unterschied zwischen Excel-Version 2007 und älteren Versionen bezüglich Listen/ListObjects.
Ich hab den Eintragen-Button im UF so programmiert, dass nach dem Eintragen von Daten im Blatt TN-Daten dieses nach "TN-Platz" und "Datum vom" sortiert wird. Die Sortierung sorgt dafür, dass die Farben der Balken innerhalb einer Zeile immer abwechselnd sind.
Entweder du löscht die Sortierung im Code oder probierst es mit folgender Variante oder baust nur die Variante für die älteren Versionen ein.
Gruß
Franz
  Application.ScreenUpdating = False
With wksTN
Zeile_TN = .Cells(.Rows.Count, 6).End(xlUp).Row + 1
.Cells(Zeile_TN, 1).Value = strKunde
.Cells(Zeile_TN, 2).Value = strKundeVN
.Cells(Zeile_TN, 3).Value = strKundeNr
.Cells(Zeile_TN, 4).Value = Datum_A
.Cells(Zeile_TN, 5).Value = Datum_E
.Cells(Zeile_TN, 6).Value = CLng(strPlatz)
'Daten neu sortieren nach "TN-Platz" und "Datum von"
If Val(Left(Application.Version, 2)) >= 12 Then
'Sortieren des Listobjekts in Excel 2007
With .ListObjects("Tabelle1").Sort
.SortFields.Clear
.SortFields.Add Key:=wksTN.Range(wksTN.Cells(2, 6), wksTN.Cells(Zeile_TN, 6)), _
SortOn:=0, Order:=1, DataOption:=0
.SortFields.Add Key:=wksTN.Range(wksTN.Cells(2, 4), wksTN.Cells(Zeile_TN, 4)), _
SortOn:=0, Order:=1, DataOption:=0
.Header = 1
.MatchCase = False
.Orientation = 1
.SortMethod = 1
.Apply
End With
Else
'Sortieren ältere Versionen
With .Range(.Cells(3, 1), .Cells(.Rows.Count, 6).End(xlUp))
.Sort key1:=.Range("F1"), order1:=1, _
key2:=.Range("D1"), order1:=1, Header:=1
End With
End If
End With
Call Terminplan
Application.ScreenUpdating = True
End Sub

Anzeige
was mache ich falsch?
15.09.2009 20:05:58
Wolfgang
Hallo Franz,
Danke für Deine erneute Rückmeldung. Nachdem bei der Version 2007 immer noch gleiche Fehlermeldung kommt, habe ich die ältere Version eingebaut. Nun erscheint im Modul Terminplan bei "
lngColor = Application.WorksheetFunction.VLookup(lngFarbNr, _ Application.Range("FarbCodes"), 3, False)"
eine Fehlermeldung: Die Vlookup-Eigenschaft konnte nicht zugeordnet werden. Muß ich evtl. noch an anderer Stelle etwas verändern? - Danke schon jetzt wieder für Deine Rückmeldung.
Herzliche Grüße
Wolfgang
AW: was mache ich falsch?
16.09.2009 13:46:29
fcs
Hallo Wolfgang,
eigentlich machst du nichts falsch. Es gibt leider immer mal wieder Probleme durch die unterschiedliche Behandlung der Listen-Objekte in Excel 2007 und z.B. Excel 2003. Dabei spielt leider auch die eine Rolle welche Zelle im Moment der Makroausführung aktiv ist.
Ich hab jetzt die Datei nochmals in 2003 geöffnet und so angepasst, dass sie funktioniert. Dazu hab ich die Sortierroutine als separate Routine eingerichtet. Zusätzlich hab ich noch eine kleine Prozedur eingebaut, die nach dem Sortieren prüft, ob es Überlappungen von Terminen bei einem Platz gibt.
Im Userform werden die Eingaben vor dem Eintrag in die Tabelle geprüft und können ggf. korrigiert werden.
Gruß
Franz
https://www.herber.de/bbs/user/64461.xls
Anzeige
Danke Franz, super!!
16.09.2009 20:39:13
Wolfgang
Hallo Franz,
erneut herzlichen Dank für Deine Rückmeldung und insbesondere für Deine neuen Ausarbeitungen. Ich habe, wie Du ja schon vorher geschrieben hattest, den Code Sortieren "neu" herausgenommen und den "alten" Sortiercode belassen. Nun läuft das Tool wunderbar und super, auch der Zusatz bzgl. der Überlappungen ist einfach nur super!. Ich freue mich sehr und danke Dir nochmals recht herzlich für Deine Arbeit, Zeit und Geduld, die Du für mich aufgebracht hast. Weiterhin Dir alles Gute.
Gruß - Wolfgang

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige