Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1612to1616
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

VBA - UDF anpassen

VBA - UDF anpassen
03.03.2018 13:06:31
WalterK
Hallo,
im Internet habe ich den Code für eine Suchen-UDF gefunden und ein wenig für mich angepasst.
Gesucht werden soll in 6 Spalten, in der UDF sollen aber nur 4 Spalten angezeigt werden. So weit so gut.
2 Änderungen hätte ich gerne, weiß aber nicht ob und wie man es umsetzen kann:
1.) in Bezug auf die ID und den Namen sollen keine Doppler oder Mehrfache angezeigt werden, diese Kombination soll also nur 1mal gezeigt werden.
2.) wenn in der Listbox auf eine Zeile doppelgeklickt wird soll sich die UDF schliessen und die Tabelle1 nach dem angeklickten Namen gefiltert werden.
Besten Dank für die Hilfe und Servus, Walter
https://www.herber.de/bbs/user/120187.xlsm

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Möchte darum bitten, exakte Bezeichnungen ...
03.03.2018 14:05:04
Luc:-?
…einzuhalten, Walter;
in deinem VBA-Projekt ist nämlich keine einzige UDF enthalten (das F steht für Function!). Du willst also nur irgendeine Subprozedur im Klassenmodul des UF (ohne D → UserFormular) anpassen. Das wird dann schon irgendjemand machen…
Gruß, Luc :-?
AW: VBA - UDF anpassen
03.03.2018 16:39:14
Robert
Hallo Walter,
zu 1.
Ich vermute, die ID ist eindeutig.Wenn Du die Prozedur cmdSearch_Click() wie folgt änderst, werden nur eindeutige Daten in der Listbox aufgenommen (Änderungen sind in rot dargestellt):
Private Sub cmdSearch_Click()
Dim objSH As Worksheet
Dim rngSearch As Range
Dim strFirst As String
Dim Lz As Long
Dim strGelistet As String
If txtSearch  "" Then
ListBox1.Clear
Set objSH = Sheets("Tabelle1")
With objSH
Lz = Application.Max(6, .Cells(Rows.Count, 2).End(xlUp).Row)
Set rngSearch = .Range("A6:F" & Lz).Find(What:=txtSearch, LookIn:=xlValues, LookAt:=xlPart,  _
MatchCase:=False, After:=.Cells(6, 1))
If Not rngSearch Is Nothing Then
strFirst = rngSearch.Address
Do
If (.Cells(rngSearch.Row, 3) = ComboBox1.Text Or ComboBox1.Text = "Alle")  _
And Not strGelistet Like "*|" & .Cells(rngSearch.Row, 1) & "|*" Then
strGelistet = strGelistet & "|" & .Cells(rngSearch.Row, 1) & "|"
ListBox1.AddItem .Cells(rngSearch.Row, 1)
ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(rngSearch.Row, 2)
ListBox1.List(ListBox1.ListCount - 1, 2) = .Cells(rngSearch.Row, 3)
ListBox1.List(ListBox1.ListCount - 1, 3) = .Cells(rngSearch.Row, 4)
End If
Set rngSearch = .Range("A6:F" & Lz).FindNext(rngSearch)
Loop While Not rngSearch Is Nothing And rngSearch.Address  strFirst
ListBox1.ColumnWidths = "60;120;100;60"
End If
End With
If ListBox1.ListCount = 0 Then ListBox1.AddItem "Kein Treffer!"
End If
End Sub

Die Variable strGelistet nimmt die ID auf, wenn ein Element in die Liste aufgenommen wird. Vor der Aufnahme eines neuen Elementes, wird geprüft, ob die ID des neuen Elementes schon in der Variablen strGelistet enthalten ist. Nur wenn dies nicht der Fall ist, wird ein neues Element aufgenommen.
zu 2.
Nachfolgenden Code bitte noch einfügen:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim strFilter As String
strFilter = Me.ListBox1.Text
Unload Me
Range("A5").CurrentRegion.AutoFilter Field:=1, Criteria1:="=" & strFilter, _
Operator:=xlAnd
End Sub

Außerdem muss der Code bei UDFstarten noch wie folgt ergänzt werden. Macht man das nicht und ist noch ein Filter aktiv, werden sonst in der Listbox nur die gefilterten Daten angezeigt,
Sub UDFStarten()
If ActiveSheet.AutoFilterMode Then
ActiveSheet.Rows.AutoFilter
End If
UserForm2.Show
End Sub

Gruß
Robert
Anzeige
AW: VBA - UDF anpassen
03.03.2018 18:10:47
WalterK
Hallo Robert,
besten Dank, alles ist so wie ich es haben wollte. TipTop!
Servus, Walter
In UserForm kommt immer noch kein D vor... :-> owT
04.03.2018 01:36:54
Luc:-?
:-?
Sogar bei einer abgeschlossenen ...
04.03.2018 09:18:18
WalterK
.. Sache musst Du noch deinen oberlehrerhaften Senf dazugeben.
Anstatt mich zu kritisieren solltest du nicht besser mit deiner mitternächtlichen Selbsthilfegruppe an einem weiteren Palaver über Tensoren arbeiten?
Damit hast du dich endgültig aus der Liste ...
04.03.2018 12:27:06
Luc:-?
…enstzunehmender Frager geschossen, Walter;
Sprache ist ein Kommunikationsmittel und jede Kommunikation beruht auf Verständigung, was ggseitiges Verstehen meint. Das gilt erst recht auch für Fachausdrücke, die man nun mal nicht nach Belieben einsetzen darf. Damit outet man sich nämlich als absolutes Greenhorn!
Und deine abschätzige Bemerkung zu meinem Tensor-Beitrag, von dem du sicher kein Wort verstanden hast, fällt letztlich auf dich zurück. In manchen Foren gibt's für so etwas nämlich Extrarubriken, hier leider nicht. Aber wer nichts lernen will, bleibt halt … :->
Luc :-?
Anzeige
AW: Das haben schon andere versucht
04.03.2018 14:02:49
Gerd
Servus Walter,
nein, das kann Luc nicht. Damit müssen wir leben. :-)
Gruß Gerd
Naja , aber UDF und UF sind schon...
04.03.2018 14:32:57
robert
..2 unterschiedliche Begriffe,selbst der dümmste User würde UDF nicht mit UserForm
identifizieren.
Aber eigene Fehler mit Angriffen auf andere User abzuwälzen-dies Typen-naja...........
Daher schenke Euch ein "D" , vielleicht könnt Ihr es noch anderswo gebrauchen:-)
Gruß
robert
Tja, das von dir auch ...
04.03.2018 14:43:32
dir
...noch etwas kommt war eh schon klar. Ihr zwei kommt wir vor wie die beiden alten Säcke von der Muppet Show. Die haben auch immer ungefragt ihre Kommentar abgegeben.
Frag lieber nicht, wie Du mir vorkommst-kwT.
04.03.2018 15:54:54
robert
Olala, da hat man wohl seine HptBildungsquelle ...
05.03.2018 15:43:09
Luc:-?
…(unbewusst?) verraten… :->>
Luc :-?
Anzeige
1.Warum steht das unter meinem BT, ...
04.03.2018 14:34:22
Luc:-?
…Gerd,
und 2. worauf bezieht sich dein Text? Was kann ich nicht, womit du leben musst?
Hast du etwas gg eindeutige Formulierungen? Das würde ja dem Zeitgeist und der beklagten Sprachverrohung und undeutbaren Ausdrucksweisen entsprechen.
Wer auch nach meiner Bitte um exakte Begriffe nicht bereit ist, sich zu korrigieren, trägt zu diesem Chaos bei. Hätte Walter UF und nicht UDF geschrieben, hätte ich mir das wohl gar nicht erst angesehen. Aber wahrscheinlich kennt er nicht mal den Unterschied…
Viel Spaß mit dem nächsten Sprachmysterium!
Luc :-?
AW: 1.Warum auch immer, ...
04.03.2018 15:04:29
Gerd
Ja Luc, die UndeutlichenFormulierungen können schon Probleme bereiten, die wir ohne sie nicht hatten.
Es ist ja wirklich schlimm, uninteressante Beiträge mit fehlerhaftem Betreff lesen zu müssen, ohne sie zu kommentieren. :-)
SchSo
Gerd
Anzeige
Tja, wenn das alles so unwichtig ist, ...
05.03.2018 15:57:48
Luc:-?
…Gerd,
warum wurden dann überhaupt Sprachen erfunden, wir könnten ja auch irgendwas dahergrunzen… :-]
Und warum wird dann nahezu regelmäßig ein xl-spezifisches Begriffsdurcheinander von Zeile und Spalte bzw Mappe und Blatt moniert? In VBA ist Vglbares also völlig irrelevant? Na, dann sehen wir mal, wo so etwas hinführt → womöglich bis zur fristlosen Entlassung, je nach ggf angerichtetem Schaden.
Früher haben die Computer-Kids ihre Pgmm noch selber geschrieben. Heute suchen sie sich diese aus dem INet zusammen, ohne sie wirklich zu verstehen…!
Meinst du nicht auch, dass es in der realen Welt durchaus ein Unterschied ist, ob du als Ziel UdK oder UK angibst…?
Gab's da nicht mal diese Anekdote mit Stanton, Texas, und StAnton, Österreich…? :-]
Luc :-?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige