Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Array Ergbnisse in einer einzigen MsgBox anzeigen

Forumthread: Array Ergbnisse in einer einzigen MsgBox anzeigen

Array Ergbnisse in einer einzigen MsgBox anzeigen
10.12.2025 14:59:43
Chris
Hallo Forum,

mit folgendem Makro durchsuche ich ein Array nach einem bestimmten Wert, der mehrfach vorkommen kann.
Jedes gefundene Ergebnis soll in einer einzigen Msgbox untereinander angezeigt werden. Wie löse ich dies?

Chris
Sub Bereich()


Dim ws As Worksheet
Dim rng As Range
Dim arrDaten As Variant
Dim gesuchterWert As Variant
Dim zeilen As Long, spalten As Long
Dim ausgabe As String

Set ws = ThisWorkbook.Sheets("Test")
Set rng = ws.Range("A8:C36")

arrDaten = rng.Value
gesuchterWert = 10

For zeilen = LBound(arrDaten, 1) To UBound(arrDaten, 1) ' Zeilen
For spalten = LBound(arrDaten, 2) To UBound(arrDaten, 2) ' Spalten (1 bis 3 in diesem Fall)

If arrDaten(zeilen, spalten) = gesuchterWert Then

ausgabeText = "Array-Ergebnisse" & vbCrLf & vbCrLf
ausgabeText = ausgabeText & arrDaten(zeilen, spalten-2) & vbCrLf

MsgBox ausgabeText
End If

Next spalten
Next zeilen


End Sub
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array Ergbnisse in einer einzigen MsgBox anzeigen
10.12.2025 15:02:52
Onur
Im Prinzip hast du es ja fast. Du musst die MsgBox erst zeigen, wenn die Schleife(n) fertig.
AW: Array Ergbnisse in einer einzigen MsgBox anzeigen
10.12.2025 15:11:31
Alwin Weisangler
Hallo,

du musst in der Schleife sammeln:
beispielhaft so:


ausgabeText =ausgabeText & arrDaten(zeilen, spalten) & & vbCrLf & vbCrLf


msgbox nach der Schleife: MsgBox ausgabeText

Gruß Uwe
Anzeige
AW: Array Ergbnisse in einer einzigen MsgBox anzeigen
10.12.2025 15:12:01
daniel
Hi
was genau soll den ausgegeben werden, wenn der Wert gefunden wurde?
Gruß Daniel
AW: Array Ergbnisse in einer einzigen MsgBox anzeigen
10.12.2025 15:20:35
UweD
Hallo

1)
Kannst du mal Musterdatei hochladen

Du durchsuchst Spalte A bis C

Wenn du den Wert 10 gefunden hast, willst du Inhalt von 2 Spalten vorher zurückgeben

A=1
-2... da kommt ein Fehler

Oder sehe ich das falsch?

2)
Die Msgbox gehört dann hinter die Schleifen


3) wenn man es ganz genau nimmt ist noch ein Fehler bei der Dim ... das muss heißen Dim ausgabeText As String


LG UweD
Anzeige
AW: Array Ergbnisse in einer einzigen MsgBox anzeigen
10.12.2025 16:20:46
UweD
Hallo



eine Schleife reicht dann

Sub Bereich()


Dim ws As Worksheet
Dim rng As Range
Dim arrDaten As Variant
Dim gesuchterWert As Variant
Dim zeilen As Long, spalten As Long
Dim ausgabetext As String

Set ws = ThisWorkbook.Sheets("Tabelle1")
Set rng = ws.Range("A8:C36")

arrDaten = rng.Value
gesuchterWert = 10

ausgabetext = "Array-Ergebnisse" & vbCrLf & vbCrLf

For zeilen = LBound(arrDaten, 1) To UBound(arrDaten, 1)

If arrDaten(zeilen, 3) = gesuchterWert Then

ausgabetext = ausgabetext & arrDaten(zeilen, 1) & vbCrLf

End If

Next zeilen

MsgBox ausgabetext

End Sub


LG UweD
Anzeige
AW: Array Ergbnisse in einer einzigen MsgBox anzeigen
10.12.2025 16:32:51
daniel
Hi
wenn die gesuchten Werte alle in einer Spalte stehen, dann ist die Schleife über die Spalten unnötig.
weil die Datenmenge vermutlich gering ist würde ich hier noch nicht mal über ein Array gehen:

dim Zelle as range

dim txt as String
dim gesuchterWert as Variant

gesuchterWert = 10
for each Zelle in Sheets("Tabelle1").range("C8:C36").cells
if Zelle.Value = gesuchterWert then txt = txt & vblf & Zelle.offset(0, -2).value
next
msgbox "Ergebis für " & gesuchterWert & ":" & txt


Gruß Daniel
Anzeige
AW: Array Ergbnisse in einer einzigen MsgBox anzeigen
10.12.2025 16:43:50
Chris
Ja, die Daten sind gering. Danke ! LG
AW: Array Ergbnisse in einer einzigen MsgBox anzeigen
10.12.2025 17:12:47
Alwin Weisangler
Hallo Chris,

das ist für deine Zwecke so völlig ausreichend:


Sub TrefferAusgeben()
Dim i&, tmp$, arr(): arr = Tabelle1.UsedRange
For i = 1 To UBound(arr)
If arr(i, 3) = 10 Then tmp = tmp & arr(i, 1) & vbCrLf & vbCrLf
Next i
MsgBox tmp
End Sub

Das mag jetzt auf dich sehr rudimentär wirken, aber die Spalte C ist leer und da braucht es nicht mal ein Zeilenoffset fürs laden in ein Array.

Gruß Uwe
Anzeige
AW: ... noch ein rudi ...
10.12.2025 18:13:09
schauan
... mentärer code. Funktioniert aber erst ab Excel 2021 :-(

Sub WasDenn()
MsgBox Join(WorksheetFunction.Transpose(Application.Evaluate("FILTER(A8:A36, C8:C36=10)")), vbLf)
End Sub
AW: Array Ergbnisse in einer einzigen MsgBox anzeigen
10.12.2025 15:44:56
snb
Warum kein Autofilter ?

ThisWorkbook.Sheets("Test").Range("A8:C36").autofilter 1,16
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige