If Funktion mit 2 Kriterien und For Block

  • Excel

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Sam85.

    If Funktion mit 2 Kriterien und For Block

    Guten Abend,

    ich habe eine Frage, ich würde gerne in den oberen Code, den unteren mit einbauen und das direkt nach der ersten Abfrage. Nur weiß ich nicht, wie ich das tuen soll? Kann mir jemand Rat erteilen? ^^
    Freue mich über Feedback.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub btn_year_Click()
    2. TB = tb_year.Text & " - " & cb_monat.Text
    3. If cb_monat.Text = "" Then
    4. MsgBox ("Es wurde kein Monat ausgewählt."), vbExclamation
    5. Else
    6. With ThisWorkbook
    7. .Worksheets.Add after:=Worksheets("Menü")
    8. .ActiveSheet.Name = tb_year.Text & " - " & cb_monat.Text
    9. .ActiveSheet.Range("A1") = tb_year.Text
    10. .ActiveSheet.Range("B1") = cb_monat.Text
    11. With Range("A1")
    12. .Font.Bold = True
    13. .HorizontalAlignment = xlCenter
    14. .VerticalAlignment = xlCenter
    15. End With
    16. With Range("B1")
    17. .Font.Bold = True
    18. .HorizontalAlignment = xlCenter
    19. .VerticalAlignment = xlCenter
    20. End With
    21. End With
    22. datazeit = frmZeit.lb_zeit.ListCount - 1
    23. Set datacells = Range("A5", Range("A5").Offset(0, datazeit))
    24. frmZeit.lb_zeit.RowSource = "dt_Zeit[Uhrzeit]"
    25. For i = 0 To frmZeit.lb_zeit.ListCount - 1
    26. datacells(i, 1) = Format(frmZeit.lb_zeit.List(i, 0), "hh:mm")
    27. Next i
    28. datatherapeut = frmTherapeut.lb_therapeut.ListCount - 1
    29. Set datacells = Range("C3", Range("C3").Offset(0, datatherapeut))
    30. frmTherapeut.lb_therapeut.RowSource = "dt_Therapeut[Nachname_Therapeut]"
    31. For i = 0 To frmTherapeut.lb_therapeut.ListCount - 1
    32. datacells(1, i) = frmTherapeut.lb_therapeut.List(i, 0)
    33. Next i
    34. End If
    35. End Sub



    VB.NET-Quellcode

    1. For i = 1 To Worksheets.Count
    2. If Worksheets(i).Name = TB Then
    3. MsgBox ("Der Kalender exestiert bereits."), vbExclamation
    4. End If
    5. Next i

    Sam85 schrieb:

    einbauen und das direkt nach der ersten Abfrage

    In welcher Codezeile ist bei Dir die "erste Abfrage" und was hintert Dich daran, den Code dort einzubauen? Fehlt Dir nach der MsgBox einfach nur das Exit Sub, um bei Auftreten eines Fehlers die ganze Geschichte abzubrechen?
    Genau wie bei der ersten If-Geschichte. Mach einfach

    VB.NET-Quellcode

    1. If cb_monat.Text = "" Then
    2. MsgBox ("Es wurde kein Monat ausgewählt."), vbExclamation[/quote]
    3. Exit Sub
    4. End If

    Dann kannst Du den Rest ohne das Else-End If-Konstrukt machen.
    btw: "Der Kalender existiert bereits." existiert kommt von Existenz.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed
    :) Danke für das Beseitigen des Fehlerteufels. :thumbsup:

    Die erste Abfrage beginnt in Zeile 5. Mich hindert daran, dass ich nicht weiß wie man das FOR / NEXT in die zweite IF Abfrage bekommt. Das mit dem Exit Sub wollte ich einfach durch "nichts" ersetzen bzw. die vbExclamation reicht als Hinweis.

    Ich kann also einfach die erste IF-Klausel abschließen und eine neue beginnen? Dachte es kommt die zweite Abfrage in eine Elseif funktion aber was mach ich dann mit dem FOR / NEXT?

    Sachverhalt:
    Prüfen ob Wert in ComboBox ausgewählt wurde, anschließend ob das Blatt bereits existiert dann Code ausführen oder nicht.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Sam85“ ()

    Probiere es einmal so:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub btn_year_Click()
    2. TB = tb_year.Text & " - " & cb_monat.Text
    3. If cb_monat.Text = "" Then
    4. MsgBox ("Es wurde kein Monat ausgewählt."), vbExclamation
    5. Exit Sub
    6. End If
    7. For i = 1 To Worksheets.Count
    8. If Worksheets(i).Name = TB Then
    9. MsgBox ("Der Kalender exestiert bereits."), vbExclamation
    10. Exit Sub
    11. End If
    12. Next i
    13. '
    14. With ThisWorkbook
    15. .Worksheets.Add after:=Worksheets("Menü")
    16. .ActiveSheet.Name = tb_year.Text & " - " & cb_monat.Text
    17. .ActiveSheet.Range("A1") = tb_year.Text
    18. .ActiveSheet.Range("B1") = cb_monat.Text
    19. With Range("A1")
    20. .Font.Bold = True
    21. .HorizontalAlignment = xlCenter
    22. .VerticalAlignment = xlCenter
    23. End With
    24. With Range("B1")
    25. .Font.Bold = True
    26. .HorizontalAlignment = xlCenter
    27. .VerticalAlignment = xlCenter
    28. End With
    29. End With
    30. datazeit = frmZeit.lb_zeit.ListCount - 1
    31. Set datacells = Range("A5", Range("A5").Offset(0, datazeit))
    32. frmZeit.lb_zeit.RowSource = "dt_Zeit[Uhrzeit]"
    33. For i = 0 To frmZeit.lb_zeit.ListCount - 1
    34. datacells(i, 1) = Format(frmZeit.lb_zeit.List(i, 0), "hh:mm")
    35. Next i
    36. datatherapeut = frmTherapeut.lb_therapeut.ListCount - 1
    37. Set datacells = Range("C3", Range("C3").Offset(0, datatherapeut))
    38. frmTherapeut.lb_therapeut.RowSource = "dt_Therapeut[Nachname_Therapeut]"
    39. For i = 0 To frmTherapeut.lb_therapeut.ListCount - 1
    40. datacells(1, i) = frmTherapeut.lb_therapeut.List(i, 0)
    41. Next i
    42. '
    43. End Sub