Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
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 Werten aus SVERWEIS

MSGBOX mit Werten aus SVERWEIS
09.01.2013 10:09:10
Marc
Hallo zusammen,
ich habe einen SVERWEIS im Tabellenblatt "Kunden" in Spalte C gemacht. In diesem SVERWEIS stehen 1-9999 Werte. Die meisten Zellen sind mit #NV gefüllt aber einige Zellen (oder auch nur eine) haben einen Wert (eine 4stellige Nummer, z.B. 1234).
Ich möchte nun auf Knopfdruck eine MSGBOX ausgeben, in der Folgender Text steht:
Der Kunde hat folgende Nummern: "und dann ALLE Nummern, am Besten mit Komma getrennt"
Geht das?
Lieben Gruß
Marc

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MSGBOX mit Werten aus SVERWEIS
09.01.2013 10:27:02
Klaus
Hi Mark,
mache einen Button der auf dieses Makro verweist:
Option Explicit
Sub MsgBoxAlleSverweisErgebnisse()
'listet alle Sverweis Ergebnisse aus Spalte "C" des Blattes "Kunden"
Dim lRowLast As Long
Dim lRowFirst As Long
Dim rBereich As Range
Dim sListe As String
lRowFirst = 2 'ab Zeile 2, wenn in Zeile 1 Überschriften stehen. Anpassen.
sListe = "Der Kunde hat folgende Nummern:" & Chr(10)   'das chr(10) macht einen Zeilenumbruch
With Sheets("Kunden")
lRowLast = .Cells(Rows.Count, 3).End(xlUp).Row  'letzte Zeile
For Each rBereich In .Range("C" & lRowFirst & ":C" & lRowLast) 'im gesamten Bereich
If Not IsError(rBereich.Value) Then 'wenn NICHT NV drinne steht, zum String dazu
sListe = sListe & rBereich.Value & "," & Chr(10) 'das chr(10) macht einen  _
Zeilenumbruch
Else
'mache nichts
End If
Next 'sListe
End With
MsgBox sListe 'msgbox anzeigen
End Sub
bei 99999 Einträgen wird die Messagebox aber ziemlich groß.
Grüße,
Klaus M.vdT.

Anzeige
AW: MSGBOX mit Werten aus SVERWEIS
09.01.2013 10:35:42
Marc
Hallo Klaus,
genau so!! Wahnsinn!! Eine Schönheitskorrektur vielleicht noch, beim letzten Datensatz wird immer noch ein "," gesetzt. Kann man das noch ändern?
Gruß
Marc

Schöhnheitskorrektur wie gewünscht:
09.01.2013 10:40:29
Klaus
Hi,
statt kompliziert die Kommataregel abzufragen, lösche ich einfach das letzte Zeichen des Strings bevor ich die MsgBox anzeige. Im Code ist die Änderung fett.
Bitte beachte meinen anderen Beitrag über die Grenzwerte der MsgBox!
Option Explicit
Sub MsgBoxAlleSverweisErgebnisse()
'listet alle Sverweis Ergebnisse aus Spalte "C" des Blattes "Kunden"
Dim lRowLast As Long
Dim lRowFirst As Long
Dim rBereich As Range
Dim sListe As String
lRowFirst = 2 'ab Zeile 2, wenn in Zeile 1 Überschriften stehen. Anpassen.
sListe = "Alle Kundennummern:" & Chr(10)   'das chr(10) macht einen Zeilenumbruch
With Sheets("Kunden")
lRowLast = .Cells(Rows.Count, 3).End(xlUp).Row  'letzte Zeile
For Each rBereich In .Range("C" & lRowFirst & ":C" & lRowLast) 'im gesamten Bereich
If Not IsError(rBereich.Value) Then 'wenn NICHT NV drinne steht, zum String dazu
sListe = sListe & rBereich.Value & "," & Chr(10) 'das chr(10) macht einen  _
Zeilenumbruch
Else
'mache nichts
End If
Next 'sListe
End With
sListe = Left(sListe, Len(sListe) - 1)  'letztes Komma wieder raus
MsgBox sListe 'msgbox anzeigen
End Sub

Anzeige
Ops! Korrektur
09.01.2013 10:44:21
Klaus
statt
sListe = Left(sListe, Len(sListe) - 1)
ist es
sListe = Left(sListe, Len(sListe) - 2)
Grund: es müssen 2 Zeichen entfernt werden (das Komma und der Zeilenumbruch - der zählt auch als Zeichen).
Grüße,
Klaus M.vdT.

Grenzwerte MsgBox Zeichen!
09.01.2013 10:37:18
Klaus
Hi Marc,
ich hab mal kurz getestet, in eine MsgBox passen 1022 Charaktere
Sub MsgBoxTest1()
Dim i As Integer
Dim s As String
s = "x"
For i = 1 To 1021
s = s & "x"
Next i
s = s & "_"
MsgBox s
'der _ wird am Ende angezeigt
End Sub
Sub MsgBoxTest2()
Dim i As Integer
Dim s As String
s = "x"
For i = 1 To 1022
s = s & "x"
Next i
s = s & "_"
MsgBox s
'der _ am Ende fehlt
End Sub
Dein String "Der Kunde hat folgende Nummern:" ist 31 Zeichen lang. Unter vollständigem Verzicht auf Zeilenumbrüche und Leerzeichen kannst du noch 198 Nummern je 5 Zeichen (vier + Komma) abbilden, alles danach wird abgeschnitten.
Ich gehe jetzt davon aus, dass dir dieses Limit egal ist und deine "99999" Nummern nur eine Übertreibung waren. Wenn nicht, melde dich nochmal: dann müsste man eine Userform basteln, um dieses Limit auszuhebeln.
Grüße,
Klaus M.vdT.

Anzeige
danke, läuft!! o.t.
09.01.2013 10:55:40
Marc
Hallo Klaus,
vielen Dank!!

Danke für die Rückmeldung! o.t.
09.01.2013 10:56:15
Klaus
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige