Hallo!
Brauche dringend Hilfe. Habe zwei Tabellen vorliegen. In Tabelle „Tabelle1“ werden das Datum sowie die Mitarbeiter-Nr. für den jeweiligen Tag eingetragen. Es können auch mehrere Mitarbeiter an einem Tag arbeiten. Diese Daten sollen nun in Tabelle „MASTER“ übertragen werden. Habe ein Makro geschrieben welches die Tabelle Master (in der die Mitarbeiter-Nr. alle verzeichnet sind) durchläuft und sich jede Mitarbeiter-Nr. und jeden Tag für den Monat merkt und überprüft ob er diese Werte in Tabelle1 findet. Wenn eine Übereinstimmung erfolgt soll eine 1 eingetragen werden, oder falls der Mitarbeiter an dem Tag öfter vorkommt eine 2, 3 etc.
Einige Macken hat das ganze allerdings, ich hoffe ihr könnt mir helfen.
1) Wenn in Tabelle1 ein Datum (z.B. 22.04.2016 mehr als einmal vorkommt, wird die zweite Datenreihe nicht mehr beachtet) – liegt wohl daran, dass die Schleife stoppt sobald sie das Datum in Tabelle1 gefunden hat, wie kann ich das beheben?
2) Das Arbeitsblatt Tabelle1 soll in der Datei weitere x-Mal vorkommen. Vom Aufbau her sind sie alle identisch. Nun soll das geschriebene Makro ALLE Arbeitsblätter durchlaufen und prüfen also auch Tabelle2, Tabelle3 etc. (auch wenn ein neues Blatt hinzugefügt wird).
Sub berechnung()
Dim Spalte As Integer, Zeile As Integer, NrDatum As Integer, Spalte1 As Integer
Dim Datum As Date
Dim Anzahl As Integer, Arbeiter As Integer
Dim MaxArbeiter As Integer, MaxTage As Integer
Dim Eingabe As String
Eingabe = InputBox("Anzahl der Mitarbeiter", "Mitarbeiter
If Eingabe = "" Then Exit Sub
MaxArbeiter = CInt(Eingabe)
Eingabe = InputBox("Anzahl der Tage im Monat", "Monat")
If Eingabe = "" Then Exit Sub
MaxTage = CInt(Eingabe)
For Zeile = 4 To MaxArbeiter + 4
Arbeiter = Worksheets("MASTER").Cells(Zeile, 5).Value
For Spalte = 6 To MaxTage + 6
Datum = Worksheets("MASTER").Cells(3, Spalte).Value
For NrDatum = 6 To 23
If Worksheets("Tabelle1").Cells(NrDatum, 1).Value = Datum Then Exit For
Next NrDatum
Anzahl = 0
For Spalte1 = 5 To 15
If Worksheets("Tabelle1").Cells(NrDatum, Spalte1).Value = Arbeiter Then Anzahl = Anzahl + 1
Next Spalte1
Worksheets("MASTER").Cells(Zeile, Spalte).Value = Anzahl
Next Spalte
Next Zeile
End Sub
Vielen Dank im Voraus!
|