AW: Überprüfen ob Zelle leer
09.02.2022 21:43:27
Edmund
Hallo Thorsten,
ich habe diesen Code eingebaut:
Private Sub ButtonGoToAntrag_Click()
'Überprüfung ob Angaben eingetragen wurden bei Besitzer, Versicherungsort, Wert1914 und Baujahr
With Sheets("Eingabe") 'mit With... musst du das Sheet nur 1x schreiben
If .Range("D8") = "" Or _
.Range("D9") = "" Or _
.Range("D10") = "" Or _
.Range("D11") = "" Then
antwort = MsgBox("Es fehlt mindestens eine Angabe bei:" & vbLf & _
"Besitzer, Versicherungsort, Wert1914 oder Baujahr!" & vbLf & _
"Machen Sie zuerst diese Angaben!", vbExclamation + vbOKOnly, "ImmoGrandeTool")
Else
Sheets("Eingabe").Select
Sheets("Antrag").Visible = True
Sheets("Eingabe").Select
ActiveWindow.SelectedSheets.Visible = False
End If
End With
End Sub
und er läuft !!
Sorry das es nicht dein Code war. Da ich, wie auch beschrieben, nicht der Profi in VBA bin ( ich lerne bei jeder Sache dazu ) war dieser Code für mich verständlich ( war auch der erste der gepostet wurde ). Nun wollte ich nur noch einen Schritt weiter gehen und für jede Abfrage eine spezifische Antwort ausgeben. Grundsätzlich würde die pauschale Antwort auch schon reichen, wollte es nur etwas besser gestalten. Ich kann verstehen, dass für dich als Profi das alles ziemlich langweilig ist, aber, wie gesagt ich lerne jeden Tag ein wenig mehr von VBA.
Ich muss gestehen, dass vieles an deinem Code für mich noch völlig unklar ist. Ich will es verstehen und lernen um nicht immer für was neues hier im Forum um Hilfe fragen. Die Funktion ( Code ) wollte ich dann gegebenenfall, etwas abgeändert für einen weiteren Button verwenden.
Ich könnte deinen Code einfach bei mir rein kopieren und fertig, sicher wird er laufen, aber ich weiß dann immer noch nicht warum, sorry.
Private Sub ButtonAngebotDrucken_Click()
'Überprüfung ob Angaben eingetragen wurden bei Großkunde, Besitzer, Versicherungsort, Wert1914 und Baujahr, Denkmalschutz, Elementar
Dim lloCell As Long, lstrMsg As String
pboErr = False
With Sheets("Eingabe")
For lloCell = 7 To 13
lstrMsg = fcErrCheck(.Range("D" & lloCell).Value, lloCell)
If lstrMsg "" Then
MsgBox lstrMsg, vbExclamation, "ImmoGrandeTool"
End If
Next
End With
If pboErr = False Then
Auswahl_Angebot.Show
End If
End Sub
Mit 7 To 13 meist du sicherlich die Zellen die überprüft werden sollen, oder? Was ist aber wenn eine zu überprüfende Zelle z.B. auf E 18 liegt?
Noch etwas ist für mich unklar. Dein zweiter Teil in dem du schreibst, dass dieser Code in ein allgemeines Modul muss. Was kann ich unter allgemeines Modul verstehen?
"das hier muss alles in ein allgemeines Modul:"
Option Explicit
Public pboErr As Boolean
Function fcErrCheck(ByVal zelltext As String, zeile As Long)
Select Case zeile
Case 7
If zelltext = "Großkunden auswählen:" Then
fcErrCheck = "Großkunde fehlt in D" & zeile
End If
Case 8
If zelltext = "" Then
fcErrCheck = "Besitzer fehlt in D" & zeile
End If
Case 9
If zelltext = "" Then
fcErrCheck = "Ort fehlt in D" & zeile
End If
Case 10
If zelltext = "" Then
fcErrCheck = "Baujahr fehlt in D" & zeile
End If
Case 11
If zelltext = "" Then
fcErrCheck = "Wert 1914 fehlt in D" & zeile
End If
Case 12
If zelltext = "" Then
fcErrCheck = "Denkmalschutz fehlt in D" & zeile
End If
Case 13
If zelltext = "" Then
fcErrCheck = "Elementarschutz fehlt in D" & zeile
End If
End Select
If fcErrCheck "" Then
pboErr = True
End If
End Function
Sorry, für den langen Text, aber das wollte ich nur mal gesagt haben.
Trotzdem Danke an deine Hilfe.
lg Edmund