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

Forumthread: ComboBox Wert in MsgBox ausgeben

ComboBox Wert in MsgBox ausgeben
Herbert
Hallo zusammen
Mein "kleines" Problem:
Ich habe eine Adressenliste und mit einer ComboBox kann ich einen Namen in der Spalte A auswählen.
Wie muß der Code für den CommandButton lauten, um in einer MsgBox die Info´s zu dem gewählten Namen anzuzeigen(Name, Straße, Ort, etc)?
Danke für Eure Hilfe im Voraus
Herbert
Option Explicit

Private Sub cboName_Change()
Dim rng As Range
Set rng = Columns(1).Find(cboName.Value, lookat:=xlPart, LookIn:=xlValues)
End Sub


Private Sub CommandButton1_Click()
End Sub


Private Sub UserForm_Initialize()
cboName.List = Range("A1").CurrentRegion.Value
cboName.ListIndex = 1
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: ComboBox Wert in MsgBox ausgeben
Uwe
Vielleicht kann diese Programmskizze weiterhelfen:
Private Sub CommandButton1_Click()
Dim Infos As String, rng As Range
Set rng = Columns(1).Find(cboName.Value, lookat:=xlPart, LookIn:=xlValues)
Infos = Cells(rng.Row, 2) '....usw.
MsgBox (Infos)
End Sub</prev>
Guß!

Anzeige
AW: ComboBox Wert in MsgBox ausgeben
07.04.2004 11:31:26
Martin
Hallo Herbert
das geht zum Beispiel so:

Private Sub CommandButton1_Click()
Dim Name$, Strasse$, Ort$, PLZ$
Name = Cells(cboName.ListIndex + 1, 1)
Strasse = Cells(cboName.ListIndex + 1, 2)
Ort = Cells(cboName.ListIndex + 1, 3)
PLZ = Cells(cboName.ListIndex + 1, 4)
MsgBox Name & vbCr & Strasse & vbCr & Ort & vbCr & PLZ
End Sub

unter der Annahme, dass in Spalte A der Name, B die Strasse, C der Ort, D die PLZ steht.
Gruss
Martin
Anzeige
AW: ComboBox Wert in MsgBox ausgeben
Uwe
Hallo, Herbert,
da ich beim Lesen gerade feststelle, dass Du die Liste über .CurrentRegion füllst (Absicht? Hierbei werden in die Listen alle "zusammenhängende" Zeilen und Spalten mit der rechten oberen Ecke A1 eingetragen!), könntest Du auch folgendes Programmstück einsetzen:
Private Sub CommandButton1_Click()
Dim Infos As String, Index as Long
With cboName
Index = .ListIndex
Infos = "Name   : " & .List(Index, 0) + Chr(13)
Infos = Infos + "Ort    : " & .List(Index, 1) + Chr(13)
Infos = Infos + "Strasse: " & .List(Index, 2) + Chr(13)
Infos = Infos + "Haus.Nr: " & .List(Index, 3) + Chr(13)
Infos = Infos + "Zusatz : " & .List(.ListIndex, 4) 'gleichbedeutend mit .List(Index,4)
End With
MsgBox (Infos)
End Sub;
wenn z.B. die Spalten A, B, C, E und F durch die .CurrentRegion erfasst werden.
Gruß!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ComboBox Wert in MsgBox ausgeben


Schritt-für-Schritt-Anleitung

Um den Wert einer ComboBox in einer MsgBox anzuzeigen, folge diesen Schritten:

  1. Erstelle ein UserForm: Öffne Excel und füge ein UserForm hinzu.
  2. Füge eine ComboBox hinzu: Platziere eine ComboBox auf dem UserForm (nennen wir sie cboName).
  3. Füge einen CommandButton hinzu: Platziere einen CommandButton (nennen wir ihn CommandButton1) auf dem UserForm.
  4. Füge den folgenden Code in das UserForm ein:
Private Sub UserForm_Initialize()
    cboName.List = Range("A1").CurrentRegion.Value
    cboName.ListIndex = 1
End Sub

Private Sub CommandButton1_Click()
    Dim Name As String, Strasse As String, Ort As String, PLZ As String
    Name = Cells(cboName.ListIndex + 1, 1)
    Strasse = Cells(cboName.ListIndex + 1, 2)
    Ort = Cells(cboName.ListIndex + 1, 3)
    PLZ = Cells(cboName.ListIndex + 1, 4)
    MsgBox Name & vbCr & Strasse & vbCr & Ort & vbCr & PLZ
End Sub
  1. Starte das UserForm: Klicke auf den CommandButton, um die Infos in einer MsgBox anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: ComboBox zeigt keine Werte an
    Lösung: Stelle sicher, dass die Daten in der angegebenen Range korrekt sind und die ComboBox mit CurrentRegion gefüllt wird.

  • Fehler: MsgBox zeigt leere Werte an
    Lösung: Überprüfe, ob die ListIndex korrekt gesetzt ist und ob die Spalten in der richtigen Reihenfolge sind (Name, Straße, Ort, PLZ).


Alternative Methoden

Eine alternative Methode besteht darin, die ComboBox direkt mit einem Array zu füllen. So kannst Du die Daten dynamisch verwalten. Hier ein Beispiel:

Private Sub UserForm_Initialize()
    Dim i As Long
    Dim Daten() As Variant
    Daten = Range("A1:D" & Cells(Rows.Count, 1).End(xlUp).Row).Value
    For i = LBound(Daten) To UBound(Daten)
        cboName.AddItem Daten(i, 1) ' nur den Namen hinzufügen
    Next i
End Sub

Praktische Beispiele

Angenommen, Du hast folgende Daten in einem Excel-Blatt:

Name Straße Ort PLZ
Max Mustermann Musterstraße 1 Musterstadt 12345
Erika Mustermann Beispielweg 2 Beispielstadt 67890

Wenn Du die ComboBox mit diesen Werten füllst, zeigt die MsgBox nach Auswahl von "Max Mustermann" folgende Ausgabe:

Max Mustermann
Musterstraße 1
Musterstadt
12345

Tipps für Profis

  • Verwende Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Experimentiere mit der Formatierung der MsgBox, um die Informationen besser lesbar zu machen, beispielsweise durch Zeilenumbrüche oder zusätzliche Informationen.
  • Nutze die With-Anweisung, um den Code lesbarer und effizienter zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich die ComboBox mit Daten aus einer anderen Tabelle füllen?
Du kannst die Range entsprechend anpassen, z.B. Sheets("Tabelle2").Range("A1:A10").Value.

2. Was mache ich, wenn die MsgBox nicht angezeigt wird?
Überprüfe, ob der Code im richtigen Ereignis (z.B. CommandButton1_Click) platziert ist und ob die UserForm korrekt geladen wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige