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

Dropdown / Mehrfachauswahl

Dropdown / Mehrfachauswahl
09.11.2016 14:12:14
Berndt
Hallo Leute,
habe auf
http://www.excel-inside.de/funktionen-a-tipps/895-dropdown-liste-mit-mehrfachauswahl
ein richtig cooles Makro gefunden, um mehrere Namen über einer Dropdown auszuwählen.
Private Sub Worksheet_Change(ByVal Target As Range)
'** Mehrfachauswahl über DropDown-Liste (Gültigkeitsprüfung)
'** Einfügen im Code-Container des betreffenden Arbeitsblattes
'** Dimensionierung der Variablen
Dim rngDV As Range
Dim wert_old As String
Dim wertnew As String
'** Errorhandling
On Error GoTo Errorhandling
'** Mehrfachauswahl im definierten Bereich (Bsp. D6:D24) durchführen
If Not Application.Intersect(Target, Range("D6:D24")) Is Nothing Then
'**Range definieren
Set rngDV = Target.SpecialCells(xlCellTypeAllValidation)
If rngDV Is Nothing Then GoTo Errorhandling
'** Prüfen, ob eine gültige Zelle ausgewählt wurde und Werte eintragen
If Not Application.Intersect(Target, rngDV) Is Nothing Then
Application.EnableEvents = False
wertnew = Target.Value
Application.Undo
wertold = Target.Value
Target.Value = wertnew
If wertold  "" Then
If wertnew  "" Then
Target.Value = wertold & ", " & wertnew
End If
End If
End If
Application.EnableEvents = True
End If
Errorhandling:
Application.EnableEvents = True
End Sub
Allerdings benötige ich beim Optimieren noch etwas Hilfe.
Klicke ich zweimal auf den selben Namen in der Dropdown, doppelt sich dieser in der Zelle. Das heisst eine Prüfung müsste rein, ob der Name vll. schon ausgewählt wurde.
Und möchte ich z.B. von 3 Namen 2 händig löschen, schiebt das Makro einen Riegel vor und verhindert dies.
Vll. kann mir jmd mit diesen 2 Problemen helfen.
VG Berndt

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

Betreff
Datum
Anwender
Anzeige
AW: Dropdown / Mehrfachauswahl
12.11.2016 19:28:11
GraFri
Hallo
Für händisches löschen kenn ich keine Lösung. Würde alles löschen und neu eingeben.
Doppelte Einträge vermeiden:
Private Sub Worksheet_Change(ByVal Target As Range)
'** Mehrfachauswahl über DropDown-Liste (Gültigkeitsprüfung)
'** Einfügen im Code-Container des betreffenden Arbeitsblattes
'** Dimensionierung der Variablen
Dim rngDV As Range
Dim wert_old As String
Dim wertnew As String
'** Errorhandling
On Error GoTo Errorhandling
'** Mehrfachauswahl im definierten Bereich (Bsp. D6:D24) durchführen
If Not Application.Intersect(Target, Range("D6:D24")) Is Nothing Then
'**Range definieren
Set rngDV = Target.SpecialCells(xlCellTypeAllValidation)
If rngDV Is Nothing Then GoTo Errorhandling
'** Prüfen, ob eine gültige Zelle ausgewählt wurde und Werte eintragen
If Not Application.Intersect(Target, rngDV) Is Nothing Then
Application.EnableEvents = False
wertnew = Target.Value
Application.Undo
wertold = Target.Value
Target.Value = wertnew
If wertold  "" Then
If wertnew  "" Then
If InStr(wertold, wertnew) = 0 Then
Target.Value = wertold & ", " & wertnew
Else
Target.Value = wertold
End If
End If
End If
End If
Application.EnableEvents = True
End If
Errorhandling:
Application.EnableEvents = True
End Sub

mfg, GraFri
Anzeige
AW: Dropdown / Mehrfachauswahl
14.11.2016 09:51:28
Berndt
Vielen Dank. Es funktioniert. freue mich.
doch noch eine Kleinigkeit...
14.11.2016 09:58:21
Berndt
Wie allerding kann ich den fixen Bereich nach unten hin variabel gestalten.
wenn ich folgenden Code verwende funktioniert die Mehrfachauswahl nicht mehr.
Wo liegt der Fehler?
'** Mehrfachauswahl im definierten Bereich (Bsp. D6:D24) durchführen
LZ = Ws.Cells(Ws.Rows.Count, 4).End(xlUp).Row
If Not Application.Intersect(Target, Range("D6:D" & LZ)) Is Nothing Then

VG Berndt
AW: doch noch eine Kleinigkeit...
14.11.2016 18:27:25
GraFri
Hallo
Variabler Bereich:
Private Sub Worksheet_Change(ByVal Target As Range)
'** Mehrfachauswahl über DropDown-Liste (Gültigkeitsprüfung)
'** Einfügen im Code-Container des betreffenden Arbeitsblattes
'** Dimensionierung der Variablen
Dim rngDV As Range
Dim wert_old As String
Dim wertnew As String
Dim LZ As Integer
'** Errorhandling
On Error GoTo Errorhandling
'** Mehrfachauswahl im definierten Bereich (Bsp. D6:D24) durchführen
'If Not Application.Intersect(Target, Range("D6:D24")) Is Nothing Then
With ActiveSheet
LZ = .Cells(.Rows.Count, 4).End(xlUp).Row
End With
If Not Application.Intersect(Target, Range("D6:D" & LZ)) Is Nothing Then
'**Range definieren
Set rngDV = Target.SpecialCells(xlCellTypeAllValidation)
If rngDV Is Nothing Then GoTo Errorhandling
'** Prüfen, ob eine gültige Zelle ausgewählt wurde und Werte eintragen
If Not Application.Intersect(Target, rngDV) Is Nothing Then
Application.EnableEvents = False
wertnew = Target.Value
Application.Undo
wertold = Target.Value
Target.Value = wertnew
If wertold  "" Then
If wertnew  "" Then
If InStr(wertold, wertnew) = 0 Then
Target.Value = wertold & ", " & wertnew
Else
Target.Value = wertold
End If
End If
End If
End If
Application.EnableEvents = True
End If
Errorhandling:
Application.EnableEvents = True
End Sub

mfg, GraFri
Anzeige
Danke
15.11.2016 08:52:46
Berndt
Vielen Vielen Dank. Jetzt haut alles hin.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige