Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

MsgBox

Betrifft: MsgBox von: xtian
Geschrieben am: 30.10.2020 08:50:49

Guten morgen,

ich habe 2 Punkte wo ich leider nicht weiterkomme. Ich hoffe es kann mir jemand helfen.
Das Makro prüft, ob die Texte in Spalte 8 nicht länger als 20 Zeichen lang sind.
Problem 1: Sind die Texte nicht länger als 20 Zeichen, soll eine MsgBox mit den Worten
"Alles Ok" kommen.
Problem 2: Weiterführend würde ich gerne auch noch prüfen lassen, ob in den Texten
ein ö oder ä oder ü vorhanden ist.

Sub DateinamePruefen()
    Dim i As Long
    Dim DName As String
    Dim LRow As Long
    LRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 18 To 50 'LRow
       DName = Cells(i, 8)
       If Len(DName) > 20 Then
          Cells(i, 8).Select
        End If
    Next
End Sub
Wie bekomme ich das hin?

Gruß
Christian

Betrifft: AW: MsgBox
von: Nepumuk
Geschrieben am: 30.10.2020 09:05:23

Hallo Christian,

so:

Sub DateinamePruefen()
    Dim i As Long
    Dim LRow As Long
    Dim blnFound As Boolean
    LRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 18 To 50 'LRow
        If Len(Cells(i, 8).Text) > 20 Then
            Cells(i, 8).Select
            blnFound = True
            Exit For
        End If
    Next
    If Not blnFound Then MsgBox "Alles in Ordnung."
End Sub

Gruß
Nepumuk

Betrifft: AW: MsgBox
von: Oberschlumpf
Geschrieben am: 30.10.2020 09:16:40

Hallo Christian,

verwende zusätzlich wegen der Umlaute noch diesen Code, den der 1. Antworter wohl vergessen hat ;-) :
If Instr(LCase(DName),"ä") > 0 Or _
   Instr(LCase(DName),"ö") > 0 Or _
   Instr(LCase(DName),"ü") > 0 Then
       Cells(i, 8).Select
       blnFound = True
       Exit For
End If

Und diesen Code setzt du direkt unterhalb der 1. If-Bedingung.
LCase() "findet" auch großgeschriebene Umlaute. So musst du nicht eine zusätzliche If-Bedingung einbauen.

Hilfts?

Ciao
Thorsten

Betrifft: AW: MsgBox
von: xtian
Geschrieben am: 30.10.2020 09:45:03

Hallo Thorsten,
vielen Dank und ein schönes Wochenende.
Gruß
Christian

Betrifft: AW: MsgBox
von: xtian
Geschrieben am: 30.10.2020 09:44:30

Hallo Nepumuk,
vielen Dank und ein schönes Wochenende.
Gruß
Christian

Betrifft: AW: MsgBox
von: xtian
Geschrieben am: 30.10.2020 10:46:21

Hallo,
ich benötige dann doch noch einmal Hilfe. Makro funktioniert, aber
sobald jetzt der erste Fehler gefunden wurde (z.B. Länge Datei)
bricht das Makro ab. Hat die nächste Zelle z.B. ein ä in der Datei,
wird das nicht entsprechend markiert.
Sub DateinamePruefen()
    Dim i As Long
    Dim LRow As Long
    Dim blnFound As Boolean
    LRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 18 To 50
        If Len(Cells(i, 8).Text) > 20 _
        Or InStr(LCase(Cells(i, 8)), "ü") > 0 Or InStr(LCase(Cells(i, 8)), "ö") > 0 Or InStr( _
LCase(Cells(i, 8)), "ä") > 0 _
        Or InStr(LCase(Cells(i, 8)), "ß") > 0 Or InStr(LCase(Cells(i, 8)), " ") > 0 Then
            Cells(i, 8).Font.ColorIndex = 3
            blnFound = True
            Exit For
        End If
    Next 
    If Not blnFound Then MsgBox "Alles in Ordnung."
End Sub
Gruß
Christian

Betrifft: AW: MsgBox
von: xtian
Geschrieben am: 30.10.2020 10:51:10

Habe es rausgefunden- Exit for muss raus. Trotzdem vielen Dank.

Beiträge aus dem Excel-Forum zum Thema "MsgBox"