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

DropDown-Menü aus früheren Eingaben

DropDown-Menü aus früheren Eingaben
08.11.2006 09:43:12
Michael
An alle hilfreichen Geister!
Ist es möglich, Eingaben in einer bestimmten Zelle als DropDown-Menü verfügbar zu machen, ähnlich dem AutoVervollständigen vom Explorer?
Ich habe immer wiederkehrende Daten (Namen und Kostenstellen), die allerdings ziemlich zahlreich sind. Kann ich mir von Excel etwas zur Verfügung stellen lassen, dass mir nach Eingabe des ersten Buchstabens bzw. der ersten Zahl eine Auswahl an früheren Eingaben zur Wahl gibt bzw. gleich bei Klick ein Fenster mit früheren Eingaben öffnet?
Danke im Voraus!!
Michael

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: DropDown-Menü aus früheren Eingaben
08.11.2006 10:13:41
Oberschlumpf
Hi Michael
1. Trage in eine Hilfsspalte all die Daten ein, die sich in deinen Zellen immer wiederholen können. (diese Hilfsspalte kannst du auch ausblenden)
2. Markiere die Zellen, in denen sich die Werte oft wiederholen.
3. Klick in der Menüzeile auf Daten/Gültigkeit
4. Wähle im Feld "Zulassen" Liste aus
5. Trage in das Feld "Quelle" die Zellen aus der Hilfsspalte ein
6. Klick auf OK
7. Fertig :-)
Nun hast du in den Zellen mit den Wiederholen ein Dropdownfeld, aus dem du auswählen kannst.
Konnte ich helfen?
Ciao
Thorsten
AW: DropDown-Menü aus früheren Eingaben
08.11.2006 11:28:39
Michael
Ja, hat schon sehr geholfen. Nun will ich die Liste ja teilweise um neue Namen und Kostenstellen erweitern. Ich habe den Listenbereich nach unten ausgedehnt und würde gerne Neue Namen automatisch hinzufügen lassen. Das Makro, dass ich dazu verfasst habe macht aber zunächst mal augenscheinlich nichts, auch wenn der obere Teil alleine funktioniert:

Sub Makro1()
Dim NameNeu As String
If Range("b6") = "NEUER NAME" Then
NameNeu = InputBox("Geben Sie den neuen Namen ein:" & vbCr & "" & vbCr & "" & vbCr & "- " & vbCr & "***")
Range("b6") = NameNeu
Bis hierher gehts, nur die Neulistung klappt irgendwie nicht:
If Range("i13") = "" Then Range("i13") = NameNeu Else
GoTo I14
If Range("i14") = "" Then Range("i14") = NameNeu Else
GoTo I15
If Range("i15") = "" Then Range("i15") = NameNeu Else
GoTo I16
If Range("i16") = "" Then Range("i16") = NameNeu Else
GoTo I17
If Range("i17") = "" Then Range("i17") = NameNeu
End If
End Sub

Anzeige
AW: DropDown-Menü aus früheren Eingaben
08.11.2006 12:12:08
IngGi
Hallo Michael,
du könntest es so versuchen. Das Makro bezieht sich auf die Zelle A1 als Eingabezelle. Die Gültigkeitsliste steht in der letzten Spalte("IV") ab Zeile 1. Der erste Eintrag in der Liste muss "Neuer Eintrag" heißen. Das Makro muss in das Modul des betreffenden Tabellenblattes:

Option Explicit
Public NoVal As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
   If NoVal = True Then
      Range("IV65536").End(xlUp).Offset(1, 0) = Target
      With Target.Validation
         .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
            Operator:=xlBetween, Formula1:="=$IV:$IV"
         .IgnoreBlank = True
         .InCellDropdown = True
         .InputTitle = ""
         .ErrorTitle = ""
         .InputMessage = ""
         .ErrorMessage = ""
         .ShowInput = True
         .ShowError = True
      End With
      NoVal = False
   ElseIf Target = "Neuer Eintrag" Then
      Target.Validation.Delete
      Target.Offset(1, 0).Select
      Target.Select
      NoVal = True
   End If
End If
End Sub
Code eingefügt mit Syntaxhighlighter 4.3

Gruß Ingolf
Anzeige
AW: DropDown-Menü aus früheren Eingaben
08.11.2006 13:04:13
Michael
Danke für die schnelle Antwort. Leider ist mir das ein paar Nummern zu hoch. Ich habe den VBA Editor geöffnet und den Code dort eingefügt. Die Zellenzuweisung habe ich in
If Target.Address = "$B$6" Then
geändert, ansonsten bleibt alles gleich. Nur irgendwie tut sich nichts. Wie genau füge ich das Ganze in ein Modul ein? Und muss ich das irgendwo auslösen, oder lässt er den Namen von selbst eintragen und übernehmen?
Auf jeden Fall schon mal Danke....
Michael
AW: DropDown-Menü aus früheren Eingaben
08.11.2006 14:53:49
IngGi
Hallo Michael,
im VBA-Editor ist normalerweise auf der linken Seite der Projektexplorer mit einer Verzeichnisstruktur, die Codemodule für alle geöffneten Mappen, deren Tabellenblätter sowie evtl. weitere vom Benutzer eingerichtete Module enthält. Per Doppelklick öffnen sich diese Module im großen Fenster auf der rechten Seite.
Das Makro muss in das Modul des Tabellenblattes, in das du die Daten eingeben willst. Die Zeile "Public NoVal As Boolean" muss dagegen in ein allgemeines, d.h. vom Benutzer eingerichtetes Modul. Da hab ich einen Fehler gemacht.
Die Anpassung für Zelle $B$6, die du gemacht hast, ist OK. Da sind keine weiteren Änderungen erforderlich. Hast du für $B$6 schon eine Gültigkeit eingerichtet? Hast du die Liste für die Gültigkeit in Spalte "IV" geschrieben (sonst müsste das Makro nochmal angepasst werden)?
Das Makro wird automatisch ausgelöst, wenn du auf $B$6 klickst. Du musst dann entweder einen schon vorhandenen Eintrag aus der Dropdownliste auswählen oder du wählst den Eintrag "Neuer Eintrag". Dann kannst du anschließend einen neuen Eintrag in die Zelle eingeben, der dann für die Zukunft automatisch mit in die Gültigkeitsliste aufgenommen wird. Du kannst natürlich auch von Hand neue Einträge in die Gültigkeitsliste aufnehmen, indem du diese in die letzte Spalte ("IV") einträgst.
Ich hab' dir mal eine Beispielmappe hochgeladen, damit du siehst, wie das Ganze aussehen muss.
https://www.herber.de/bbs/user/37985.xls
Gruß Ingolf
Anzeige
AW: DropDown-Menü aus früheren Eingaben
09.11.2006 10:48:01
Michael
Hallo, Ingolf, Danke für die genaue Beschreibung, leider mach ich wohl noch irgendwo einen Fehler. Ich hab hier mal relevante Screenshots dazu hochgeladen, vielleicht ist darauf zu sehen, was ich falsch mache:
Userbild

Die Datei https://www.herber.de/bbs/user/38009.jpg wurde aus Datenschutzgründen gelöscht

Die Datei https://www.herber.de/bbs/user/38010.jpg wurde aus Datenschutzgründen gelöscht

Die Datei https://www.herber.de/bbs/user/38011.jpg wurde aus Datenschutzgründen gelöscht

Die Datei https://www.herber.de/bbs/user/38012.jpg wurde aus Datenschutzgründen gelöscht

Gruss Michael
Anzeige
AW: DropDown-Menü aus früheren Eingaben
09.11.2006 11:46:46
IngGi
Hallo Michael,
soweit ich das sehen kann, stimmt alles. Die Fehlermeldung mit dem ungültigen Wert kommt, wenn du versuchst, einen neuen Eintrag direkt vorzunehmen. Du musst dazu erst "Neuer Eintrag" aus der Dropdownliste wählen. Danach kannst du den neuen Eintrag in die Zelle schreiben.
Gruß Ingolf
AW: DropDown-Menü aus früheren Eingaben
09.11.2006 12:52:09
Michael
Genau das mache ich ja. Ich wähle Neuer Eintrag. Wenn ich das Makro richtig verstehe, müsste das Feld dann automatisch leer werden. Der Eintrag: Neuer Eintrag bleibt aber stehen, und beim Versuch, ihn zu Überschreiben(Im Screenshot mit XXX) kommt dann die Fehlermeldung.
Muss ich vielleicht irgendwo erst die Gültigkeit deaktivieren?
Anzeige
AW: DropDown-Menü aus früheren Eingaben
09.11.2006 22:19:41
IngGi
Hallo Michael,
das Makro funktioniert so nur für eine einzige Zelle, nämlich $B$6. In deinen Screenshots hast du zwei Gültigkeitslisten. Hast du dazu vielleicht auch mehrere Zellen, für die das Makro arbeiten soll? Dann müsste man das nochmal umschreiben.
Gruss Ingolf
AW: DropDown-Menü aus früheren Eingaben
10.11.2006 00:40:29
Michael
Es sollen mal zwei werden, ja. Wenn das wichtig für das Makro ist, dann sorry. Ich wollte halt dann einfach denn Zellennamen anpassen.
Gruss Michael
AW: DropDown-Menü aus früheren Eingaben
10.11.2006 16:18:03
IngGi
Hallo Michael,
das war nicht als Kritik gemeint. Es wäre kein Problem, das Makro für mehrere Zellen umzuschreiben. Ich dachte nur, dass du vielleicht denkst, das Makro würde so wie es ist für alle Zellen im Tabellenblatt funktionieren und das es bei dir vielleicht deshalb nicht funktioniert, weil du es an einer anderen Zelle versuchst.
Jetzt habe ich allerdings keine Idee mehr, warum das Ganze bei dir partout nicht funktionieren will. Es sollte eigentlich so sein, dass die Variable "NoVal" beim Öffnen der Datei zunächst "False" ist. Wenn du über das Dropdownmenü "Neuer Eintrag" in die Zelle $B$6 eingibst, wird die Variable NoVal auf "True" gesetzt und die Gültigkeit der Zelle gelöscht. Dadurch kannst du die Zelle $B$6 jetzt beliebig verändern. Bei der nächsten Änderung wird die Variabel NoVal wieder auf "False" gesetzt, die Gültigkeit wieder hergestellt und der aktuelle Inhalt der Zelle wird der Gültigkeitsliste hinzugefügt, so dass er für die Zukunft zur Verfügung steht.
Alternativ gibt's noch eine Lösung über einen CommandButton auf dem Tabellenblatt. Wenn du in der Zelle $B$6 einen neuen Eintrag hinzufügen willst, klickst du auf den Button und gibst den neuen Eintrag in eine Inputbox ein. Diese Variante ist zwar ein bisschen umständlicher zu handhaben, weil man erst auf einen Button klicken und die Eingabe dann nicht direkt in die Zelle, sondern in eine Inputbox machen muss. Aber dafür ist das Programm viel einfacher. Folgender Code wird für den CommandButton hinterlegt:

Private Sub CommandButton1_Click()
Range("IV65536").End(xlUp).Offset(1, 0) _
   = InputBox("Bitte neuen Eintrag eingeben.")
End Sub
Code eingefügt mit Syntaxhighlighter 4.3

Gruß Ingolf
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige