Thema Datum  Von Nutzer Rating
Antwort
Rot Probleme Beim Eintragen von Userform in Tabelle
16.02.2019 12:17:22 Michael N.
NotSolved
16.02.2019 15:00:12 Gast7777
NotSolved
16.02.2019 16:15:13 Michael N.
NotSolved
16.02.2019 16:57:03 Gast17310
NotSolved
17.02.2019 07:26:30 Michael N.
NotSolved
17.02.2019 07:26:34 Michael N.
NotSolved
17.02.2019 10:14:40 Gast76661
Solved
17.02.2019 13:23:33 Michael N.
NotSolved
14.03.2019 08:29:40 Michael N.
NotSolved

Ansicht des Beitrags:
Von:
Michael N.
Datum:
16.02.2019 12:17:22
Views:
89
Rating: Antwort:
  Ja
Thema:
Probleme Beim Eintragen von Userform in Tabelle

Moin moin,

ich habe folgende Herausforderung an meine Statistiktabelle.

Ist-Zustand:
Über ein Userform kann der Mitarbeiter bestimmte Parameter zu den Fahrten eingeben, die im Betrieb durchgeführt werden. Hier werden u.a. Datum, Fahrtbeginn/-ende und Kilometer eingetragen.
Gleichzeitig wird deklariert um welche Art von Fahrt es sich handelt. Nennen wir sie mal Fahrt1, Fahrt2, [...] Fahrt10.
Je nachdem was für eine Fahrt es ist werden die Kilometer in eine entsprechende Spalte in der Zeile eingetragen um am Ende der Spalte diese zusammenzuzählen. Über die Funktion "=ANZAHL2" werden die Kilometerspalten gleichzeitig zur Zählung der Fahrten der jeweiligen Kategorie genutzt.

Eingetragen werden diese Kilometer in den Spalten B bis K bei der jeweiligen Kategorie. Das bedeutet pro Zeile ist in den Spalten B bis K (od. 2 bis 11) jeweils nur eine mit einem Wert gefüllt. Die übrigen bleiben leer.

Spalte M und N beinhalten Fahrtbeginn bzw. -ende

Spalte L enthält die Formel "=(N-M)*1440" um die Gesamtfahrzeit in Minuten auszugeben.

Am Ende der Eingabe über das Userform wird nach dem Eintragen dann die Tabelle nochmal nach Datum und Fahrtbeginn sortiert.

 

Soll-Zustand:
Die Spalten A bis R sind der zu druckende Bereich. Innerhalb der Aufführung der Spalten soll sich nichts ändern.
Jedes WorkSheet ist eine Monatsaufstellung und am Ende des Monats soll ich die durchschnittliche Zeit pro Fahrt für die Jahresstatistik errechnen lassen. Jetzt habe ich aber das Problem, dass ich diese Fahrtzeiten differenzieren soll. Sprich ich brauche die Durchschnittszeit aller Fahrten in den einzelnen Kategorien, welche sich am Besten direkt mit der Eingabe berechnet.

 

Mein bisheriger Lösungsansatz:
Ich hatte mir überlegt, dass ich die Spalten außerhalb des Druckbereichs nutzen könnte und eine weitere (ich nenne sie jetzt einfach einmal) Ghosttabelle erstelle in der dann die Spalten aufgeführt sind wie bei Spalte B bis K und dort dann die Minuten eingetragen werden. Am Ende der jeweiligen Spalte kann ich dann die Minuten wieder zusammenzählen und mit den Anzahlswerten der ersten Tabelle dann die Durchschnittszeit pro Kategorie berechnen.

Wie man bestimmt an meinen unten aufgeführten Codezeilen sieht arbeite ich mit "If then". Mir wurde gesagt ich könne das Ganze auch mit Schleifen regeln, jedoch muss ich mir dafür erst einmal die Kenntnisse über Schleifen aneignen und das, was die Statistik bis jetzt machen sollte, lief bis mit "If" 100%ig gut.

Ich dachte ich könnte beim Eintragen der Kilometer in die dementsprechende Spalte nach dem "then"-Befehl einfach ein "and" hinten dran hängen und ihm sagen er solle den Zahlenwert, den die Formel in Spalte L ausspuckt einfach in die dementsprechende Spalte meiner "Ghosttabelle" (Spalte X bis AG od. 24 bis 33) kopieren, die ich ein paar Spalten weiter parallel zur eigentlichen Tabelle gezogen habe. Jedoch musste ich dann feststellen, dass das so nicht funktioniert und er mir dann Fehler beim kompilieren ausspuckt.

Vielleicht liege ich mit meinem Lösungsansatz auch total falsch und einer hat eine Idee wie ich das einfacher und/oder besser hinbekommen kann. Bin für jeden Tipp dankbar. =)

Der aktuelle Code:
Wie oben bereits beschrieben arbeite ich mit "If then", da ich von Schleifen und deren sinnvollen Einsatz noch nicht wirklich eine Ahnung habe.

Kurze Erläuterung zu den einzelnen Elementen (auch, wenn man es sich wahrscheinlich denken kann):
"Eingabe" ist der Name des Userforms zur Eingabe der Daten in die Statistik
"TextDatum" ist der Eintrag aus dem Textfeld "Datum"
"TextStart" ist die Eingabe aus dem Textfeld "Fahrtbeginn"
"TextEnde" ist dementsprechend die Eingabe des Users aus dem Textfeld "Fahrtende"
"TextKilometer" ist die gefahrene Kilometerzahl die in die dementsprechende Spalte der Kategorie kommt
"OptionButton???" sind die Ooptionbuttons, die die Kategorie der Fahrt bestimmen. Ebenso ist die Kategorie der Fahrt von der Anzahl der Kilometer abhängig wobei hier die "41" die magische Zahl ist ab der sich die Kategorie ändert.

Private Sub ButtonInsert_Click()
'Leere Zeile suchen und eintragen
    Dim last As Integer

    last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1

        ActiveSheet.Cells(last, 1).Value = Eingabe.TextDatum.Value
        ActiveSheet.Cells(last, 13).Value = Eingabe.TextStart.Value
        ActiveSheet.Cells(last, 14).Value = Eingabe.TextEnde.Value

'Spaltenzuweisungen
    'Fahrt der Kategorie 1 (Spalte 2)
        If Eingabe.TextKilometer.Value < 41 _
            And Eingabe.OptionButton1-1.Value = True _
            And Eingabe.OptionButton2-2.Value = False _
            And Eingabe.OptionButton2-3.Value = False _
            Then ActiveSheet.Cells(last, 2).Value = Eingabe.TextKilometer.Value

    'Fahrt der Kategorie 2 (Spalte 3)
        If Eingabe.TextKilometer.Value > 40 _
            And Eingabe.OptionButton1-1.Value = True _
            And Eingabe.OptionButton2-2.Value = False _
            And Eingabe.OptionButton2-3.Value = False _
            Then ActiveSheet.Cells(last, 3).Value = Eingabe.TextKilometer.Value
        If Eingabe.TextKilometer.Value > 40 _
            And Eingabe.OptionButton1-1.Value = True _
            And Eingabe.OptionButton2-2.Value = False _
            And Eingabe.OptionButton2-3.Value = False _
            Then ActiveSheet.Cells(last, 3).Value = Eingabe.TextKilometer.Value

(usw.)

'Einträge sortieren
    Range(Cells(2, 1), Cells(185, 18)).Sort Key1:=Cells(2, 1), Order1:=xlAscending, _
    Key2:=Cells(2, 13), Order2:=xlAscending, Orientation:=xlTopToBottom

'Zur Hauptmenü zurück
    Worksheets("Hauptmenü").Activate

'Eingabemaske schließen
    Unload Eingabe
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst genau und ausführlich
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
  • Bitte markieren Sie Ihre Anfrage als erledigt wenn Ihnen geholfen wurde
Thema: Name: Email:

 
 

Thema Datum  Von Nutzer Rating
Antwort
Rot Probleme Beim Eintragen von Userform in Tabelle
16.02.2019 12:17:22 Michael N.
NotSolved
16.02.2019 15:00:12 Gast7777
NotSolved
16.02.2019 16:15:13 Michael N.
NotSolved
16.02.2019 16:57:03 Gast17310
NotSolved
17.02.2019 07:26:30 Michael N.
NotSolved
17.02.2019 07:26:34 Michael N.
NotSolved
17.02.2019 10:14:40 Gast76661
Solved
17.02.2019 13:23:33 Michael N.
NotSolved
14.03.2019 08:29:40 Michael N.
NotSolved