VBA Kürzung
28.07.2023 13:32:46
Pascal
vorneweg es funktioniert.
Ich habe einen Code den ich nur als Plump bezeichnen kann. Er macht was er soll und darüber bin ich heilfroh =). Hat auch eine ganze weile gebraucht bis es soweit war.
Habe keine passende Funktion gefunden oder mir für mein Vorhaben umdenken können.
Jetzt möchte ich natürlich dazu lernen und frage euch deshalb, wie man es richtig angehen könnte.
Ziel:
Wenn in Spalte A etwas eingetragen wurde und die Nachbarzelle in Spalte B leer ist, soll er einen Hinweis herausgeben werden
Also (A1= "rote Rosen", B1="") = Fehlermeldung
Jetzt soll natürlich nur eine Fehlermeldung herausgegeben werden, egal wieviele Fehler drinn sind... muss man sonst ja im schlimmsten Fall 20 Hinweisfenster wegdrücken =D
Sub fehlermeldung()
Dim X_fehler_Stückzahl As Integer
Dim X_fehler_dauer As Integer
X_fehler_Uhrzeit = False
X_fehler_dauer = False
If Worksheets("Tabelle1").Range("I5") > "" And Worksheets("Tabelle1").Range("J5") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I6") > "" And Worksheets("Tabelle1").Range("J6") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I7") > "" And Worksheets("Tabelle1").Range("J7") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I8") > "" And Worksheets("Tabelle1").Range("J8") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I9") > "" And Worksheets("Tabelle1").Range("J9") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I10") > "" And Worksheets("Tabelle1").Range("J10") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I11") > "" And Worksheets("Tabelle1").Range("J11") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I12") > "" And Worksheets("Tabelle1").Range("J12") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I13") > "" And Worksheets("Tabelle1").Range("J13") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I14") > "" And Worksheets("Tabelle1").Range("J14") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I15") > "" And Worksheets("Tabelle1").Range("J15") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I16") > "" And Worksheets("Tabelle1").Range("J16") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I17") > "" And Worksheets("Tabelle1").Range("J17") = "" _
Then X_fehler_Stückzahl = True
If Worksheets("Tabelle1").Range("I23") > "" And Worksheets("Tabelle1").Range("J23") = "" _
Then X_fehler_dauer = True
If Worksheets("Tabelle1").Range("I24") > "" And Worksheets("Tabelle1").Range("J24") = "" _
Then X_fehler_dauer = True
If Worksheets("Tabelle1").Range("I25") > "" And Worksheets("Tabelle1").Range("J25") = "" _
Then X_fehler_dauer = True
If Worksheets("Tabelle1").Range("I26") > "" And Worksheets("Tabelle1").Range("J26") = "" _
Then X_fehler_dauer = True
If X_fehler_Stückzahl = True Then MsgBox "Stückzahl fehlt", vbInforsmation + vbOKOnly, "Bitte eintragen"
If X_fehler_dauer = True Then MsgBox "Dauer fehlt", vbInforsmation + vbOKOnly, "Bitte eintragen"
End Sub
Eine einfach OR verkettung habe ich nicht hinbekommen.
Die Variablen X_fehler_Stückzahl und X_fehler_dauer haben erst funktioniert, als sie als integer deklariert war. Warum? true/false schreit doch nach boolian oder?
Auch mein beschränktes Verständniss von IF, Elseif, Else und End If ist hart auf die Probe gestellet worden siehe Bild
Die Variablen setze ich anfangs auf false, damit beim neustart, resetten, wiederherstellen, was auch immer sicher bin keine Falschpositivantwort zu bekommen. Ist das unnötig?
Vielen lieben Dank und ein schönes Wochenende allen.
Pascal