Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<
Microsoft Office 2003-2019 => Excel => Thema gestartet von: Hennes am Januar 12, 2017, 13:02:46 Nachmittag
-
Hallo ihr da Draußen,
ich brauche wieder einmal eure Hilfe.
Ich habe eine Dropdownliste erstellt, die auch sowit funktioniert.
Nun möchte ich aber, dass ich aus dieser Liste mehrere Elemente auswählen kann und zusätzlich der Nutzer auch die Zelle selbst beschreiben kann.
Die Excel Hilfe gibt mir den Rat, eine VBA Code zu schreiben, der Multiselect zulässt.
Und da sind meine Grenzen erreicht.
Kann mir Jemand helfen???
Gruß Hennes
-
Hallo Hennes
Hier findest du alles. (http://www.contextures.com/searchresultsctx.html?cx=partner-pub-9531091850463532%3A3065461762&cof=FORID%3A10&ie=UTF-8&q=data+validation&sa=Search)
-
Hallo Detlef...
das war schonmal hilfreich. Danke...
Habe einen Code dafür gefunden.
Nun habe ich aber das nächste Problem.
Der Code funktioniert auf Tabellenblatt 2 einwandfrei.
Auf Tabellenblatt 1 läuft bereits ein Code. Und wenn ich nun den zweiten hineinkopiere,
läuft er nicht mehr.
Excel meldet Fehler: "Fehler beim Kompilieren, Mehrdeutiger Name: Worksheet_Change
Was kann ich nun machen???
Gruß Hennes
-
Beide Code sehen wie folgt aus:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If Target = "" Then
Target.Offset(0, -1) = ""
Else
Target.Offset(0, -1) = Date
End If
End Sub
-------------------------------------------------------------------------------------------------------------------------------------------
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. J3:J7300) durchführen
If Not Application.Intersect(Target, Range("J3:J7300")) 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
End If
Errorhandling:
Application.EnableEvents = True
End Sub
muss man die umbenennen???
oder was kann man tun???
-
Excel meldet Fehler: "Fehler beim Kompilieren, Mehrdeutiger Name: Worksheet_Change
Was kann ich nun machen???
Die Meldung ist klar: In deinem Code gibt es die Sub Worksheet_Change mehrfach - erlaubt ist aber nur ein Worksheet_Change.
Du musst also die beiden Codes in ein Worksheet_Change zusammenfügen.
-
OK...
Blöde Frage jetzt: Und wie???
Gruß Hennes
-
Im einfachsten Fall so:
Private Sub Worksheet_Change(ByVal Target As Range)
Code1
Code2
End Sub
Oder so:
Private Sub Worksheet_Change(ByVal Target As Range)
Code2
Code1
End Sub
Aber vermutlich wird das tatsächlich nicht so einfach sein.
-
Juhu...
Variante 2 funktioniert!!!
Danke
-
Hallo mochmal,
wie kann ich den Code erweitern, dass auch ein Wert frei eingetragen werden kann???
Gruß Hennes
-
Hallo Hennes
Auch dazu gibt es bei Contexures Codes.