Thema Datum  Von Nutzer Rating
Antwort
Rot Excel: Ausgeführter VBA-Code liefert nicht immer das gleiche Ergebnis
02.01.2017 13:18:53 Sandra
Solved
02.01.2017 14:59:07 Onur
NotSolved
03.01.2017 09:10:55 Sandra
NotSolved
02.01.2017 15:08:56 Onur
NotSolved
03.01.2017 09:12:31 Sandra
NotSolved
03.01.2017 11:49:47 Onur
NotSolved

Ansicht des Beitrags:
Von:
Sandra
Datum:
02.01.2017 13:18:53
Views:
1352
Rating: Antwort:
 Nein
Thema:
Excel: Ausgeführter VBA-Code liefert nicht immer das gleiche Ergebnis

Hallo liebe Community,

ich bin langsam am verzweifen, denn ich kann keinen Fehler finden und ich weiß auch sonst nicht, woran es noch liegen könnte. Ich hoffe Ihr könnt mir evtl. weiterhelfen. Ich beschreibe euch mal kurz mein Problem:

Also es gibt einen Kalender in dem Logopäden ihre Termine eintragen können. Am Ende des Monats exportieren sie aus diesem Kalender eine CSV-Datei. Diese lese ich dann mithilfe einer Excel-Datei und vorhandenem VBA-Code ein und gebe unterschiedliche Ergebnisse über ein Formular aus, wie z.B. stattgefundene, abgesagte und ausgefallene Therapien , Teamsitzungen, Orgazeiten usw. Mein Problem hierbei ist jetzt, dass manchmal die Teamtage ausgegeben werden und manchmal nicht, obwohl nichts an den Eingaben verändert wurde. Ein Laufzeitfehler wird auch nicht ausgegeben. Das Feld in welches die Stunden für Teamsitzungen eingetragen werden soll, bleibt einfach leer. Wenn ich die Abfrage ein zweites Mal durchführe, werden die Stunden jedoch meist eingetragen. 

Hier mal ein Codebeispiel für den Monat Januar:

'Berechnung der Arbeitszeiten aus Januar
Sub Januar()

Dim Therapeut As String
Dim i As Integer

Therapeut = ComboBox1.Text

Tabelle2.Cells(2, 1) = ""
Tabelle2.Range("D5:T28") = ""

 
Tabelle2.Cells(2, 1) = Therapeut 'Schreibt den Namen des Therapeuten in Zelle A2

'Stattgefundene Behandlungen separat ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Behandlung beendet" Then
       Tabelle2.Cells(5, 4) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(5, 4)
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Behandlung beendet" Then
       Tabelle2.Cells(6, 4) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(6, 4)
    End If
Next i
'Ausgefallene Behandlungen separat ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Ausfall" Then
       Tabelle2.Cells(5, 5) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(5, 5)
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Ausfall" Then
       Tabelle2.Cells(6, 5) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(6, 5)
    End If
Next i
'Abgesagte Behandlungen separat ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Abgesagt" Then
       Tabelle2.Cells(5, 6) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(5, 6)
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Abgesagt" Then
       Tabelle2.Cells(6, 6) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(6, 6)
    End If
Next i
'Vor-/Nachbereitungszeiten separat ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Vor-, Nachbereitungszeit (Therapeut)" Then
       Tabelle2.Cells(5, 7) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(5, 7)
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Vor-, Nachbereitungszeit (Therapeut)" Then
       Tabelle2.Cells(6, 7) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(6, 7)
    End If
Next i
'Urlaubstage ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Urlaub (Therapeut)" Then
       Tabelle2.Cells(5, 8) = Tabelle2.Cells(5, 8) + 1
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Urlaub (Therapeut)" Then
       Tabelle2.Cells(6, 8) = Tabelle2.Cells(6, 8) + 1
    End If
Next i
'Krankheitstage ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Krank (Therapeut)" Then
       Tabelle2.Cells(5, 9) = Tabelle2.Cells(5, 9) + 1
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Krank (Therapeut)" Then
       Tabelle2.Cells(6, 9) = Tabelle2.Cells(6, 9) + 1
    End If
Next i
'Fortbildungstage ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Fortbildung (Therapeut)" Then
       Tabelle2.Cells(5, 10) = Tabelle2.Cells(5, 10) + 1
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Fortbildung (Therapeut)" Then
       Tabelle2.Cells(6, 10) = Tabelle2.Cells(6, 10) + 1
    End If
Next i
'Orgazeit ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Orgazeit (Therapeut)" Then
       Tabelle2.Cells(5, 11) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(5, 11)
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Orgazeit (Therapeut)" Then
       Tabelle2.Cells(6, 11) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(6, 11)
    End If
Next i
'Fehlerhafte Eingabe (Noch nicht erschienen)
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Noch nicht erschienen" Then
       Tabelle2.Cells(5, 12) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(5, 12)
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Noch nicht erschienen" Then
       Tabelle2.Cells(6, 12) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(6, 12)
    End If
Next i
'Wegezeit ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Wegezeit" Then
       Tabelle2.Cells(5, 13) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(5, 13)
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Wegezeit" Then
       Tabelle2.Cells(6, 13) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(6, 13)
    End If
Next i
'Supervision ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Supervision (Therapeut)" Then
       Tabelle2.Cells(5, 14) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(5, 14)
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Supervision (Therapeut)" Then
       Tabelle2.Cells(6, 14) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(6, 14)
    End If
Next i
'Teamsitzung ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Teamsitzung" Then
       Tabelle2.Cells(5, 19) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(5, 19)
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Teamsitzung" Then
       Tabelle2.Cells(6, 19) = Tabelle4.Cells(i, 5) + Tabelle2.Cells(6, 19)
    End If
Next i
'Hausbesuche Anzahl ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Behandlung beendet" And Mid(Tabelle4.Cells(i, 10), 1, 2) = "HB" Then
       Tabelle2.Cells(5, 15) = Tabelle2.Cells(5, 15) + 1
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Behandlung beendet" And Mid(Tabelle4.Cells(i, 10), 1, 2) = "HB" Then
       Tabelle2.Cells(6, 15) = Tabelle2.Cells(6, 15) + 1
    End If
Next i
'Hausbesuche KM-Angaben ausgeben
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Behandlung beendet" And Mid(Tabelle4.Cells(i, 10), 1, 2) = "HB" Then
       Tabelle2.Cells(5, 17) = Tabelle4.Cells(i, 12) + Tabelle2.Cells(5, 17)
    End If
Next i
For i = 1 To Tabelle4.Cells(Rows.Count, "G").End(xlUp).Row
    If Tabelle4.Cells(i, "G") = Therapeut And Mid(Tabelle4.Cells(i, 2), 3, 4) = ".01." And Tabelle4.Cells(i, "I") = "Leistungsbereich xx" And Tabelle4.Cells(i, "H") = "Behandlung beendet" And Mid(Tabelle4.Cells(i, 10), 1, 2) = "HB" Then
       Tabelle2.Cells(6, 17) = Tabelle4.Cells(i, 12) + Tabelle2.Cells(6, 17)
    End If
Next i

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
Rot Excel: Ausgeführter VBA-Code liefert nicht immer das gleiche Ergebnis
02.01.2017 13:18:53 Sandra
Solved
02.01.2017 14:59:07 Onur
NotSolved
03.01.2017 09:10:55 Sandra
NotSolved
02.01.2017 15:08:56 Onur
NotSolved
03.01.2017 09:12:31 Sandra
NotSolved
03.01.2017 11:49:47 Onur
NotSolved