Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MsgBox mit Bereich auslesen

MsgBox mit Bereich auslesen
23.02.2018 12:41:29
Falcosn
Hallo zusammen,
ich habe Schwierigkeiten mit einem Makro, welches aus einem bestimmten Bereich Begrifflichkeiten auslesen soll. Stehen in den Zellen dieses Bereiches nicht die gewünschten Begrifflichkeiten, soll er sich den Inhalt und die Zelle merken und diese später in einer MsgBox ausweisen. Andernfalls soll eine Information kommen, dass alle Zellen in dem vordefinierten Bereich richtig befüllt sind.
Könnt Ihr mir eventuell weiterhelfen, wo mein Fehler liegt?
Tausend Dank vorab und beste Grüße
Falcosn
Sub Test()
Dim vertikal As Integer
Range("A207").Select
vertikal = Selection.CurrentRegion.Rows.Count
Dim i As Integer
For i = 207 To vertikal + 207
Dim msg As String
msg = ""
Dim Nutzung As Range
'In Spalte "Nutzungsart" prüfen, ob Einheiten richtig benannt sind
For Each Nutzung In ActiveSheet.Range(Cells(207, 5), Cells(207 + vertikal, 5))
If Nutzung.Name  "Flasche" Or Nutzung.Name  "Dose" Or Nutzung.Name  "Kanne" Then
msg = msg & Nutzung.Text & vbCrLf
Else
End If
Next Nutzung
If msg = "" Then
MsgBox "Alle Zellen in der Spalte Nutzungsart sind richtig befüllt", vbInformation + vbOKOnly, " _
Prüferergebnis"
Else
MsgBox "Folgende Zellen sind falsch befüllt:" & vbCrLf & msg, vbInformation + vbOKOnly, "Prü _
fungsergebnis"
End If
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox mit Bereich auslesen
23.02.2018 12:54:27
Rudi
Hallo,
da: Nutzung.Name. .Name gibt den Namen eines Bereichs zurück, nicht den Inhalt.
Gruß
Rudi
AW: MsgBox mit Bereich auslesen
23.02.2018 12:58:31
Falcosn
Hallo Rudi,
vielen Dank, was wäre denn anstelle dessen einzugeben?
Als Fehlermeldung kommt jedoch: "For ohne Next"
Ein "Next" habe ich eingegeben, daher bin ich ratlos!
Vielen Dank und beste Grüße
Falcosn
AW: MsgBox mit Bereich auslesen
23.02.2018 13:07:01
Rainer
Hallo,
da hast du doch den Fehler selber benannt.
Du hast EIN "next", aber ZWEI "for". Es fehlt ein "Next i".
Gruß, Rainer
AW: MsgBox mit Bereich auslesen
23.02.2018 13:16:19
Falcosn
Hallo Rainer,
top, vielen Dank! Und ärgerlich zugleich, die i-Schleife hätte ich auch selber identifizieren können, sorry!
Jetzt werden mir jedoch die Inhalte aller Zellen in der MsgBox ausgewiesen und nicht nur wenn Sie nicht den definierten Begriffen (Dose, Flasche, Kanne) entsprechen.
Und in der MsgBox werden darüber hinaus nicht die Zellen (z.B. "A250") angezeigt.
Weißt du eventuell, wie ich auch noch dieses Ziel erreiche?
Vielen Dank und beste Grüße
Falcosn
Anzeige
AW: MsgBox mit Bereich auslesen
23.02.2018 13:07:56
Rudi
Hallo,
1. .Value. Kannst du dir aber sparen, da Default-Eigenschaft
2. Lösche die For i= ...-Schleife
Damit weißt du aber nur, was falsch ist. Nicht wo.
Gruß
Rudi
AW: MsgBox mit Bereich auslesen
23.02.2018 13:17:47
Falcosn
Hallo Rudi,
korrekt, vielen Dank (!), jetzt weiß ich nur was falsch ist, leider fehlt in der MsgBox die Angabe der Zelle, die mit dem "falschen" Begriff befüllt ist.
Kannst Du mir hier noch weiterhelfen?
Vielen Dank und beste Grüße
Falcosn
AW: MsgBox mit Bereich auslesen
23.02.2018 13:21:00
Rudi
Hallo,
so geht das:
Sub Test()
Dim Nutzung As Range
Dim vertikal As Integer
Dim objMerk As Object, oObj, arrMerk()
Dim i As Integer
vertikal = Range("A207").CurrentRegion.Rows.Count
Set objMerk = CreateObject("scripting.dictionary")
'In Spalte "Nutzungsart" prüfen, ob Einheiten richtig benannt sind
For Each Nutzung In ActiveSheet.Range(Cells(207, 5), Cells(207 + vertikal, 5))
Select Case Nutzung
Case "Flasche", "Dose", "Kanne", ""
'OK
Case Else
objMerk(Nutzung.Address(0, 0)) = Nutzung.Value
End Select
Next Nutzung
i = 0
If objMerk.Count Then
ReDim arrMerk(1 To objMerk.Count)
For Each oObj In objMerk
i = i + 1
arrMerk(i) = oObj & " :" & vbTab & objMerk(oObj)
Next oObj
MsgBox "Folgende Zellen sind falsch befüllt:" & vbCrLf _
& Join(arrMerk, vbLf), vbInformation + vbOKOnly, "Prüfungsergebnis"
Else
MsgBox "Alle Zellen in der Spalte Nutzungsart sind richtig befüllt", vbInformation +  _
vbOKOnly, "Prüferergebnis"
End If
End Sub

Gruß
Rudi
Anzeige
AW: MsgBox mit Bereich auslesen
26.02.2018 09:22:52
Falcosn
Großartig, klappt, vielen Dank Rudi!
Sorry für die verspätete Rückmeldung und guten Start in die Woche

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige