Pivottabelle
#31
Hallo Gast 123,

also den Umsatz können wir auf jeden Fall weglassen, der wird teilweise erst Tage später eingegeben.

Bezüglich Fehlermeldung: Wenn ich Daten in den Dispoplan eintrage werden diese zwar in das Archiv übernommen aber nur angezeigt wenn der entsprechende Tag als 1.Tag ausgewählt ist.
Also z.B. 01.03.2017 und 02.03.2017 werden im Dispoplan angezeigt. Daten für 02.03.2017 sind zwar im Archiv aber werden nicht angezeigt, da es der 2.Tag ist. Sobald ich den 02.03.2017 als 1. Tag auswähle werden die Daten angezeigt.

Desweiteren ist mir aufgefallen dass ich nicht weiter zurück als zum heutigen Tag blättern kann. Es sollte aber keine Begrenzung geben, da ich ja auch auf ältere Daten aus dem Archiv zugreifen will.

Eine Fehlermeldung im Code erscheint nicht, d.h. Debuggen kann ich so nichts. Die Fehlermeldung aus meinem Text bezog sich nur auf den Hinweis das kein Umsatz eingetragen wurde.

Schöne Grüße

Thomas
Top
#32
Hallo Thomas

vorab habe ich eine Lösung für das Datum gefıunden.  Damit kannst du ab 1.1.2017 Scrollen.  Das Scrollen kannst du auch manuell beschleunigen, indem du in die Zelle A17 den ungefaehren Zahlenwert des gewünschten Tages eingibst.  Die Datumformel in Zelle G1+Zelle K1 müssen geaendert werden: 
=DATUIM(JAHR(A4);1;1)+A17  Zelle K1 zu:  =G1+I1+1  In Zelle I1 lade ich zum umschalten von Samstag auf Montag den Wert 2.

Im Makro für SpinButton muss eine neue Zeile rein, hier das geanderte Makro.  Dieser Teil muss auch ins Makro für SpinUp kopiert werden:  
If Weekday([g1], 2) = 5 Then [I1] = 2 Else [I1] = 0

Die andere Sache habe gesehen was du menst, muss ich noch aendern.

mfg  Gast 123

Code:
Private Sub SpinButton1_SpinDown()
Range("D35") = SpinButton1.Value
Datum = CDate(Range("G1"))  'Umschaltung Montag -> Freitag
If Weekday(Datum, 2) = 7 And [a17] > 2 Then [a17] = [a17] - 2
If Weekday(Datum, 2) = 6 And [a17] > 1 Then [a17] = [a17] - 1
If Weekday([g1], 2) = 5 Then [I1] = 2 Else [I1] = 0
Call Dispoplan_ausfüllen_Neu
End Sub
Top
#33
Hallo Thomas,

ich habe den Fehler gefunden und bitte das untere Makro für den DispoPlan auszutauschen.  Damit sollte es alufen.

Würde mich freuen.

mfg  Gast 123

Code:
Option Explicit      '23.2.2017  Gast 123   Clever Forum
'Fehler korrigiert:   05.3.2017  (Datum2 über Set rFind!)
Dim Datum As Date, Datum2 As Date


'Neues Makro zum DispoPlan ausfüllen

Sub Dispoplan_ausfüllen_Neu()
Dim LKW As Variant, j As Integer
Dim rFind As Object, k As Integer
Application.ScreenUpdating = False

