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

Pulldown in mehreren Spalten

Pulldown in mehreren Spalten
15.11.2008 18:33:43
Wolfgang
Hallo,
der untenstehende Code bewirkt bei Anwählen eines jeweilien Tabellenblattes, dass in I2:I6000 ein Pulldown erscheint. Wäre denkbar, dass der Code ausgeweitet wird um zwei weitere Pulldown in Spalte K2:K6000 mit "Ja" "Nein" und in Spalte M2:M6000 mit "Date". Ich habe schon zig verschiedene Versionen versucht, komme aber auf keinen grünen Zweig. Danke schon jetzt für die Rückmeldungen.
Herzliche Grüße
Wolfgang
'erstellt Pulldownmenü in jeder Tabelle

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim strList As String
Dim rng As Range
If Not Sh.Name = "Start" And Not Sh.Name = "Gesamt" Then
Set rng = Sh.Range("I2:I6000")
rng.Validation.Delete
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, rng) Is Nothing Then
strList = "Zahl1 " & Chr(44) & "Zahl2 " & Chr(44) & "Zahl3 " & Chr(44) & "Zahl4 " & Chr(44)  _
_
& "Zahl5 " & Chr(44)
With Target.Validation
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:=strList
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Auweia"
.InputMessage = ""
.ErrorMessage = _
"Hier können Sie bitte nur das Listenfeld mit den Vorgaben nutzen."
.ShowInput = True
.ShowError = True
End With
End If
Set rng = Nothing
End If
End Sub


2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pulldown in mehreren Spalten
15.11.2008 21:32:00
Franc
Am einfachsten so
Damit nicht alles doppelt/dreifach schreiben mußt eine Liste if Abfrage ob es im Bereich liegt und je nachdem die strList und die rng an die entsüprechende Variable übergeben. (man könnt auch entsprechend dem Fehlertext über ne Variable übergeben, falls da jeweils was anderes stehen soll. Wenn nicht, einfach so lassen.
Am Ende ne Abfrage ob was in der strList steht, wenn nicht dann Makro verlassen. (sonst gibts ne Fehlermeldung)
Am Anfang ist sie leer und wenn die ausgewählte Zelle nicht in der rng liegt, dann bleibt sie auch leer.
Kann man dann beliebig erweitern mit anderen Range und anderen Auswahlmenüs..
Das "& Chr(44) &" bedeutet, das eine neue Zeile beginnt.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim strList As String
Dim rng As Range
If Not Sh.Name = "Start" And Not Sh.Name = "Gesamt" Then
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("I2:I6000")) Is Nothing Then
Set rng = Sh.Range("I2:I6000")
strList = "Zahl1 " & Chr(44) & "Zahl2 " & Chr(44) & "Zahl3 " & Chr(44) & _
"Zahl4 " & Chr(44) & "Zahl5 " & Chr(44)
End If
If Not Intersect(Target, Range("K2:K6000")) Is Nothing Then
Set rng = Sh.Range("K2:K6000")
strList = "Ja" & Chr(44) & "Nein"
End If
If Not Intersect(Target, Range("M2:M6000")) Is Nothing Then
Set rng = Sh.Range("M2:M6000")
strList = Date
End If
If strList = "" Then Exit Sub
rng.Validation.Delete
With Target.Validation
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:=strList
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Auweia"
.InputMessage = ""
.ErrorMessage = _
"Hier können Sie bitte nur das Listenfeld mit den Vorgaben nutzen."
.ShowInput = True
.ShowError = True
End With
Set rng = Nothing
End If
End Sub


Anzeige
Danke Franc !
15.11.2008 21:51:00
Wolfgang
Hallo Franc,
Danke für die Rückmeldung und Deine Ausarbeitungen sowie Erläuterungen zum Code. Ich habe den Code sofort "eingebaut" und er läuft tadellos. Super! - Ich hätte das nie so hinbekommen und hatte mir ja schon die Zähne daran ausgebissen. Umso mehr nochmals recht herzlichen Dank für Deine schnelle Rückmeldung und Hilfestellung. Auch finde ich Deine Erläuterungen zum Code sehr gut, da habe ich die Möglichkeit dadurch weiter hinzu zu lernen. In dem Sinne noch ein schönes Wochenende.
Gruß - Wolfgang

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige