Microsoft Excel

Herbers Excel/VBA-Archiv

Gültigkeit Liste erster Buchstabe

Betrifft: Gültigkeit Liste erster Buchstabe von: Joachim
Geschrieben am: 07.03.2016 16:01:45

Hallo,

ich hab im Archiv schon gesucht, aber nicht die gewünschte Antwort gefunden.
Ich habe eine Zelle über Gültigkeit mit einer alphabetisch sortierten Liste (per Namen aus einer anderen Tabelle) definiert.
Jetzt wäre es schön, wenn bei Eingabe des ersten Buchstabens z. B. "K" nur die Einträge ab "K..." kommen und ich nicht bis K scrollen muss.
Im Archiv (ältere Beiträge) fand ich, dass es nur mit einer Combobox geht.
Aber vielleicht geht das unterdessen mit den neueren Excel-Versionen.

Wenn nicht, nehme ich die Combobox.

Joachim

  

Betrifft: AW: mW ginge das ohne VBA nur nur zweistufig ... von: ... neopa C
Geschrieben am: 07.03.2016 16:10:50

Hallo Joachim,

... das heißt mit einer zusätzlichen Hilfszelle und einer dynamischen Hilfszellenbereich. Ist aber sicherlich nicht das was Du anstrebst?

Gruß Werner
.. , - ...


  

Betrifft: AW: mW ginge das ohne VBA nur nur zweistufig ... von: Joachim
Geschrieben am: 07.03.2016 16:16:44

Hallo Werner,

wie würde das aussehen, Hilfszelle bzw. -Bereich)?


Gruss
Joachim


  

Betrifft: AW: mW ginge das ohne VBA nur nur zweistufig ... von: silex1
Geschrieben am: 07.03.2016 16:35:15

Hallo,

dies geht schon, allerdings mit einem kleinen Umweg. Füge einfach das Alphabet in die Liste ein, sortiere es dann und dann wird bei Eingabe von K z.B. direkt zu K gesprungen, wenn man dann die Liste anwählt.

VG
René


  

Betrifft: AW: das ist aber auch zweistufig ... von: ... neopa C
Geschrieben am: 07.03.2016 16:49:44

Hallo René,

... mein Lösungsvorschlag auf Basis einer Formel würde nur die Namen mit dem jeweiligen Anfangsbuchstaben anbieten.

Aber vielleicht reicht ihm schon Dein Vorschlag. Ansonsten melde Dich noch einmal, Joachim.

Gruß Werner
.. , - ...


  

Betrifft: AW: Gültigkeit Liste erster Buchstabe von: Daniel
Geschrieben am: 07.03.2016 16:28:35

Hi
auch in Excel 2010 geht das nur mit einer Combobox.
das DropDownfeld der Gültgkeitsprüfung ist immer noch sehr rudimentär in seiner Funktion.
Gruß Daniel


  

Betrifft: AW: mit Hilfszelle und Formel geht es schon owT von: ... neopa C
Geschrieben am: 07.03.2016 16:51:05

Gruß Werner
.. , - ...


  

Betrifft: AW: mit Hilfszelle und Formel geht es schon owT von: Daniel
Geschrieben am: 07.03.2016 17:00:22

naja, gut.
dann brauchst du eine erste Zelle, in welche du den Buchstaben eintippst und kannst dann Liste für die Gültigkeitsprüfung in der zweiten Zelle entsprechend einstellen.
das braucht dann aber zwei eingabezellen.
Das Springen in der Klappliste der Gültigkeitsprüfung bei Eingabe des ersten Buchstabens funktioniert aber auch in den neusten Excelversionen noch nicht.
Gruß Daniel


  

Betrifft: AW: das hatte ich ja indirekt auch geschrieben owT von: ... neopa C
Geschrieben am: 07.03.2016 17:30:45

Gruß Werner
.. , - ...


  

Betrifft: AW: Gültigkeit Liste erster Buchstabe von: Joachim
Geschrieben am: 08.03.2016 08:47:17

Hallo,

mit Hilfszelle ist es zu umständlich. Und Combobox kommt nun doch nicht in Frage.
Schade, dass das DropDownfeld noch so eingeschränkt ist. Ich dachte, es geht mit einer Art Autovervollständigung, ähnlich wie bei Zellen.

Danke für eure Hilfe
Joachim


  

Betrifft: AW: Gültigkeit Liste erster Buchstabe von: Daniel
Geschrieben am: 08.03.2016 09:13:15

Hi
warum kommt die Combobox nicht in Frage?
wenn viele Zellen davon betroffen sind, könntest du dir ja folgenden Workaround programmieren:

1. Erstelle eine Combobox aus den ActivX-Steuerelementen und mache sie unsichtbar
2. Im SelectionChange-Event des Tabellenblatts machst du folgendes, wenn eine betroffene Zelle selektiert wird:
- Combobox einblenden
- Combobox auf die Eingabezelle verschieben und in der Grösse an die Zelle anpassen
- verknüpfe die Combobox mit der angeklickten Zellen über die Eigenschaft "LinkedCell"
- aktiviere die Combobox
beim Verlassen der Combobox blendest du diese dann wieder aus.

damit kannst du im Prinzip die Gültigkeitsliste mit Auswahl simulieren und hast den Eingabekomfort der Combobox ohne bei vielen betroffenen Zellen dein System zu überlasten.

Gruß Daniel


  

Betrifft: AW: Gültigkeit Liste erster Buchstabe von: Joachim
Geschrieben am: 08.03.2016 10:30:22

Hallo Daniel,

bin grad an deinem Vorschlag und hab ein paar Fragen:
Um die Position der Combobox zu definieren, lese ich per ActiveCell die Position der Eingabezelle aus. Leider besteht die Eingabezelle aus verbundenen Zellen, somit kommt bei .Width nicht die Gesamtbreite raus sondern nur die Breite der ersten Zelle. Wie bekomme ich die Gesamtbreite?
Die Auswahlliste ist dynamisch. Sie steht auf einer anderen Tabelle und ich habe dafür einen Namen definiert. Kann ich bei .ListFillRange den Namen eintragen?


Gruss
Joachim


  

Betrifft: AW: Gültigkeit Liste erster Buchstabe von: Daniel
Geschrieben am: 08.03.2016 10:45:08

Hi

1. wenn du mit Verbundzellen arbeitest dann kannst du von deine Einzelzelle aus den ganzen Zellverbund mit .MergeArea ansprechen, dh

Combobox1.Width = ActiveCell.MergeArea.Width
2. ja, bei ListfillRange kannst du auch einen Namen eintragen.

Gruß Daniel


  

Betrifft: AW: Gültigkeit Liste erster Buchstabe von: Joachim
Geschrieben am: 08.03.2016 11:47:39

Hallo Daniel,

das funzt soweit sehr gut in einer Testdatei.
In der eigentlichen Datei stehen max. 3 Blöcke nebeneinander und x untereinander (siehe mein Beitrag vom 04.03. 09:17). Die Auswahlliste (Combobox) soll immer beim Feld Agentur erscheinen.
Wie bekomme ich es hin, dass bei Target.Address nicht nur ein Zellbereich, sondern alle Zellbereiche für Agentur hinterlegt sind. Da sich die Anzahl der Blöcke ändern kann, muss das dynamisch sein.

Gruß
Joachim


  

Betrifft: AW: Gültigkeit Liste erster Buchstabe von: Daniel
Geschrieben am: 08.03.2016 12:02:41

Hi

das ganze ausführen, wenn:

Target.CountLarge = 1 (nur eine Zelle selektiert)

und

Target.Column > 3

und

Target.Offset(0, -2).value = "Agentur"

ist.

gruß Daniel


  

Betrifft: AW: Gültigkeit Liste erster Buchstabe von: Joachim
Geschrieben am: 08.03.2016 12:19:32

Sorry, Daniel, geht leider nicht.
Hab wie in der eigentlichen Datei in B4 Agentur geschrieben und D4, E4 und F4 verbunden. Beim Klick in D4 passiert nix, bei Klick auf B4 geht Makro auf Fehler.
Hier mein Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.CountLarge = 1 And Target.Column > 3 And Target.Offset(0, -2).Value = "Agentur" Then
With ComboBox1
.Visible = True
.Top = ActiveCell.Top
.Left = ActiveCell.Left
.Width = ActiveCell.MergeArea.Width + 2
.ListRows = 8
.ListFillRange = "Agentur"
.LinkedCell = ActiveCell.Address
.Activate
End With

Else: ComboBox1.Visible = False
End If


End Sub

Gruss
Joachim


  

Betrifft: AW: Gültigkeit Liste erster Buchstabe von: Daniel
Geschrieben am: 08.03.2016 12:51:50

Hi
das Target.Offset(0, -2) darf natürlich nur ausgeführt werden, wenn Target.Column > 2, weil es die Spaltennummern 0 und kleiner nicht gibt.

bei einer AND-Verknüpfung im IF-Block werden aber immer alle Bediungungen zusammen überprüft.
wenn du solche Bediungugen hast, die unbedingt erfüllt sein müssen, damit weitere Bedinungunsprüfungen nicht auf einen Fehler laufen (so wie es hier der Fall ist), solltest du nicht mit AND arbeiten, sondern die IF-Blöcke ineinander schachteln:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

ComboBox1.Visible = False

If Target.CountLarge = 1 Then
    If Target.Column > 3 Then
        If Target.Offset(0, -2).Value = "Agentur" Then
            With ComboBox1
                .Visible = True
                .Top = ActiveCell.Top
                .Left = ActiveCell.Left
                .Width = ActiveCell.MergeArea.Width + 2
                .ListRows = 8
                .ListFillRange = "Agentur"
                .LinkedCell = ActiveCell.Address
                .Activate
            End With
        End if
    End If
End If

End Sub
die inneren IF-Prüfungen werden nur dann ausgeführt, wenn die äusseren WAHR sind und somit kommt es nicht mehr zu dem beschriebenen Fehler.

Es ist hier zwar nicht relevant, aber wenn du mal ne Massendatenverarbeitung in einer Schleife mit vielen Werten machst, dann ist diese Vorgehensweise auch der Vernküpfung mit AND vorzuziehen, weil es schneller ist, da die inneren Prüfungen nicht jedesmal ausgeführt werden, sondern nur dann, wenn die äusseren bereits erfüllt sind.

Gruß Daniel


  

Betrifft: AW: Gültigkeit Liste erster Buchstabe von: Joachim
Geschrieben am: 08.03.2016 13:09:21

Hallo Daniel,

ging am Anfang immer noch nicht. hab dann Target.CountLarge = 3 eingetragen (sind ja 3 verbundene Zellen).
Jetzt geht's.

Danke!!

Werde das heute Abend in die "echte" Datei übertragen.

Schönen Tag
Joachim


 

Beiträge aus den Excel-Beispielen zum Thema "Gültigkeit Liste erster Buchstabe"