Popup bei Zeitablauf
 |
Betrifft: Popup bei Zeitablauf
von: Manasse
Geschrieben am: 14.11.2014 09:37:41
Hallo,
ich habe eine Tabelle die Zeitintervalle beinhaltet. Nun soll ein Popup erscheinen, wenn ein Zeitintervall beendet ist. Also etwa so:
A1: Kennung, A2: Zeitintervall Beginn, A3: Zeitintervall Ende
Wenn A3< Aktuelle Zeit, dann Popup
Hat jemand eine Idee, ob, und wenn ja wie, so etwas machbar ist?
Herzlichen Dank für jede Hilfe
Gruß Manasse
Betrifft: AW: Popup bei Zeitablauf
von: Hajo_Zi
Geschrieben am: 14.11.2014 09:38:58
vielleicht reich auch die bedingte Formatierung?


Betrifft: AW: Popup bei Zeitablauf
von: Manasse
Geschrieben am: 14.11.2014 09:50:03
Servus,
vielen Dank für die schnelle Reaktion. Eine bedingte Formatierung wäre das Notszenario. Da es sich aber um eine große Tabelle handelt, die auch noch unter Stressbedingung bearbeitet werden muss, wäre ein Popup die bessere Variante.
Gruß Manasse
Betrifft: Hängt davon ab...
von: Frank
Geschrieben am: 14.11.2014 13:20:13
... wann und wie oft der Vergleich durchgeführt werden soll.
Praktikabel wäre hier die Verwendung von Worksheet-Ereignissen. Oder Du belegst einen Button mit dem Code. Der Code an sich ist ja nicht schwer zu realisieren:
If Cells(1, 3).Value < Time Then MsgBox "Zu spät"
Grüsse,
Frank
Betrifft: AW: Hängt davon ab...
von: Manasse
Geschrieben am: 14.11.2014 14:51:22
Hi Frank,
vielen Dank. Super Idee!!
Ich habe es per Button gelöst. Dennoch eine Frage, ob Du mir einen weiterführenden Tipp geben kannst. Mit dieser von Dir dargestellten Formel wird ja nur ein Feld abgefragt. Ich muss aber eine ganz Latte von Feldern püfen. So habe ich einfach mal (zum Test) drei Felder zum prüfen in die Button Programmierung eingefügt. Also drei Zeilen Deiner Formel untereinander.
If Cells(3, 3).Value < Time Then MsgBox "Überfällig Zeile 3"
If Cells(4, 3).Value < Time Then MsgBox "Überfällig Zeile 4"
If Cells(5, 3).Value < Time Then MsgBox "Überfällig Zeile 5"
Das Ergebnis ist, dass ich drei mal auf OK in der MsgBox drücken muss und bekomme jeweils die Info zu der relevanten Zeile.
Meine Frage nun, ob es eine Möglichkeit gibt, dass alle Felder deren Zeitintervall überschritten ist, auf einmal in der MsgBox angezeigt werden können? Hast Du dazu eine Idee?
Gruß
Manasse
 |
Betrifft: AW: Hängt davon ab...
von: Manasse
Geschrieben am: 14.11.2014 15:04:39
Nur die Markierung, dass noch ein Hilfegesuch offen ist.
Betrifft: Ja, geht.
von: Frank
Geschrieben am: 14.11.2014 15:19:34
Hi Manasse,
so z.B:
Z1=0
if...Vergleich erste Zelle... then Z1=1
if...Vergleich zweite Zelle... then Z1=Z1 + 2
if...Vergleich dritte Zelle... then Z1=Z1 + 4
if Z1>0 Then
select case Z1
case 1
Text="Zeile 1"
case 2
Text="Zeile 2"
case 3
Text="Zeile 1 & Zeile 2"
...
...
end select
Dummy=msgbox("Zeitüberschreitung", "Überfällig: " & Text, vbOKonly)
end if
Grüsse,
Frank
Betrifft: AW: Ja, geht.
von: Manasse
Geschrieben am: 14.11.2014 15:41:21
Hallo Frank,
vielen Dank. Leider bleibt das Makro bei der MsgBox hängen und ich weiß nicht warum. Wenn Du noch Zeit und Lust hast, nehme ich gerne Deine Hilfe noch einmal in Anspruch. Wenn nicht, ist das aber auch völlig ok! Ich bin auf jeden Fall ein Stück weiter.
Gruß Manasse
Betrifft: Zu spät ... ;-)
von: Frank
Geschrieben am: 14.11.2014 15:58:44
Hi,
ja, die Messagebox! Ich weiss die Reeihenfolge der Optionen eben auch nur, wenn mir der Editor das als FlyOut anzeigt. Probiers mal so:
Dummy = MsgBox("Überfällig: " & Text, vbOKOnly, "Zeitüberschreitung")
Grüsse,
Frank
Betrifft: Leider keine Sammelmeldung
von: Manasse
Geschrieben am: 14.11.2014 17:34:40
Salü Frank,
nun springt die Box wieder an :-)
Leider kommt sie aber nur einmal und nur mit dem "Überfällig". Den weiteren Text gibt die Box nicht wieder. Aber die Überschrift der Box klappt dennoch.
Ich füge mal die Beispieldatei bei.
https://www.herber.de/bbs/user/93776.xlsm
In dem VBA Editor kannst Du Dir mal die beiden Programmierungsvarianten ("jede überfällige Zeile wird einzeln gemeldet" und "Versuch alles in einer Box") anschauen. Es ist jeweils nur eine Möglichkeit zu aktivieren. So kann der Unterschied gut nachvollzogen werden.
Gruß
Manasse
Betrifft: Bin erst wieder am Mittwoch online
von: Frank
Geschrieben am: 14.11.2014 21:38:02
Hi
vielleicht schaut sich ja jemand den Thread mal an. Bin frühestens Dienstagabend; ggf. auch erst Mittwochabend wieder online.
Grüsse,
Frank
Betrifft: CASE vollständig prüfen
von: Frank
Geschrieben am: 19.11.2014 09:04:15
Hallo Manasse,
ja, ist klar. Du musst natürlich auch die übrigen Varianten (Z1=4, 5, 6 etc) in der SELECT CASE-Abfrage definieren. In der jetzigen Variante prüfst Du nur bis CASE 3. Das wird aber sofort überschritten, wenn mehr als eine Zeile oder Zeile 5 überfällig sind.
CASE 4 wäre dann Text = "Zeile 5"
CASE 7 wäre dann Text = "Zeile 3 & Zeile 4 & Zeile 5"
CASE 6 und 5 überlasse ich Dir.
Grsse,
Frank
 |
Betrifft: Besten Dank
von: Manasse
Geschrieben am: 19.11.2014 13:14:54
Hallo Frank,
ganz herzlichen Dank, dass Du tatsächlich noch einmel in den Fall geschaut hast. Jetzt verstehe ich auch was da vor sich geht. Wenn ich dann eine länger Liste habe wird es kompliziert, da der Text für jeden Fall vorgeschrieben werden muss. Ich hatte halt die schlichte Vorstellung, dass man in der Box Texte zusammenziehen kann abhängig davon, ob ein Feld nun betroffen ist oder nicht. Also so etwa wie "Text verknüpfen". Aber nun ja ...
Trotzdem vielen Dank, dass Du Dir die Zeit genommen hast und ich wieder etwas dazu gelernt habe.
Gruß
Manasse
Betrifft: Dann eher so...
von: Frank
Geschrieben am: 19.11.2014 13:50:39
Hallo nochmal,
das geht natürlich auch anders, wenn da noch mehr Abfragen erfolgen sollen.
Text="Überfällig: "
for i= 3 to 10 'falls 7 Zeilen zu prüfen sind
If Cells(i, 3).Value < Time And Cells(i, 4) = "" Then
Text=Text & "Zeile " & i
end if
next
Da steht dann aber kein Komma drin, wie das für ordentliches Deutsch der Fall sein sollte. Setzt Du am Ende noch ein
& ", ", hast Du am Ende ein Komma, obwohl da gar nix mehr kommt. Klar, auch das kann man abfangen, indem man das einfach nach dem letzten Durchlauf wieder aus dem String entfernt:
Text = Left(Text, Len(Text) - 2).
Das war aber so nicht gefragt. In Deiner anfänglichen Fragestellung ging es um
eine Zelle, die geprüft werden sollte, was dann später auf
drei erhöht wurde.
Grüsse,
Frank
Betrifft: Genial !!!
von: Manasse
Geschrieben am: 19.11.2014 15:21:17
Hi Frank,
es wird immer besser mit der Datei. Super!! Ich trau mich kaum noch zu gestehen, dass ich mit Deinem Input das letzte Komma nicht wegbekomme. Ich weiß einfach nicht, wo ich diese Zeile (Text = Left(Text, Len(Text) - 2)) unterbringen soll. Ich füge die Datei vorsichtshalber noch einmal bei.
https://www.herber.de/bbs/user/93880.xlsm
Wenn Du noch mal ganz viel Zeit und Interesse hast, würde ich mich über einen nochmaligen Tipp freuen :-)
Du glaubst nicht, wie dankbar ich für deine Tipps bin. Und Du hast recht, dass meine Anfrage anders gestellt war. Ich bin bisher immer vorsichtig und frage nicht zu viel, damit ich keinen von meiner Anfrage abschrecke. Nicht jeder hilft so toll. Jetzt ist aber alles (bis auf den Schönheitsfehler des letzten Kommas) erreicht, was ich mit der Tabelle vorhatte. Ganz herzlichen Dank!!!!
Gruß
Manasse
 |
Betrifft: Zeichenkette 'Text' bearbeiten
von: Frank
Geschrieben am: 19.11.2014 16:19:56
Hallo Manasse,
einfach zwischen die Zeilen Text = Text & i & ", " und End If
Damit wird die Zeichenkette, die in der Variable 'Text' steckt, abschliessend bearbeitet.
Grüsse, Frank
Betrifft: AW: Zeichenkette 'Text' bearbeiten
von: Manasse
Geschrieben am: 19.11.2014 16:55:30
Salü Frank,
herzlichen Dank nochmal für die Hilfe. Zwar verschwinden alle Kommata im Infofeld wenn ich Deine Zeile an den angegebenen Ort kopiere, aber da es ja nur ein Schönheitsfehler ist, will ich Dich nicht länger belästigen und behalte einfach das letzte Komma. Es sei denn, dass Du wirklich Spaß daran hast.
Grüsse
Manasse
Betrifft: Ist ja auch Quatsch...
von: Frank
Geschrieben am: 19.11.2014 18:17:45
Da hatte ich nicht noch mal richtig hingeguckt. Nach dem NEXT, vor der Ausgabe der MSGBOX natürlich.
Grüsse,
Frank
Betrifft: Geschafft. DANKE!!
von: Manasse
Geschrieben am: 19.11.2014 18:22:24
Salü,
und nun, nach perfekter Lösung, noch einmal ein ganz herzliches Dankeschön !!!!!!!!!!!!!!!!!
Grüsse,
Manasse