Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1520to1524
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

ComboBox mit Daten füllen

ComboBox mit Daten füllen
01.11.2016 10:26:28
Martin
Hallo,
ich bräuchte mal eure Hilfe.
Ich möchte, wenn ich in einem Tabellenblatt("Muster!") in eine Zelle "D4" klicke, eine ComboBox die sich in einer Userform befindet mit Daten aus einem anderen Tabellenblatt("Orte!")füllt. Die Daten befinden sich im Bereich ("Orte!")A4:C100.Zur Zeit sind noch nicht alle Zellen gefüllt, d.h es kommen irgendwann welche dazu.
In der ComboBox möchte ich dann auf einen dieser Einträge klicken und die Zelle "D4" soll dann mit dem Inhalt gefüllt werden. Leider ist dies über eine Datenprüfung nicht so schön, da die Spalte sehr schmal ist und Vertikale Schrift eingestellt ist.
Ich hoffe es gibt eine Lösung.
Danke schon mal an alle, die sich dem Thema annehmen.
Gruß Martin

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox mit Daten füllen
01.11.2016 10:33:02
Hajo_Zi
Hallo Martin,
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original.
welcher Wert soll in D4 geschrieben werden A4 oder B4 oder C4

AW: ComboBox mit Daten füllen
01.11.2016 11:35:05
Martin
Hallo Hajo,
in D4 soll dann der Wert aus der Combobox stehen der wiederrum aus einer Liste in Tabelle1 steht. Dies soll dann von D4 -AH4 so funzen.
Der Code den ich z.Zt. verwende funzt nicht, irgendwie hat das wohl mit Datum oder so zutun:
Die Combobox wird aufgerufen und füllt sich auch mit Daten.
An folgender Stelle bleibt er stehen.(wird gelb markiert)
Ich schätze mal das meine "Liste" nicht so liegt, wie die in diesem Code.
Range(DropDownZoom.TopLeftCell.Address) = _
Range(DropDownZoom.ListFillRange).Cells(DropDownZoom.ListIndex + 1)
Option Explicit ' Variablendeklaration erforderlich
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim oobElement As OLEObject             ' Variable für das Steuerelement als OLEObject
On Error Resume Next
ActiveSheet.OLEObjects("DropDownZoom").Delete
On Error GoTo 0
If Not Intersect(Target, Range("D3:AH3")) Is Nothing Then
' Bildschirmaktualisierung aus
Application.ScreenUpdating = False
' ComboBox erstellen
Set oobElement = OLEObjects.Add(ClassType:="Forms.ComboBox.1", Left:=0, Top:=0, Width:= _
0, Height:=0)
With oobElement
.Top = ActiveCell.Top          ' Position oben
.Left = ActiveCell.Left        ' Position links
.Width = Range(ActiveCell, ActiveCell.Offset(0, 1)).Width ' Breite
.Height = Range(ActiveCell, ActiveCell.Offset(1, 0)).Height ' Höhe
.ListFillRange = "Liste"        ' Quellbereich, per Name "Liste" definiert
.Name = "DropDownZoom"          ' Name zuweisen
.Object.MatchRequired = True    ' nur vorhandene Einträge
.Object.ListRows = 14           ' Zeilenanzahl der Liste
.Object.Font.Size = 12          ' Schriftgröße
.Object.DropDown                ' DropDown öffnen
.Object.ListIndex = 0           ' 1. Eintrag auswählen
' Umwandeln in ein Datum - nur erforderlich wenn die Auswahl aus Datumswerten  _
besteht
'If IsDate(Range(.ListFillRange).Cells(1)) Then .Object = CStr(CDate(.Object))
.Activate                       ' aktivieren
' erforderlich, da andernfalls der 1. Eintrag nicht in die Zelle eingetragen werden  _
kann,
' weil seine Auswahl kein Change-Ereignis auslöst da er bereits ausgwählt ist
' mit dem Makro "Eintrag" wird der 1. Eintrag in die Zelle geschrieben
Application.OnTime Now + TimeValue("00:00:00"), "Eintrag"
End With
' Bildschirmaktualisierung ein
Application.ScreenUpdating = True
End If
End Sub

Private Sub DropDownZoom_Change()
' Wert aus der Liste wurde gewählt
If DropDownZoom.MatchFound Then
' Umwandeln in ein Datum
'If IsDate(Range(DropDownZoom.ListFillRange).Cells(1)) Then _
DropDownZoom = CStr(CDate(DropDownZoom))
' Wert nicht in Liste vorhanden
Else
' leeren
DropDownZoom = ""
End If
' Wert aus der betreffenden Zelle des Quellbereichs in aktuelle Zelle eintragen
' ListIndex beginnt bei 0, deshalb + 1
Range(DropDownZoom.TopLeftCell.Address) = _
Range(DropDownZoom.ListFillRange).Cells(DropDownZoom.ListIndex + 1)
' aktuelle Zelle wie Ausgangszelle formatieren
Range(DropDownZoom.TopLeftCell.Address).NumberFormat = _
Range(DropDownZoom.ListFillRange).Cells(DropDownZoom.ListIndex + 1).NumberFormat
End Sub

' Makro nur zu Programmierzwecken erforderlich falls die Reaktion auf die Eingabe
' nicht mehr erfolgt
Sub bbbb()
Application.EnableEvents = True
End Sub
Anzeige
AW: ComboBox mit Daten füllen
01.11.2016 11:36:08
Hajo_Zi
ich bin dann raus, da meine Beiträge nicht komplett gelesen werden.
Das wird schon seinen Grund haben.
Gruß Hajo
AW: ComboBox mit Daten füllen
01.11.2016 11:45:32
Martin
Hallo Hajo,
ich hänge mal die Datei an, mit dem Code den ich zur Zeit verwende. Da sanpassen ders Bereichs D3:Ah3 habe ich hinbekommen, aber das mit Format Datum und so und der Liste in welcher die Daten stehen, da verstehe ich nur Bahnhof.
https://www.herber.de/bbs/user/109129.xlsm
Danke
Gruß Martin
AW: ComboBox mit Daten füllen
01.11.2016 13:40:33
snb
Diese Code reicht:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If OLEObjects.Count = 1 Then OLEObjects(1).Visible = False
If Not Intersect(Target, Range("C5:C35")) Is Nothing Then
If OLEObjects.Count = 0 Then OLEObjects.Add("Forms.ComboBox.1").Object.List =[transpose( _
text(date(2016,9,row(1:30)),"dd.mm.yyyy"))]
With OLEObjects(1)
.LinkedCell = Target.Address
.Left = Target.Left
.Width = Target.Width
.Top = Target.Top
.Height = Target.Height
.Visible = True
End With
End If
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige