Thema Datum  Von Nutzer Rating
Antwort
02.05.2016 09:54:31 punikaa
NotSolved
02.05.2016 12:36:09 Gast31268
NotSolved
03.05.2016 08:36:44 punikaa
NotSolved
03.05.2016 08:44:07 punikaa
NotSolved
03.05.2016 08:45:27 punikaa
NotSolved
03.05.2016 10:00:00 Gast43381
NotSolved
03.05.2016 10:48:22 punikaa
NotSolved
03.05.2016 12:59:15 Gast82090
NotSolved
03.05.2016 14:36:21 punikaa
NotSolved
Blau Makro einfügen
03.05.2016 14:54:05 Gast67443
*****
Solved
04.05.2016 14:34:29 punikaa
NotSolved
04.05.2016 16:17:18 Gast99795
NotSolved

Ansicht des Beitrags:
Von:
Gast67443
Datum:
03.05.2016 14:54:05
Views:
774
Rating: Antwort:
 Nein
Thema:
Makro einfügen

Aha, das Problem von letztens. :-D Nimm das exit for raus und den Rest darunter rein. Dann sollte der Code jedes DAtum durchgehen also auch zweimal das selbe. Aber nur beim richtigen Datum wird auch was gemacht. Ich hab'S mal umgestellt. Probiere mal ob das dann klappt. VG

 

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
Dim Zelle As String
Dim Festmacher As Integer, Mal As Integer, Pos As Integer
Dim ws As Worksheet
  
Eingabe = InputBox("Anzahl der Mitarbeiter", "Mitarbeiter")     'Fragt die Anzahl der Mitarbeiter ab
If Eingabe = "" Or Not IsNumeric(Eingabe) Then Exit Sub
MaxArbeiter = CInt(Eingabe)                                     'Eingabe wird zu Integer umgewandelt und als MaxArbeiter gespeichern
  
Eingabe = InputBox("Anzahl der Tage im Monat", "Monat")         'Fragt die Anzahl der Tage in dem jeweiligen Monat an
If Eingabe = "" Or Not IsNumeric(Eingabe) Then Exit Sub         'Prüfung ob etwas eingegeben wurde und ob Eingabe eine Zahl ist
MaxTage = CInt(Eingabe)                                         'Eingabe wird zu Integer umgwandelt und als MaxTage gespeichert
  
For Zeile = 4 To MaxArbeiter + 4                                'Schleife beginnt bei der ersten Mitarbeiter-NR in Zeile 4 bis hin zum letzten MA
    Arbeiter = Worksheets("April_2016").Cells(Zeile, 5).Value     'merkt sich den Wert aus Spalte 5, die Mitarbeiter-NR fortlaufend bis zum letzten Eintrag
 
        For Spalte = 6 To MaxTage + 6                                 'alle Spalten in April_2016 durchlaufen bis zum letzten Tag
            Anzahl = 0
            Datum = Worksheets("April_2016").Cells(3, Spalte).Value     'Datum festlegen
 
            For Each ws In Worksheets
                If Mid(ws.Name, 1, 6) = "Schiff" Then
                    For NrDatum = 6 To 23                                       'Datum wird gesucht
                        If Worksheets(ws.Name).Cells(NrDatum, 1).Value = Datum Then
                            For Spalte1 = 5 To 15                                           'die Spalten Fema und Loma
                                Zelle = Worksheets(ws.Name).Cells(NrDatum, Spalte1).Value        'durchläuft alle Zellen und untersucht bzw. merkt sich den Wert
                                If Zelle <> "" Then                                                 'wenn Zelle ungleich 0 bzw. etwas drin steht
                                    Pos = InStr(1, Zelle, "/", 1)                                   '1=textbasierter Vergleich, sucht nach / und merkt sich die Position
                                    If Pos = 0 Then                                                     'wenn Pos=0, also kein / vorhanden
                                        Festmacher = CInt(Zelle)                                          'übernimmt die Arbeiter-NR die in der Zelle steht
                                        Mal = 1                                                           'wird nur einmal eingesetzt, da kein /
                                    Else                                                                'wenn / vorhanden ist
                                        Festmacher = CInt(Mid(Zelle, 1, Pos - 1))                         'Mid gibt Zeichenfolge aus der Zelle zurück; Pos-1 da Arbeiter-NR vor dem / steht
                                        Mal = CInt(Mid(Zelle, Pos + 1))                                   'Pos+1 da Anzahl an Einsätzen an diesem Tag hinter / steht
                                    End If
                                    If Festmacher = Arbeiter Then Anzahl = Anzahl + Mal           'Wenn der Festmacher gleich Arbeiter ist wird Anzahl um Mal erhöht
                                End If
                            Next Spalte1
                        End If
                
                    Next NrDatum
 
                                                                       'geht über zur nächsten Spalte
                End If
            Next ws
  
            Worksheets("April_2016").Cells(Zeile, Spalte).Value = Anzahl    'an der entsprechenden Stelle in der Liste wird die Anzahl eingetragen
        Next Spalte
Next Zeile                                                          'Schleife wird so lange durchlaufen bis MaxArbeit und MaxTage durchlaufen wurde
  
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • 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
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • 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

Thema Datum  Von Nutzer Rating
Antwort
02.05.2016 09:54:31 punikaa
NotSolved
02.05.2016 12:36:09 Gast31268
NotSolved
03.05.2016 08:36:44 punikaa
NotSolved
03.05.2016 08:44:07 punikaa
NotSolved
03.05.2016 08:45:27 punikaa
NotSolved
03.05.2016 10:00:00 Gast43381
NotSolved
03.05.2016 10:48:22 punikaa
NotSolved
03.05.2016 12:59:15 Gast82090
NotSolved
03.05.2016 14:36:21 punikaa
NotSolved
Blau Makro einfügen
03.05.2016 14:54:05 Gast67443
*****
Solved
04.05.2016 14:34:29 punikaa
NotSolved
04.05.2016 16:17:18 Gast99795
NotSolved