With Worksheets("Dispoplan")
    '1. + 2. Tag Datum laden
    Datum = CDate(.Range("G1"))
    Datum2 = CDate(.Range("K1"))
    'Status Text löschen
    Range("A25:A26").Value = Empty
    '1. + 2. Tag komplett löschen
    Range("E3:L34").Value = Empty

    '1.Tages Datum in Datenbank Spalte N suchen
    Set rFind = Columns("N").Find(What:=Datum, After:=Range("N2"), _
        LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext)

    'Meldung wenn keine Daten vorliegen
    If rFind Is Nothing Then Range("A25:A26") = "Keine Daten im Archiv": Exit Sub
   
    If Not rFind Is Nothing Then
       '1. Schleife für 1. Tag ausfüllen
       For k = 1 To 25:  LKW = Empty
       If rFind.Cells(k, 1) <> Datum Then Exit For
       'Schleife für LWW von 1 bis 11 finden
       For j = 3 To 34
          If Cells(j, 4) <> "" Then LKW = Cells(j, 4)
          'Aussprung wenn Disp LKW Nr > als Datenbank LKW
          If LKW > rFind.Cells(k, 2) Then Exit For
          If LKW = rFind.Cells(k, 2) Then
             'Daten in Zeile:  Fahrer1 oder Fahrer2 eintragen
             If Cells(j, 5).Value = "" Then _
                Cells(j, 5).Resize(1, 4).Value = rFind.Cells(k, 3).Resize(1, 4).Value Else _
                Cells(j + 1, 5).Resize(1, 4).Value = rFind.Cells(k, 3).Resize(1, 4).Value
             Exit For
          End If
       Next j
       Next k
    End If

    '1.Tages Datum in Datenbank Spalte N suchen
    Set rFind = Columns("N").Find(What:=Datum2, After:=Range("N2"), _
        LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext)

    'Meldung wenn keine Daten vorliegen
    If rFind Is Nothing Then Range("A26") = "Keine Daten im Archiv": Exit Sub
       
    If Not rFind Is Nothing Then
       '1. Schleife für 1. Tag ausfüllen
       For k = 1 To 25:  LKW = Empty
       If rFind.Cells(k, 1) <> Datum2 Then Exit For
       'Schleife für LWW von 1 bis 11 finden
       For j = 3 To 34
          If Cells(j, 4) <> "" Then LKW = Cells(j, 4)
          'Aussprung wenn Disp LKW Nr > als Datenbank LKW
          If LKW > rFind.Cells(k, 2) Then Exit For
          If LKW = rFind.Cells(k, 2) Then
             'Daten in Zeile:  Fahrer1 oder Fahrer2 eintragen
             If Cells(j, 9).Value = "" Then _
                Cells(j, 9).Resize(1, 4).Value = rFind.Cells(k, 3).Resize(1, 4).Value Else _
                Cells(j + 1, 9).Resize(1, 4).Value = rFind.Cells(k, 3).Resize(1, 4).Value
             Exit For
          End If
       Next j
       Next k
    End If

End With
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • Thomas78
Top
#34
Hallo Gast 123,

der erste Testtag verlief bisher ohne Probleme [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
] !
Das ist wirklich großes Kino. Vielen Dank!

Ich werde es noch ein paar Tage ausprobieren und mich dann nochmal melden.

Schöne Grüße

Thomas
Top
#35
Hi,

(05.03.2017, 12:21)Gast 123 schrieb: ich habe den Fehler gefunden und bitte das untere Makro für den DispoPlan auszutauschen.  Damit sollte es alufen.

die Lösung gefällt mir sehr gut!

Und ich lerne jedes Mal ein paar türkische Worte kennen. :)
Top
#36
Hallo

herzlichen Dank an euch beide, es freut mich sehr das mir hier eine gute Lösung gelungen ist.
Ich sage es mal ganz ohne Überheblichkeit.  Anerkennung für gute Arbeit tut einem einfach seelisch sehr gut!!  Danke, danke ....

@Ralf    ich höre gerade den Gebetsruf vom Minarett  (5 mal am Tag)

mfg  Gast 123
Top
#37
Hallo Gast 123,

nach einigen Tests ist mir bisher kein Fehler aufgefallen, es läuft bisher alles einwandfrei !!! :18:

Falls du Zeit und Lust hast könnten wir den Urlaubsplan auch so machen?  Blush

Wie man in der angehängten Datei sieht, habe ich im Urlaubsplan einen Monatskalender den ich mit Button hin- und herblättern kann. Meine Wunschvorstellung wäre das ich den Fahrern im Kalenderfeld u=Urlaub, k=Krank, 2=Zweitagestour eingebe und er mir die Daten ins Archiv (rechts daneben) übernimmt. Beim Archiv bin ich mir nicht sicher ob ich die Einträge täglich eintragen muss (also z.B. Urlaub am 01.03., 02.03, 03.03. usw.) oder ob man auch einen Zeitraum angeben kann (also z.B. 01.03. bis 03.03.)? Beim Wechsel des Monats über den Button soll er mir falls vorhanden die Daten aus dem Archiv wieder laden.

Zweiter Punkt wäre, dass ich im Dispoplan unten (E36-E38 und I36-I38) den Urlaub, bzw. (G36-G38 und K36-K38) Krankheit bisher über das Kalenderfeld anzeigen lasse (also Fahrer xxx hat am ausgewählten Tag Urlaub). Dies würde ich ebenfalls gerne über das Archiv lösen. Muss ich dazu nur den Indexbereich vergrößern oder ist hierfür eine größere Änderung nötig?

Wäre super wenn ich dich hierfür nochmal beanspruchen darf, da die Datei dann fertig zur Nutzung wäre... Es eilt aber nicht!!!

Vielen Dank und schöne Grüße

Thomas


Angehängte Dateien
.xlsm   Spedition.xlsm (Größe: 274,04 KB / Downloads: 10)
Top
#38
Hallo Thomas

ich war privat beschaeftigt, habe jetzt aber Zeit gefunden mir den Urlaub noch einmal anzusehen.  Anbei eine neue Beispieldatei.

In der Spalte A gibt es jetzt eine Vorschau für den ganzen Monat, ob Urlaub oder Krank Daten vorliegen  Mit einem kleinen Schönheitsfehler, der mir zu aufwendig war das noch in den Griffe zu bekommen.  Hat ein Mitarbeiter in einem Monat zwei verschiedene Eintragungen für Urlaub, kann ich die Blöcke nicht sauber trennen.  Dann passiert es das Die Vorschau z.B. Urlaub vom 3.3. - 28.3. ausweisst, obweohl es einmal nur ein Einzeltag ist, und ein ganzer Urlaubsblock. Das Problem ist das durch die Unterbrechung von Samstag, Sonntag der Urlaub in Blöcke zerteilt wird. Die kann ich zur Zeit nicht trennen.

Der jeweilige Tages Urlaub oder Krankmeldung wird in Spalte D + E angezeigt.  Das sollten stimmige Daten sein.  Ich konnte es aber nicht genau prüfen, weil mir in der Urlaubs Datenbank keine neue Daten vorliegen.

Würde mich freuen wenn wir damit den Thread abschliessen können.

mfg  gast 123


Angehängte Dateien
.xlsm   Spedition 2.xlsm (Größe: 273,44 KB / Downloads: 9)
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • Thomas78
Top
#39
Hallo Thomas

ich vergass dir zu sagen, das für den Urlaubsplan zwei neue Module, Modul 3+4 in deine Datei eingefügt werden müssen. Ebenso musst du das existierende Makro in der Tabelle Dispoplan gegen die neue Version tauschen. Dann sollte es klappen.

Die Urlaubs Vorschau erfolgt über die Aktion Sheet.Activate, d.h., wenn du den Dispoplan verlaesst um z.B. neuen Daten für Krank oder Urlaub einzugeben werden nach der Rückkehr in die Tabelle Dispoplan die Daten aktualisiert. Ohne Button!  Der Tages Urlaub wird über die SpinButton immer mit aktualisisert. Alles automatisch, ohne Button.

Bis auf den kleinen Schönheitsfehler das ich mehrfache Urlaubstage nicht einzeln erfassen kann sollte es klappen. Angezeigt werden in der Vorschau auch nur die Daten ab dem aktuellen Tag bis Monats Ende. Für die aktuellen Daten im Urlaubsplan musst du bitte sorgen. Viel Glück und toi, toi, toi .....

mfg  Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • Thomas78
Top
#40
Hallo gast123,

vielen Dank für deine Rückmeldung !

Ich freu mich sehr deine neue Version zu testen. Es kann aber etwas dauern, da momentan viel los ist.

Auch ohne Test aber schonmal ein dickes Dankeschön für deine Bemühungen !!!!

Schöne Grüße Thomas
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste