Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1300to1304
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

Textbox auswahl

Textbox auswahl
23.02.2013 10:39:25
kurt
Guten Morgen,
ich habe eine Userform und darauf eine TextBox.
In der Listbox werden die Spalten von A bis D die Werte angezeigt,
die in der Tabelle "Lager" ab Zeile 3, angezeigt.
Über die Listbox habe ich 4 TextBoxen plaziert, wenn ich jetzt Doppelklick in der
Listbox werden die Werte jeweils in den TextBoxen angezeigt.
Das funktioniert auch alles.
Nun möchte ich in der Textbox1 wenn man den Anfangsbuchstaben eingibt,
das die Werte angezeigt werden in der Listbox und natürlich bei Doppelklick
wie vor angezeigt werden.
mfg Kurt K

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Leider falsch
23.02.2013 15:48:13
kurt
Hallo,
habe dies gefunden leider klappt es nicht.
Dim WkSh As Worksheet
Dim lLetzte As Long
Dim lZeile As Long
Dim sSuchbegriff As String
Dim sTyp As String
Dim iSpalte As Integer
Dim iLiBo As Integer
Set WkSh = Worksheets("Lager")
lLetzte = WkSh.Cells(Rows.Count, 10).End(xlUp).Row
If lLetzte < 5 Then lLetzte = 10
If Trim(TextBox1.Value) = "" Then
MsgBox "Es fehlt ein Suchbegriff als Typ - Abbruch", _
48, " Hinweis für " & Application.UserName
TextBox1.SetFocus
Exit Sub
ElseIf Trim(TextBox1.Value) <> "" Then sSuchbegriff = _
WorksheetFunction.Proper(Trim(TextBox1.Value))
iSpalte =1
End If
' nachfolgend werden die Suchbegriff.Werte gesucht und gefunden.
' Mit LookIn:=xlValues wird nach den Zellwerten gesucht.
' Mit LookAt:=xlPart muß der Suchbegriff nicht komplett mit
' dem Suchergebnis übereinstimmen.
ListBox1.Clear
With WkSh
For lZeile = 4 To lLetzte
sTyp = Replace(.Range("A" & lZeile).Value, " ", "")
If Left(sTyp, Len(sSuchbegriff)) = sSuchbegriff And _
IsNumeric(Mid(sTyp, Len(sSuchbegriff) + 1, 1)) Then
ListBox1.AddItem " "
ListBox1.List(iLiBo, 0) = .Range("B" & lZeile).Value
ListBox1.List(iLiBo, 1) = Format(.Range("A" & lZeile).Value, "000,000")
ListBox1.List(iLiBo, 2) = lZeile
iLiBo = iLiBo + 1
End If
Next lZeile
End With
If iLiBo = 0 Then
MsgBox "Zum Suchbegriff """ & sSuchbegriff & """ wurde kein Eintrag gefunden.", _
48, " Hinweis für " & Application.UserName
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
mfg kurt k

Anzeige
AW: Leider falsch
23.02.2013 20:12:39
fcs
Hallo Kurt,
man kann ja nicht einfach ein Makro nehmen und hoffen dass es mit den eigenen Daten funktioniert. Da sind doch noch etliche Anpassungen erforderlich.
Es wäre natürlich extrem hilfreich, weinn du eine Datei mit deinem Userform und ein paar Beispieldaten (ggf. anonymisert) hier hochlädst.
Dann hab ich noch ein paar Fragen:
In welcher Spalte der Tabelle sollen die Zellen mit dem in die Textbox1 eingegebenen Anfangsbuchstaben gesucht werden?
Muss Groß-Kleinschreibung bei den Buchstaben berücksichtigt/ignoriert werden?
Ist es notwendig, dass die Zeilennummern mit den gefundenne Zeilen in der Listbox als Information mit erfasst werden?
Wird in Textbox1 immer nur 1 Buchstabe eingegeben? Oder soll auch nach mehreren Buchstaben als Wortanfang gesucht werden?
Gruß
Franz

Anzeige
AW: Leider falsch
23.02.2013 22:33:41
Walter
Guten Abend Franz,
das ist schön das Du dich meldest.
Ich Versuche mal zu erklären.
1. In der Spalte A ab Zeile 3
2. Ich möchte gern den Buchstaben klein aber auch groß eingeben können und es sollte nur ein
Buchstabe eingegeben werde.
3. In den Spalten bis D stehen dann Buchstaben oder Zahlen.
4. In den Textboxen 1 bis 4 sollen dann die Werte, bei Doppelklick in der Listbox, eingelesen werden.
Mit freundlichen Grüßen Kurt K

AW: Leider falsch
24.02.2013 10:26:28
kurt
Guten Abend Franz,
Mail Adresse war noch vom Vater Sorry,
das ist schön das Du dich meldest.
Ich Versuche mal zu erklären.
1. In der Spalte A ab Zeile 3
2. Ich möchte gern den Buchstaben klein aber auch groß eingeben können und es sollte nur ein
Buchstabe eingegeben werde.
3. In den Spalten bis D stehen dann Buchstaben oder Zahlen.
4. In den Textboxen 1 bis 4 sollen dann die Werte, bei Doppelklick in der Listbox, eingelesen werden.
Mit freundlichen Grüßen Kurt K

Anzeige
AW: Listbox, Teilliste mit Anfangsbuchstabe
24.02.2013 14:51:16
fcs
Hallo Kurt,
hier eine Beispieldatei mit Userform und den entsprechenden Makros.
https://www.herber.de/bbs/user/84040.xls
Gruß
Franz

Tausend DANK Franz Super gemacht -)
24.02.2013 19:35:12
kurt
Guten Abend Franz,
sehr nett, danke !!!
mfg Kurt K

Kleine Frage noch, bitte
24.02.2013 19:40:09
kurt
Hallo Franz,
der einfachheithalber kann immer kleine Buchstaben eingeben, WIE ?
Was muß ich ändern ?
mfg Kurt K

AW: Kleine Frage noch, bitte
24.02.2013 22:59:14
fcs
Hallo Kurt,
das wurde jetzt etwas komplizierter als gedacht.
Gruß
Franz
Hier die Teile im Userformcode, in denen du Anpassungen machen musst:
Option Explicit
Private varData() 'Array für Daten aus Tabelle Lager
Private bolDoubleklick As Boolean                                               '##neu
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
bolDoubleklick = True                                                   '##neu
With Me.ListBox1
If .ListIndex  -1 Then
Me.TextBox1 = .List(.ListIndex, 0)
Me.TextBox1.Tag = Format(.List(.ListIndex, 4), "0") 'Zeilenummer
Me.TextBox2 = .List(.ListIndex, 1)
Me.TextBox3 = .List(.ListIndex, 2)
Me.TextBox4 = .List(.ListIndex, 3)
End If
End With
bolDoubleklick = False                                                   '##neu
End Sub
Private Sub TextBox1_Change()
If bolDoubleklick = True Then Exit Sub
Dim lZeile As Long, lSpalte As Long
Dim iLiBo As Integer
Dim sSuchbegriff As String
Dim arrTemp()
With Me.TextBox1
If Len(.Value) = 1 Then
sSuchbegriff = UCase(.Value)                                         '##geändert
.Tag = ""
Me.TextBox2 = ""
Me.TextBox3 = ""
Me.TextBox4 = ""
ListBox1.Clear
For lZeile = LBound(varData, 1) To UBound(varData, 1)
If UCase(Left(varData(lZeile, 1), Len(sSuchbegriff))) = sSuchbegriff Then '##geändert
iLiBo = iLiBo + 1
ReDim Preserve arrTemp(1 To 5, 1 To iLiBo)
For lSpalte = 1 To 5
arrTemp(lSpalte, iLiBo) = varData(lZeile, lSpalte)
Next
End If
Next lZeile
If iLiBo = 0 Then
If Me.ckbMeldung = True Then
MsgBox "Zum Suchbegriff """ & sSuchbegriff & """ wurde kein Eintrag gefunden.", _
vbInformation + vbOKOnly, " Hinweis für " & Application.UserName
End If
Else
Call Fill_Listbox(strBoxName:="Listbox1", Daten:=arrTemp, bolTranspose:=True)
Erase arrTemp
End If
End If
End With
End Sub

Anzeige
Aber SUPER gelöst, DANKE Franz -)
25.02.2013 17:46:11
kurt
Hallo Franz,
danke das Du nochmals geholfen hast.
Funktioniert Klasse.
mfg Kurt K

Danke für die Unterstützung
24.02.2013 14:07:47
kurt
Hallo Franz,
habe das Thema jetzt so gelassen, verzichte auf das Auswählen in
der TextBox. In der Listbox wird eh alles angezeigt.
Danke und schönen Sonntag,
mfg Kurt K

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige