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

mist stecke in sackgasse

mist stecke in sackgasse
08.01.2016 08:06:08
thomas
Hallo Excelgemeinde,
irgendwie stecke ich in eine Sackgasse. Ich wollte mal fragen ob man noch was machen kann oder ob ich neu und anders anfangen muss.
Ich habe mir ein Kalender gebaut der insgesamt 5 Termine darstellen kann. Nun muss ich aber auch mehrtägige Termine darstellen und dabei beiße ich mir selbst in den ...
Im Beispiel habe ich in der Tabelle " für Kalender" ein Beispiel markiert.
Ich weiss einfach nicht wie ich das im Kalender Darstellen kann. bedingte Formatierung,Formel oder sogar VBA. Selbst wenn ich die Formatierung mit Anzahl der da zwischenliegenden Tagen lösen könnte ( was ich fachlich nicht kann) würde sich der nächste Termin am selben Tag beißen und nicht wie gewünschte in die nächste Reihe landen. dabei habe ich mich so gefreut das ich ein Formelwerk gefunden habe das selbst bei 5000 einträgen noch schnell genug ist.
Hat jemand ein Idee? Ich habe auch schon daran gedacht den Kalender als temp zu nutzen und mir dies mit VBA in ein neuen reinschreiben zu lassen aber auch hier bin ich fachlich eine Niete. Wichtig ist noch die Spaltenanordnung in der Tabelle " für Kalender" ist völlig frei in der Gestaltung den dies ist schon eine temp um die daten aus der richtigen Datenbank auf ein Jahr zu reduzieren und In der Tabelle " Kalender habe ich pro Tag noch eine hilfsspalte frei.
Habt schon mal vielen Dank dafür das Ihr mein Roman bis zum schluss gelesen habt.
Hat jemand eine Idee ( bin auch für heftige Kritik offen)
liebe grüsse thomas
https://www.herber.de/bbs/user/102659.xlsm

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Take next exit
10.01.2016 19:08:40
Michael
Hi Thomas,
es gibt ne Reihe konzeptioneller Mängel, auf die ich unten noch eingehen werde.
Erst mal hat sicherlich deshalb keiner geantwortet, da man nicht auf den ersten Blick begreift, was Du da treibst.
Andererseits: hat man es erst mal begriffen, ist die Lösung eigentlich ganz einfach und mit ein paar Zeilen VBA erledigt:
Sub datenZuordnen()
Dim d_von&, d_bis&, d&, mehrere&
Dim termine As Variant
Dim c As Range
einblenden
d_von = 2
d_bis = Daten.Range("E" & Rows.Count).End(xlUp).Row
termine = Daten.Range("A" & d_von & ":G" & d_bis)
For d = 1 To UBound(termine, 1)
Set c = Jahr.Cells.Find(what:=termine(d, 1), LookIn:=xlValues)
If Not c Is Nothing Then
For mehrere = 0 To termine(d, 3) - 1
c.Offset(, 2 + mehrere * 3) = termine(d, 7)
Next
Else
Daten.Range("H" & d + 1) = "fehler"
End If
Next
ausblenden_Bdef
End Sub
Damit werden alle Termine mit VBA geschrieben, d.h. u.a., daß Du Excel deutlich entlasten kannst, indem Du alle nicht benötigten Formeln rauslöschst.
Schau Dir mal den Ausschnitt an:
Userbild
Sowohl beim Freitag als auch dem Tag ist eine Riesenformel hinterlegt, obwohl beides (in dem konkreten Fall) den Tageswert 42006 hat und die Anzeige "Fr" bzw. "02" nur eine Sache der Formatierung ist.
D.h., die untere Formel (in G4) kannst Du durch ein schlichtes =G3 ersetzen - und das sinngemäß in der gesamten Tabelle.
Die Formeln in G5 bis G9 kannst Du komplett löschen (wie gesagt, die Werte werden mit VBA eingefügt), und zwar sinngemäß auch in der gesamten Tabelle.
Weiterhin sind die Formeln direkt "links daneben", also die Anzahl der Tage, auch hinfällig, da sich das Makro die Info direkt aus dem Blatt "für Kalender" holt.
Man könnte diese Spalten genausogut ganz löschen, müßte dann allerdings im Makro die Zeile
c.Offset(, 2 + mehrere * 3) = termine(d, 7)

entsprechend anpassen - mach das, sobald Du verstanden hast, was da passiert...
Zur Konzeption:
1. arbeitet "mein" Makro nicht über Monatsgrenzen hinweg, d.h. Du nimmst dann bitte zwei Zeilen. Also z.B. statt 30.1. bis 2.2. eben 30.1. bis 31.1. und 1.2. bis 2.2.
2. hat Deine Formel im Blatt "für Kalender" in Spalte C einen grundsätzlichen Mangel: gibst Du etwa in E6 den 6.1. ein, wird wieder bei 1 begonnen, obwohl sich das mit dem Zeitraum 5.1. bis 8.1. überschneidet. Mit "Excel gut" wird es Dir ein Leichtes sein, das zu ändern, schlimmstenfalls mit einer Hilfsspalte, z.B. D.
3. eine Begrenzung auf 5 Zeilen pro Monat ist immer haarig; was ist, wenn dann doch mal 6 Zeilen benötigt werden? Der "sauberste" Ansatz wäre, das Ganze so variabel zu gestalten, daß so viele Zeilen erzeugt werden wie nötig.
Das sollte mit VBA "relativ problemlos" umzusetzen sein, würde in meinen Augen aber einen komplett neuen Ansatz rechtfertigen, in dem man es "gleich richtig" macht. Ein gewisses Hindernis sind dabei die vielen, vielen bedingten Formatierungen...
Die Datei: https://www.herber.de/bbs/user/102707.xlsm
Ach, genau, ich habe Deine Subs zum Ein- und vor allem Ausblenden überarbeitet *und* eine weitere Alternative (mit der jeweiligen Endung _Bdef) aufgezeigt: man kann nämlich in Excel unter "Ansicht/Benutzerdefinierte Ansichten" selbige mit ein- und ausgeblendeten Zeilen/Spalten definieren, so daß zur Änderung der Anzeige nur *eine* VBA-Zeile nötig ist.
Schöne Grüße,
Michael

Anzeige
AW: Take next exit
10.01.2016 20:07:04
Thomas
Hallo Michael,
ich bin überglücklich das Du dich damit beschäftigt hast. Ich habe mir das ganze WE damit beschäftigt und dachte ok versuche ich es mal mit autoausfüllen. Deshalb auch der neue Beitrag von mir aber ich stand immer wieder auf anfang. Die ganzen Formatierungen können alle raus normalerweise baue ich soetwas erst zu schluss ein. Deshalb hätte ich überhaupt kein problem mit einem kompletten neuanfang im gegenteil wenn es danach sogar noch einfacher ist.
zu dein Punkt
3. eine Begrenzung auf 5 Zeilen pro Monat ist immer haarig; was ist, wenn dann doch mal 6 Zeilen benötigt werden? Der "sauberste" Ansatz wäre, das Ganze so variabel zu gestalten, daß so viele Zeilen erzeugt werden wie nötig.
Ich habe es auf fünf reduziert weil es immer langsamer wurde und ich kein Rat mehr wusste.
Da ich mir vorstellen kann das Du schon sehr lange daran gearbeitet hast ist mir sehr peinlich dich zu fragen wie ich es besser Konzeptionieren könnte. ( Hast Du dann die viele arbeit umsonst gemacht?) Aber die Vorstellung diese Beschränkung aufzuheben ist total cool.
Jedoch befürchte ich wenn ich es neu oder besser umschreibe weiß ich nicht wie ich Anfangen könnte. In jedem Fall werde ich erstmal alle deine Tipps in die Tat umsetzen. Hab vielen vielen dank dafür.
(PS: das mit " excel gut" ist für mich schwer zu beurteilen im vergleich von mein örtliches umfeld ist es sicher auch so aber wenn ich sehe was Du zB. schon gemacht hast nun ja da habe ich wohl mit gut übertrieben.)
Was könnte ich ändern damit die Möglichkeit besteht die Beschränkung aufzuheben?
Die Struktur der termindaten ist auch komplett veränderbar. Dies ist nur eine temp zum reduzieren der Daten
viele liebe grüsse thomas

Anzeige
AW: Take next exit
11.01.2016 09:35:55
thomas
Hallo Michael,
ich habe erstmal die überflüssigen Formeln entsorgt und ein wenig angepasst ( nach dein Schema)
mit:
2. hat Deine Formel im Blatt "für Kalender" in Spalte C einen grundsätzlichen Mangel: gibst Du etwa in E6 den 6.1. ein, wird wieder bei 1 begonnen, obwohl sich das mit dem Zeitraum 5.1. bis 8.1. überschneidet. Mit "Excel gut" wird es Dir ein Leichtes sein, das zu ändern, schlimmstenfalls mit einer Hilfsspalte, z.B. D.
habe ich nicht wirklich eine Peilung. Ich sehe das Problem aber ich hab noch keine Idee.
Ich versuche mal dies am Abend zu lösen ( habe zur Zeit logisch kein ansatz) muss erst arbeiten. Soll ich die Formatierungen auch gleich entsorgen? Ach wichtig ist noch ich könnte auch ohne Probleme verschiedene kürzel ( zur Zeit das U ) für jeden Termin verändern würde dies helfen um Überschneidungen in einer Zeile zu verhindern? Ich habe es mal in der vorlage gemacht was hälst du davon?
https://www.herber.de/bbs/user/102716.xlsm
hab vielen dank und
liebe grüsse thomas

Anzeige
ups nicht offen gestellt
11.01.2016 11:59:07
thomas
Hallo,
us nicht offen gestellt sorry,
liebe grüsse thomas

besten dank an Michael
13.01.2016 19:05:48
Thomas
Hallo Michael,
ich wollte Dir nur bescheid sagen das sich das Problem mit der Terminüberschneidung erledigt hat.
Dies erledigt dein Macro selbst. Da es die Termine von oben nach unten abarbeitet musste ich nur nach der Anzahl der dazwischenliegenden Tagen sortieren. Ich stand die ganze Zeit im Wald und habe die Bäume nicht gesehen. Dank deines Macros und deiner tipps habe ich jetzt nur noch die Hälfte der Formeln drin. Dein Macro hat auch kein Problem mit dem Monatswechsel mehr. Ich brauch nur die Zeilen des Folgemonats in die selbe reihe hängen und sie dann mit =CS5 unsw an den richtigen ort schreiben. Klappt prima. Deshalb kann ich diesen Beitrag auch schließen Du hattest von Anfang an alles gelöst ich habe es nur nicht gesehen.
hab vielen dank nochmal dafür.
liebe grüsse thomas

Anzeige
gerne, schau bitte trotzdem die Datei an...
13.01.2016 23:34:46
Michael
Hi Thomas,
freut mich, wenn Du es hinbekommen hast.
Ich muß zugeben, daß ich wirklich ernsthaft nachdenken mußte (über so Sachen wie geeignete Datenstrukturen) und einige Stunden mit falschen Ansätzen verblödelt habe.
Die Lösung hat noch Ecken und Kanten, *könnte* Dir aber gefallen, und vielleicht hilft's noch jemand anderem mal.
Knackpunkt ist die eigentlich einfache (wenn man's mal begriffen hat) Überprüfung, ob im jeweiligen Bereich schon was drinsteht und die Benutzung der jeweils nächsten Zeile, falls ja.
Diese Geschichte wird im Blatt "Vorlage" vorgenommen, wo erst Mal 30 Zeilen zur Verfügung stehen; tatsächlich in den Kalender werden nur die wirklich benötigten übernommen.
Die Einschränkung der Termine auf "innerhalb eines Monats" ist immer noch vorhanden, ansonsten kannst Du aber beliebig viele Termine eingeben (nur, wie Du schon festgestellt hast, bitte sortiert, zumindest nach aufsteigenden "von") - eben auch mit mehr als *fünf* Überschneidungen pro Monat.
Viel Spaß damit: https://www.herber.de/bbs/user/102766.xlsm
Klicke im Blatt "Vorlage" auf "Jahr erzeugen"...
Liebe Grüße zurück,
Michael
P.S.: Melde Dich doch bitte nochmal, zur Not im neueren Thread.

Anzeige
Oh man ist das Cool Michael
14.01.2016 07:48:17
thomas
Hallo Michael,
Michael ich bin absolut sprachlos. Das ist ja richtig richtig Cool. Du hast sogar das Geschwindigkeitsproblem gelöst.
Hab vielen vielen Dank. Das ist eine 1 AAAAA Leistung.
Nun kann ich dein Kalender in mein Projekt einbauen. Ich hatte mir auch noch viele viele Gedanken gemacht gerade was die Anzahl der Termine und der Geschwindigkeit betrifft.
Besser geht es nicht ich bin happy.
Wenn er in mein projekt drinn ist melde ich mich gern nochmal und gebe dir bescheid.
Man bin ich froh soetwas habe ich schon seid Monaten gesucht. Du glaubst nicht wieviele beispiele ich in Foren gesucht hab und dann versucht hab umzuschreiben.
Dies ist für mich die optimale Lösung.
vielen vielen dank
liebe grüsse thomas

Anzeige
vielen herzlichen Dank
14.01.2016 13:36:23
Michael
Hi Thomas,
für Deine begeisterte & begeisternde Rückmeldung.
Ich laß mich gerne irgendwann informieren, wie es weitergegangen ist.
Meine E-mail-Adresse findest Du in den Profilen:
https://www.herber.de/cgi-bin/profile/call_profile.pl?user=1857094
Na, dann wünsche ich weiterhin frohes Schaffen & happy exceling,
liebe Grüße,
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige