PDA

Vollständige Version anzeigen : Unterschiedlich langer Msgbox Ausdruck


Lino87
02.07.2014, 10:09
Guten Morgen an alle,

Ich habe eine kleines Problem und zwar würde ich gerne eine variable Anzahl von Daten in einer Msgbox ausgeben.
D.h. auch unterschiedlich viele Zeilen, je nach Bedarf.
Vielleicht kann mir ja der ein oder andere helfen :)

Gruß

Lino

Hajo_Zi
02.07.2014, 10:15
Hallo Lino,

benutze Chr(13) für Zeilenumbruch.

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

EarlFred
02.07.2014, 10:18
Hallo Lino,

Vielleicht kann mir ja der ein oder andere helfen
sicher, gerne. Dafür ist das Forum ja da.

Aber wobei eigentlich?

Grüße
EarlFred

Lino87
02.07.2014, 10:23
Danke für die schnelle Antwort Hajo.
Wie ein Zeilenumbruch funktioniert ist mir schon bewusst.
Ich bräuchte aber unterschiedliche viel je nach anfallender Datenmenge.
Habe ich beispielsweise 5 unterschiedliche Daten bräuchte ich auch 5 Zeilenumbrüche.
Bei 10 eben 10 Zeilenumbrüche usw.

Hajo_Zi
02.07.2014, 10:24
wo ist das Problem, kannst Du Chr(13) nicht 5, 10 mal einfügen?

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

Lino87
02.07.2014, 10:28
Im Prinzip schon. Aber vorher läuft ein Programm ab was eben unterschiedlich viele Daten ausspuckt und ich versuche ja das Programm zu vereinfachen und nicht Mehraufwand zu generieren.

Lino87
02.07.2014, 10:30
Also je nach angefallener Datenmenge soll die Msgbox das von alleine machen

Mc Santa
02.07.2014, 10:36
Hallo,

man müsste dein Programm kenn um hier zu helfen.
Wie werden denn die Daten bisher ausgegeben? Hast du einen Array? Hast du nacheinander ganz viele MsgBoxen? Bisher gar keine Ausgabe? Etwas ganz anderes?

VG

Hajo_Zi
02.07.2014, 10:37
benutze folgenden Code.
If inError1 > 0 Then ' Definierte Namen
StFehlerMeldung = "Einige definierte Namen konnten nicht" & vbLf & "angelegt werden." & vbLf _
& "Es könnte sein Excel4Makro-Funktionen benutzt wurden."
End If
If inError2 > 0 Then ' bedingte Formatierung
If StFehlerMeldung <> "" Then
StFehlerMeldung = StFehlerMeldung & vbLf _
& "Einige bedingte Formatierungen konnten nicht" & vbLf & "zurückgelesen werden."
Else
StFehlerMeldung = "Einige bedingte Formatierungen konnten nicht" & vbLf & "zurückgelesen werden."
End If
End If
If inError3 > 0 Then ' Gültigkeit
If StFehlerMeldung <> "" Then
StFehlerMeldung = StFehlerMeldung & vbLf _
& "Die Gültigkeiten einiger Zellen konnten nicht zurückgelesen werden."
Else
StFehlerMeldung = "Die Gültigkeiten einiger Zellen konnten nicht zurückgelesen werden."
End If
End If
If inError5 > 0 Then ' Bezüge andere Datei
If StFehlerMeldung <> "" Then
StFehlerMeldung = StFehlerMeldung & vbLf _
& "Einige Zellen der Ausgangstabelle" & vbLf & "enthalten Namensdefintionen mit Bezügen" & vbLf & _
"auf andere Arbeitsmappen" & vbLf & "Diese Bezüge können nicht erstellt werden."
Else
StFehlerMeldung = "Einige Zellen der Ausgangstabelle" & vbLf & "enthalten Namensdefintionen mit Bezügen" & vbLf & _
"auf andere Arbeitsmappen" & vbLf & "Diese Bezüge können nicht erstellt werden."
End If
End If
If inError6 > 0 Then ' Formeln
If StFehlerMeldung <> "" Then
StFehlerMeldung = StFehlerMeldung & vbLf _
& "Einige Formeln der Ausgangstabelle" & vbLf & "konnten nicht erstellt werden"
Else
StFehlerMeldung = "Einige Formeln der Ausgangstabelle" & vbLf & "konnten nicht erstellt werden"
End If
End If
If inError7 > 0 Then ' Formeln
If StFehlerMeldung <> "" Then
StFehlerMeldung = StFehlerMeldung & vbLf _
& "Einige bedingte Formatierungen konnten nicht wiederhergestellt werden." & Chr(13) _
& "Die betreffenden Zellen sind in der relevanten Zeile in Spalte M bzw. K aufgelistet."
Else
StFehlerMeldung = "Einige bedingte Formatierungen konnten nicht wiederhergestellt werden."
End If
End If
If StFehlerMeldung <> "" Then
StFehlerMeldung = StFehlerMeldung & vbLf _
& "Die betreffenden Adresszellen wurden in der Ausgangstabelle" & vbLf & "in Spalte A mit Füllfarbe Rot formatiert" & Chr(13) & 184
MsgBox StFehlerMeldung, vbOKOnly + vbExclamation, "Fehlermeldung"
End If


Ich bin dann raus, Du möchtest ja keinen Code posten.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

Lino87
02.07.2014, 10:40
Hi Mc Santa,
habe momentan noch gar keine Ausgabe. Die Daten stehen in einem excelsheet die Range beträgt 4 Spalten und n Zeilen. Das n würde ich gerne als variable Zeilenzahl in die Msgbox mit einbringen.

Lino87
02.07.2014, 10:43
Dankeschön Hajo, werde es probieren.
Ich kann keinen Code posten weil es dazu noch keinen gibt.
Denke das Problem ist auch recht spezifisch und benötigt die vorangehenden Schritte nicht zum Verständnis

EarlFred
02.07.2014, 10:51
Hallo Name?

und benötigt die vorangehenden Schritte nicht zum Verständnis
wie Dir die Vielzahl der Rückfragen klar machen sollte: Ohne zu wissen, wie das, was ausgegeben werden soll, vorliegt, und wie es ausgegeben werden soll, kann Dir keiner helfen.

Die Daten stehen in einem excelsheet die Range beträgt 4 Spalten und n Zeilen.
selbst das ist zu mager. Wie sollen z. B. die Spalten getrennt werden? Wie heißt das Blatt? Wo liegen dort die Angaben?

Also teile uns mit, was Du wie ausgeben willst, ggf. unter Zuhilfenahme einer Mustermappe / Codeauszügen / Beschreibung / Ausdruckstanz / was auch immer

Grüße
EarlFred

Lino87
02.07.2014, 11:16
Also so ungefähr

R J
02.07.2014, 11:31
..n Zeilen? Oh oh! stelle mir gerade Deine Msgbox bei 10000 Zeilen vor...;)

Grundsätzlich würde ich da über eine andere Form der Ausgabe nachdenken...

Lino87
02.07.2014, 11:44
Nee Nee sind so zwischen einer und ca 15 würde ich schätzen

EarlFred
02.07.2014, 12:16
Hallo Name?,

so?

Option Explicit
Sub undsogehts()
Dim fvar As Variant, i As Integer, strM As String
fvar = Intersect(Range("F:G"), ActiveSheet.UsedRange)
With Application
For i = LBound(fvar, 1) To UBound(fvar, 1)
strM = strM & vbLf & Join(.Index(fvar, i, 0), " am: ")
Next i
End With
MsgBox ("Fehlende Mengen für " & Range("E3").Value & strM)
End Sub

Die Lustlosigkeit des Codes entspricht ziemlich genau der der Aufgabenbeschreibung.

Grüße
EarlFred