Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

dynamisches Dropdown/Combobox

dynamisches Dropdown/Combobox
17.10.2005 22:24:49
armin
Hallo Spezialisten!
Ich stehe vor folgendem Problem bzw dieser Aufgabenstellung:
In einer Liste stehen die Namen von Mitarbeitern (Stammdaten). Aus dieser Liste sollen die Werte in eine Combobox geladen werden. Bei jedem Klick wird nun die Combobox entleert, der Name wandert in die nächste freie Zeile (oder noch schöner in eine angeklickte Zelle) einer neuen Spalte, bis die Combobox leer ist. In der Praxis: die Mitarbeiter werden auf diverse Baustellen verteilt, bis alle Mitarbeiter einer bestimmten Baustelle zugewiesen sind. Die Stammdaten der Mitarbeiter müssen für den nächsten Arbeitstag allerdings erhalten bleiben, das heißt, dann ist die Liste wieder voll.
Kann man das mit relativ einfachen Mitteln hinbekommen, oder muß ich mir komplett was anderes ausdenken? Bin nur VBA Laie.
Danke im Voraus für eure Hilfe!
Gruß
armin

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

Betreff
Datum
Anwender
Anzeige
AW: dynamisches Dropdown/Combobox
17.10.2005 23:28:00
Josef
Hallo Armin!
Mal angenommen die Liste mit den Mitarbeitern hat den Namen "liste" und
befindet sich im Tabellenblatt "Liste", dann kopiere diesen Code
in das Tabellenblatt in dem du die Namen eintragen willst!
(Rechtsklick auf Blattregister &gt Code anzeigen &gt in das rechte Fenster einfügen!)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng As Range, arr As Variant, tmp() As Variant, n As Integer, k As Integer

Set rng = Range("A2:F25") '<<<--Bereich der Wirksamkeit anpassen!!!!!!!!!

If Not Intersect(Target, rng) Is Nothing Then
  
  With Application
    .EnableEvents = False
    .Calculation = xlCalculationManual
  End With
  
  On Error Resume Next
  rng.SpecialCells(xlCellTypeAllValidation).Validation.Delete
  On Error GoTo ErrExit
  
  arr = Sheets("Liste").Range("Liste") '<<<--Namen der Tabelle und der Liste anpassen!!!!!!!!!!!
  
  For n = 1 To UBound(arr, 1)
    If Application.CountIf(rng, arr(n, 1)) = 0 Then
      Redim Preserve tmp(k)
      tmp(k) = arr(n, 1)
      k = k + 1
    End If
  Next
  
  With Target(1, 1).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
      xlBetween, Formula1:=Join(tmp, ",")
  End With
  
  If Target.Count = 1 Then Application.SendKeys "%{DOWN}"
  
End If

ErrExit:
With Application
  .EnableEvents = True
  .Calculation = xlCalculationAutomatic
End With

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: dynamisches Dropdown/Combobox
18.10.2005 13:37:42
armin
Hallo Sepp,
Danke für Deine Antwort.
Habe den Code einmal ausprobiert.
Den Namen der Liste mit den Mitarbeitern habe ich "Liste" getauft, das Tabellenblatt mit den Arbeitstagen heißt Arbeitsplan. Die Tabelle in "Liste" heißt nun auch Liste (A1), dann stehen dort Namen von A2 bis A21.Leider passiert gar nichts. Wenn ich den Code richtig verstehe, dann müßte bei einem Klick in eine Zelle des Arbeitsblattes "Arbeitsplan" der Code augelöst werden, oder nicht?. Der Code habe ich "vorschichtshalber" mal in das Blatt Liste und dann in das Blatt Arbeitsplan kopiert, der Listenbereich ist angepaßt.
Was mach ich falsch?
Trotz allem, Besten Dank für Deine Hilfe!!!
Gruß
armin
Anzeige
AW: dynamisches Dropdown/Combobox
18.10.2005 17:06:47
Josef
Hallo Armin!
Der Code gehört in die Tabelle "Arbeitsplan"!
im Blatt "Liste" musst du einen Namen definieren!
Markiere dazu den Bereich mit den Namen der Mitarbeiter ("A2:A21")und
gehe dann auf "EInfügen" &gt "Name" &gt "Definieren".
Im Dialog gibst du bei "Namen in der Arbeitsmappe", "Liste" ein(Ohne Gänsefüsschen!)
Nach Klick auf OK sollte das Makro laufen!
Gruß Sepp
AW: dynamisches Dropdown/Combobox
18.10.2005 18:50:04
armin
Hallo Sepp!
Funzt bestens.
Das war eine idiotensichere Anleitung. Komme mir fast ein bischen dämlich vor.
Vielen, vielen Dank!
Gruß Armin
AW: dynamisches Dropdown/Combobox
19.10.2005 20:20:52
armin
Hallo Sepp,
inzwischen ist noch eine Frage aufgetaucht. Das Einfügen funktioniert wie gewünscht. Allerdings kann ich kein 2. Dropdownmenue einbauen. Mein Wunsch wäre folgender. In den Stammdaten (Blatt "Liste") stehen in verschiedenen Spalten mit den Überschiften Liste1, Liste2 usw verschiedene Einträge (hier: Vorarbeiter, Helfer, Azubis). Im Blatt "Arbeitsplan" sollte es dann verschiedene fest definierte Spalten/bzw Zeilen geben, die die Namen wieder den jeweiligen Überschiften zuordnet. Hier hatte ich auch ein kleines Problem, da ich keine Spaltenüberschrift in Zelle A1 eingeben konnte. (nicht per Definition zugelassen). Habe mir beholfen, das ich die Einträge aus A2 bis A21 per Formel kopiere und in Spalte B einfüge. Dann kann ich eine Spaltenüberschrift einfügen. Kann man übrigens das Dropdown-Menüe in irgend einer Art formatieren, z.B. mit Titelzeile versehen, fablich unterschiedlich darstellen. etc.?
Wäre schön wenn du nochmal helfen kannst.
Danke im Voraus!
Armin
Anzeige
AW: dynamisches Dropdown/Combobox
20.10.2005 00:43:14
Josef
Hallo Armin!
Formatierung geht nicht bei Gültigkeitsdropdown!
Zum Rest eine kleine Beispielmappe.
https://www.herber.de/bbs/user/27657.xls
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: dynamisches Dropdown/Combobox
20.10.2005 18:20:10
armin
Hallo Joseph!
Deine Hilfe per Exceltabelle ist spitzenmäßig. Danke! Die Tabelle funktioniert genau so wie ich es mir vorgestellt habe. Den Rest bekomme ich wahrscheinlich alleine hin.
Gruß
armin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige