Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
544to548
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
544to548
544to548
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
namensbestandteile in VBA suchen lassen
12.01.2005 15:28:38
Susi
Hallo,
folgende Situation.
Es gibt Spalte A (mit Namen z. B. Puma GmbH blub blab) und daneben eine Spalte B mit einer Nummernfolge die immer verschieden ist. Nun soll der Anwender die Möglichkeit haben per CommandButton eine Input Box zu öffnen und die Bestandteile (z. B. nur Puma oder nur blub) dort einzugeben. Als nächstes (da der Name öfter vorkommen kann) muss eine Auflistung der Namen mit den dazugehörigen Nummern erscheinen und der Anwender kann einen davon auswählen. Die Auswahl wir dann automatisch in z. B. Zelle C1 geschrieben.
AW: namensbestandteile in VBA suchen lassen
RR
Hallo,
versuche es mal damit:

Sub Suche()
On Error GoTo ende:
SB = InputBox("suchbegriff")
range("a1:a21000").Select
For Each zelle In Selection
If Not zelle.Find(What:=SB, LookIn:=xlFormulas, LookAt:=xlPart) Is Nothing Then
zelle.Activate
If MsgBox("Weitersuchen?", vbYesNo) = vbNo Then GoTo ende:
End If
Next
ende:
MsgBox ("Ende der Suche!")
cells(1,3)=Cells(zelle.Row, 2)
End Sub

AW: namensbestandteile in VBA suchen lassen
Susi
Hallo,
danke für den Vorschlag, klappt aber net so ganz. Mir zeigt er kein Ergebnis an und schreibt nichts in c3. Ich kenn mich da fast nicht aus. Ausser einer InputBox oder einer IfSchleife ists bei mir schon aus.
Gruß
Anzeige
AW: namensbestandteile in VBA suchen lassen
RR
Hallo,
bei mir macht er das. Habe in Spalte A beliebige Namen stehen und in B Nummern. Er sucht alle die Spalte A nach dem Suchbegriff ab und wenn man bei Weitersuchen? "nein" eingibt, schreibt er den Wert in C1.
Ist zwar nicht ganz das, was du wolltest, aber vom Prinzip ist es das gleiche...nur einfacher zu schreiben.
AW: namensbestandteile in VBA suchen lassen
Volker
Hallo Susi,
hab mal ein bisschen rumgeknobelt und Dir ein Bsp. gebastelt, das Dir eine Auswahlliste in C1 erzeugt
Der Suchbegriff muß in B1 eingegeben werden und und einen Starbutton gibt es auch nicht,
aber das kriegst Du ja vielleicht selbst hin.
Wenn nicht, einfach schreien.
https://www.herber.de/bbs/user/15988.xls
Gruß
Volker
Anzeige
AW: namensbestandteile in VBA suchen lassen
Susi
Hallo,
vielen Dank, hat alles wunderbar geklappt. Die Inputbox hab ich gerade noch :-) selbst hingkriegt. Hat mir sehr geholfen.
Gruß
Susi
AW: namensbestandteile in VBA suchen lassen
Susi
Eine Frage hab ich noch. Wie kann ich es einstellen das er zu den Namen in Spalte A auch noch die dazugehörigen Nummern in Spalte B angezeigt bekommen.
Ist es auch möglich das Dropdownfeld von alleine aufgehen zu lassen?
Gruß
AW: namensbestandteile in VBA suchen lassen
Volker
Hallo Susi,
das sind ja gleich 2 Fragen auf einmal ;-)
mit liste = liste & "," & Cells(i, 1) & " " & Cells(i, 2) werden die Inhalte von Spalte A und B hintereinander geschrieben.
Ein Dropdownmenü öffnet man mit Cursortaste UNTEN.
Man kann in VBA auch Tastatureingaben simulieren.
In dem Fall lautet der Code:
Application.SendKeys ("%{UNTEN}")
Funktioniert aber meines Wissens nicht, wenn man den Code im VBA-Editor ausführt. Also nicht wundern, wenn es z.B. beim Durchlauf des Codes im Einzelschritmodus (F8) nicht geht.
Hier noch mal die komplette sub, wobei der Inhalt von C1 vorher gelöscht wird

Sub finden()
Dim sb, liste As String
Dim i As Integer
i = 1
sb = Cells(1, 2)
Cells(1, 3) = ""
While Cells(i, 1) <> ""
If InStr(Cells(i, 1), sb) <> 0 Then
liste = liste & "," & Cells(i, 1) & " " & Cells(i, 2)
End If
i = i + 1
Wend
liste = Mid(liste, 2)
Cells(1, 3).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=liste
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Application.SendKeys ("%{UNTEN}")
End Sub

Gruß
Volker
Anzeige
AW: namensbestandteile in VBA suchen lassen
13.01.2005 11:10:16
susi
Hallo,
genau das wollte ich. Wunderbar. Vielen Dank für die große Hilfe.
gruß
susi
gern geschehen o.T.
Volker
x

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige