Clever-Excel-Forum

Normale Version: Pausenzeiten bei Vorgangsdauer berücksichtigen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo allerseits,
 
mich beschäftigt im Moment folgendes Problem, bei dem ich derzeit nicht wirklich weiter komme.
 
Ich habe ein Tabelle in der fortlaufend Vorgänge erfasst werden. Hierbei wird u.a. das Datum der Erfassung eingegeben, und später ein Enddatum, wenn der Vorgang abgeschlossen ist. Daraus wird die Dauer des Vorgangs berechnet.
Diese Vorgangsdauer entspricht (mehr oder weniger) der Bearbeitungszeit. Nun kommt es hin und wieder vor, dass aufgrund unterschiedlicher Gründe  (z.B. ausstehendes Feedback anderer Personen etc.) diese Dauer erhöht wird, ohne dass der Bearbeiter des Vorgangs dafür verantwortlich wäre. Diesem Umstand würde ich gerne entgegenwirken, indem die Möglichkeit geschaffen werden soll Pausenzeiten/Unterbrechungen mit einzubeziehen.

Folgendes hatte ich mir bereits überlegt:

Ziel: Der Vorgang soll pausieren (die Dauer (Spalte U) soll sich also während einer Pause nicht weiter erhöhen).

1. Pause (Spalte W) von „Nein“ (Standardwert) auf „Ja“ ändern
2. Pop-up/Eingabemaske öffnet sich mit;
a) No (Spalte B)
b) Grund der Pause (soll in Spalte Xübertragen werden)
c) Startdatum der Pause (soll in Spalte Y übertragen werden)
d) Enddatum der Pause (soll in Spalte Z übertragen werden)
à Wenn das Enddatum eingetragen ist, muss bei Pause (Spalte W) das Dropdown auf „Nein“ wechseln

Auswahl bzw. Eintrag der Daten in aktueller Zeile, also wo sich das Dropdown befindet, in welchem zuvor von „Nein“ auf „Ja“ umgestellt wurde.
Somit hat man, wenn die Eingabemaske ausgefüllt wurde, in den Spalten X, Y und Z einen 3er-Block (Start/Ende/Grund) der die aktuelle bzw. letzte Pause abbildet.

Es sollte auch möglich sein mehrere Pausen zu erfassen. Der letzte Pausenblock sollte dann immer in den Spalten X, Y und Z stehen, die älteren nach rechts „rutschen“ (bei zwei Pausen also AA, AB und AC)

In der Theorie könnte das so klappen, leider sind VBA-Kenntnisse quasi nicht vorhanden, daher haperts es bei der Umsetzung. Vielleicht habt ihr ja Lust mir hierbei (wieder) weiterzuhelfen.
 
Vielen Dank und viele Grüße
Andi
Hi
 
die Umsetzung (per VBA) wie du es hier beschreibst wäre möglich.
Allerdings stellt sich immer wieder die Frage, warum muss es der Umweg über eine UserForm sein  in der ich drei Textboxen beschreibe deren Inhalt dann in die Zellen wandern soll.
Warum schreibe ich nicht gleich in die Zellen, zumal diese ja nebeneinander liegen und im Blatt nicht hin und her gescrollt werden müsste?
 
Warum der Umweg über VBA, welchen Vorteil versprichst du dir davon?  Zumal wie du schreibst, deine Kenntnisse dort noch nicht ausreichen.
 
Gruß Elex
Hallo Elex,
 
vielen Dank für deine Rückmeldung.

Ich bin für Tipps jeglicher Art absolut offen. Wie das ganze realisiert wird, ob per Eingabemaske oder als Formellösung spielt eigentlich keine Rolle. Es sollte in der Praxis halt mit möglichst wenig händischem anpassen funktionieren. Meine Idee war einfach die Lösung die mir am naheliegensten erschien, ich bin aber für alles offen!

Viele Grüße
Hier mal ein Vorschlag.
[attachment=21901]
Hallo Elex,

vielen Dank dafür!

Das sieht auf den ersten Blick schonmal sehr gut aus und vor allem scheint es zu funktionieren. Ich werde das ganze aber noch etwas ausgiebiger Testen.

Hast du für folgenden Punkt vielleicht noch eine Idee?

Zitat:Es sollte auch möglich sein mehrere Pausen zu erfassen. Der letzte Pausenblock sollte dann immer in den Spalten X, Y und Z stehen, die älteren nach rechts „rutschen“ (bei zwei Pausen also AA, AB und AC)
Wobei ich es inzwischen für fast besser halte, wenn die Spalten XYZ als blankos fungieren, also leer sind. Sobald diese befüllt sind, nach rechts verschoben werden und dann eben GrundPause 1 Start Pause1 EndePause1 in den Spalten AA, AB und AC stehen.
Hab ich mich jetzt auch nur halbwegs verständlich ausgedrückt? Huh
Vielleicht hast du ja noch eine Idee wie das machbar wäre, falls nicht auch kein Beinbruch, wird auch ohne gehen.

Viele Grüße
Der Teil geht dann nur mit VBA.

Den Code in das Modul Tabelle1(Übersicht)

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 26 Then
  If Target.Value = "" Then
     MsgBox "Keine Endzeit eingetragen"
  Else
     Range("X" & Target.Row, Range("AR" & Target.Row)).Cut Range("AA" & Target.Row)
  End If
Cancel = True
End If
End Sub

Doppelklick auf Spalte Z in der Zeile wo nach rechts geschoben werden soll.
Hallo Elex,

super, das klappt einwandfrei! Mit dieser Lösung bin ich höchst zufrieden, deutlich weniger umständlich als die Eingabemaske, toll!
Vielen vielen Dank für deine Hilfe!

Auch dir @LCohen vielen Dank für den Tipp!

Viele Grüße
Andi
Guten Morgen,

mir ist nun doch noch eine Kleinigkeit aufgefallen.
Nachdem ich den VBA-Code durch Doppelklick in der Spalte Z ausgeführt habe, hat das, neben dem erwünschten verschieben der Zelleninhalte, noch folgende Begleiterscheinung zur Folge:

Es werden nun leider die Zellbezüge gleichermaßen mitverschoben, dadurch rechnen die Formeln in Spalte U (Dauer) und W (Pause) nicht mehr korrekt.

Ich hatte kurzzeitig gehofft, dass absolute Bezüge das Problem lösen würden, leider war das nicht der Fall.

Ich hab das Phänomen mal anhand zweier Bilder festgehalten (vor und nach dem "verschieben"). Die Beispielmappe hänge ich auch nochmal an.

Vielleicht habt ihr ja noch eine Idee wie sich dieses Problem behebn lässt.

Viele Grüße
Andi
Hi

Hab ich nicht aufgepasst.
So sollte das klappen.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 26 Then
  If Target.Value = "" Then
     MsgBox "Keine Endzeit eingetragen"
  Else
     Range("AA" & Target.Row, Range("AU" & Target.Row)).Value = Range("X" & Target.Row, Range("AR" & Target.Row)).Value
     Range("X" & Target.Row, Range("Z" & Target.Row)).ClearContents
  End If
Cancel = True
End If
End Sub
Gruß Elex
Seiten: 1 2