Anzeige
Archiv - Navigation
1744to1748
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

Listenfeld

Listenfeld
11.03.2020 06:26:46
Strijbos
Guten Morgen zusammen.
Ich habe noch nie mit Listenfeldern gearbeitet die über VBA Erzeugt wird.
Da ich Probleme mit dem normalen Listenfeld in Excel habe (Die Daten werden immer neu geschrieben)
Benötige ich ein Listenfeld via VBA. Ich habe eine Tabelle womit ich eine andere Datenbank Fülle
Aus der Datenbank hole ich mir auch Automatisch beim Starten 2 Spalten wo ich Name und E-Mail habe.
Diese Excel Tabelle dient nur dafür die Datenbank zu füllen.
Meine Tabelle 1 werden Daten eingegeben die ich beim Speichern in eine andere Tabelle schreibe.
Ich möchte nun die beiden Felder die unter C7 und C8 liegen füllen
C7 ist E-Mail und C8 der Name Die sollen aus dem Tabelle Blatt Namen als Listenfeld kommen
Wobei die Spalte a der Name ist und Spalte B die E-Mail Adresse ist.
Es muss aber immer noch möglich sein selbst was in die Felder einzutragen.
Eine Beispiel habe ich im Upload (https://www.herber.de/bbs/user/135760.xlsm)
Wenn mir jemand helfen könnte wäre ich Euch dankbar

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listenfeld
11.03.2020 09:42:40
Oberschlumpf
Hi,
meinst du wirklich, dass in Zelle C2 ein Listenfeld mit den Namen aus Tabelle Namen (Spalte A) eingefügt werden soll?
(Listenfeld benötigt auch im inaktiven Zustand (es wird nix ausgewählt) für Höhe + Breite den ganzen Platz für alle verfügbaren Namen)
Oder meinst du ein Kombinationsfeld, welches nach Anklicken nach unten aufklappt, dir die verfügbaren Namen anzeigt, und nachdem du einen Namen ausgewählt hast, dass dann das Kombinationsfeld wieder zuklappt?
(Kombinationsfeld benötigt im inaktiven Zustand für Höhe nur Platz für eine Zeile)
Ciao
Thorsten
Ciao
Thorsten
Anzeige
AW: Listenfeld
11.03.2020 09:49:43
Strijbos
Ich abe eine Tabelle die heist Namen
Spalte a ist der Name Spalte B ist die E-Mail Adresse.
Aif der Ersten Tabelle gibt es die Beiden Zellen C7 und C8
Ich möchte nun die Möglichkeit haben, das ich über ein Listenfeld die Felder mit einem
Namen und E-Mail füllen kann oder ein neuen Namen selber eintragen kann.
Da ich die Namenslist immer beim Starten neu Lade , brauch das Listenfeld nicht mit neuen Daten gefüllt werden.
Zu deiner Frage, Es soll ein Aufklapp Feld oder ein Fenster sein was über ein Butten geöffnet wird
beides wäre möglich
AW: Listenfeld
11.03.2020 11:16:55
Oberschlumpf
hier:
https://www.herber.de/bbs/user/135768.xlsm
klick in die Zelle C2, und guck, was passiert
du schreibst:
Es muss aber immer noch möglich sein selbst was in die Felder einzutragen.
Ja, die Möglichkeit besteht weiterhin.
Aber was soll dann passieren?
Soll nach Eintrag eines neuen Namens + Mailadresse diese in die Tabelle "Namen" übertragen werden, und bei erneuter Anzeige der Combobox auch der neue Name/Mail enthalten sein?
Wenn ja, dann erstell mit Upload meiner Datei als Grundlage bitte einen neuen Beitrag, da das ja eine neue Frage von dir wäre.
Hilft meine Datei?
Anzeige
AW: Listenfeld
11.03.2020 11:52:14
Strijbos
Erstmal Danke Super Geil
Fast so wie ich mir das gedacht habe
1. ist es Möglich in dem Feld was angezeigt wird beides anzeigen zu lassen Name und E-Mail Adresse ?
2. Muss ich bei der Programmierung was beachten ?
Echt Klasse
AW: Listenfeld
11.03.2020 13:04:39
Strijbos
Hallo Oberschlumpf
Ich habe das jetzt meiner Tabelle angepast.
Bekomme aber einen Fehler Laufzeitfehler 438
Option Explicit
Sub sbCmbToFormular(ByVal ziel As Range)
Dim liIdx As Integer, lboOK As Boolean
With Sheets("Eingabe").cmdNamen
.Visible = True
.Width = 100
'        .Width = Sheets("Namen").Range("A1").Width
'        .Width = ziel.Width
.Height = ziel.Height + 5
.Top = ziel.Top
.Left = ziel.Offset(0, 1).Left
For liIdx = 0 To .ListCount - 1
If .List(liIdx) = ziel.Text Then
.Text = ziel.Text
lboOK = True
Exit For
End If
Next
If lboOK = False Then
.ListIndex = 0
End If
End With
End Sub

Sub sbFillCmb()
Dim lloRow As Long
-------->>>>>>> Wird angemeckert       With Sheets("Eingabe").cmdNamen
.Clear
.AddItem
For lloRow = 1 To Sheets("Namen").Cells(Rows.Count, 1).End(xlUp).Row
.AddItem Sheets("Namen").Range("A" & lloRow).Value
Next
End With
End Sub

Sub sbCmbNameMail(ByVal namemail As String)
Dim lloRow As Long
With Sheets("Eingabe")
If namemail = "" Then
.Range("C7:C8").Value = ""
Else
.Range("C8").Value = namemail '.cmdNamen.Text
For lloRow = 1 To Sheets("Namen").Cells(Rows.Count, 1).End(xlUp).Row
If Sheets("Namen").Range("A" & lloRow).Value = namemail Then
.Range("C7").Value = Sheets("Namen").Range("B" & lloRow).Value
End If
Next
.cmdNamen.Visible = False
End If
.Range("A1").Select
End With
End Sub

Anzeige
AW: Listenfeld
11.03.2020 13:21:16
Oberschlumpf
ähh?!!
in meiner/deiner Bsp-Datei funktioniert mein Code doch.
Wenn deine Originaldatei vom Aufbau (andere Zeilen/Spalten verwendet) anders aussieht als die von dir gezeigte Bsp-Datei, weiß ich leider auch nicht weiter, weil ich ja den Originalaufbau nicht kenne.
AW: Listenfeld
12.03.2020 06:50:51
Strijbos
Ehrlich Super Geil Oberschlumpf
Alles Suppi Danke dir
Habe leider gerade noch ein anderes Problem gefunden.
Mache ein neues Ticket auf
Möchte aus einer geschlossenen Datei eine auf einem LW abgelegte Datei öffnen
Und die Spalte ab koppieren. und in das Dokument eifügen. Habe dort aber wohl ein Zeitliches Problem, das geht nur einmal von 10 Versuchen
Aber dir erstmal Danke Geil gemacht , wieder was gelehrnt
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige