Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
756to760
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem bei Suche mit UserForm

Problem bei Suche mit UserForm
22.04.2006 00:07:37
Hans
Hallo . Ich habe folgendes Skript gefunden das in meiner Datendatei Daten.xls in der Spalte E nach Namen sucht den man in UserForm1 eingibt. Dort werden auch alle Namen angezeit. Aber wie kann ich machen das dort neben den Namen noch weitere Daten wir Strasse und Ort ( Zb. Spalte F und G ) angezeit werden so dass man den Namen auch eindeutig zuordnen kann.....
Option Explicit

Private Sub cmdCancel_Click()
Unload Me
End Sub


Private Sub cmdMark_Click()
Dim i As Integer
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then Cells(.List(i, 1), 10) = "Z"
Next
End With
End Sub


Private Sub cmdSearch_Click()
Dim rng As Range
Dim sFirst As String
Dim i As Integer
ListBox1.Clear
Set rng = Workbooks("Daten.xls").Worksheets("Daten erfassung").Range("E:E").Find(What:=txtSearch, LookIn:=xlValues, _
LookAt:=xlPart, After:=Range("E65536"))
If Not rng Is Nothing Then
sFirst = rng.Address
ListBox1.AddItem rng, i
ListBox1.List(i, 1) = rng.Row
i = i + 1
Do
Set rng = Workbooks("Daten.xls").Worksheets("Daten erfassung").Range("E:E").FindNext(After:=rng)
If rng.Address = sFirst Then Exit Do
ListBox1.AddItem rng, i
ListBox1.List(i, 1) = rng.Row
i = i + 1
Loop
Else
ListBox1.AddItem "Nichts gefunden!"
End If
End Sub


Private Sub txtSearch_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then cmdSearch_Click
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem bei Suche mit UserForm
22.04.2006 16:13:33
Ralf
Hi Hans,
ergänze die entsprechenden Codezeilen (AddItem) so:
ListBox1.AddItem rng & ", " & rng.offset(0,1) & ", " & rng.offset(0,2), i
offset 1 = Spalte F und offset 2 = G
Ciao, Ralf
AW: Problem bei Suche mit UserForm
24.04.2006 19:06:16
Hans
Danke . Das funktioniert Prima !
Habe nun ein weiteres Problem ,
Nachdem ich das Feld mit dem Namen angeklickt markiert er mit diesem Skript die Spalte A
Ich möchte aber nur das Feld A in der gewählten Zeile aktivieren ...

Private Sub cmdMark_Click()
Dim i As Integer
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then Range("A:A").Select
Next
End With
End Sub

Viele Dank sagt
der Hans
Anzeige
AW: Problem bei Suche mit UserForm
24.04.2006 21:00:07
Ralf
Hi Hans,
Feld = Zelle? Welche Zelle denn? A1? A2? A71? Statt 'Range("A:A"")' also Range("A1"). Oder wenn Du mit Variablen arbeitest:
Dim x#
x = 71
Range("A" & x).select
Oder, bin mir nicht mehr ganz sicher ob das so war, wenn in der Listbox die Adresse steht:
Range(Listbox1.list).select
Ciao, Ralf
AW: Problem bei Suche mit UserForm
24.04.2006 21:10:01
Hans
Hallo Ralf
Es wird ja nach Namen gesucht. Mehrere Namen in verschiedenen Zeilen werden gefunden ( Namen stehen untereinander in Spalte E ) Man wählt den Gewünschten Namen aus.
In Spalte A steht eine Nummer
Ich möchte das in der Zeile die ausgewählt wird die Nummer in der Zelle A aktiviert wird und dann nach z.B H1 kopiert wird
Falls du mir helfen kannst wäre ich dir sehr Dankbar.
Gruß Hans
Anzeige
AW: Problem bei Suche mit UserForm
25.04.2006 00:06:05
Ralf
Hi Hans,
in cmdSearch die AddItemZeilen ändern in:
ListBox1.AddItem rng & " " & rng.Offset(0, 1) & ", " & rng.Offset(0, 2), i
(Ob nun Leerzeichen. Komma oder was auch immer, das ist Deine Entscheidung)
Wenn der Wert von der markierten Zeile in Spalte A in Zelle H1 erscheinen soll die Prozedur cmdMark_Click so abändern:

Private Sub cmdMark_Click()
Dim i As Integer
With ListBox1
For i = 0 To .ListCount - 1
'MsgBox ListBox1.List(i, 1)
If .Selected(i) Then Range("H1") = ListBox1.List(i, 1)
Next
End With
End Sub

Ciao, Ralf
Anzeige
AW: Problem bei Suche mit UserForm
25.04.2006 15:15:37
Hans
Hi Ralf , vielen Dank .
Es funktioniert wunderbar bis auf eine Kleinigkeit.
Wenn man die Erste Zeile in der Listbox anklickt überträgt er die Nummer nicht nach H1
Hier noch einmal das Skript wie ich es bislang habe.
https://www.herber.de/bbs/user/33098.zip
Option Explicit

Private Sub cmdCancel_Click()
Unload Me
End Sub


Private Sub cmdMark_Click()
Dim i As Integer
With ListBox1
For i = 0 To .ListCount = -1
If .Selected(i) Then Range("H1") = ListBox1.List(i, 1)
Next
End With
End Sub


Private Sub cmdSearch_Click()
Dim rng As Range
Dim sFirst As String
Dim i As Integer
ListBox1.Clear
Set rng = Range("A:A").Find(What:=txtSearch, LookIn:=xlValues, _
LookAt:=xlPart, After:=Range("A65536"))
If Not rng Is Nothing Then
sFirst = rng.Address
ListBox1.AddItem rng & " , " & rng.Offset(0, 1) & " , " & rng.Offset(0, 2), i
i = i + 1
Do
Set rng = Range("A:A").FindNext(After:=rng)
If rng.Address = sFirst Then Exit Do
ListBox1.AddItem rng & " , " & rng.Offset(0, 1) & " , " & rng.Offset(0, 2), i
ListBox1.List(i, 1) = rng.Row
i = i + 1
Loop
Else
ListBox1.AddItem "Nichts gefunden!"
End If
End Sub


Private Sub txtSearch_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then cmdSearch_Click
End Sub

Anzeige
AW: Problem bei Suche mit UserForm
25.04.2006 20:56:31
Ralf
...sorry... in cmdMark muss es richtig heissen:
If .Selected(i) Then Range("H1") = Range("A" & ListBox1.List(i, 1))
Also den Wert von Ax, nicht die Zeilennummer übertragen. Oder?
Lade mir deshalb nicht Dein Bsp. herunter.
Ciao, Ralf
Problem gelöst
25.04.2006 22:56:02
Hans
Danke Ralf . Alles funktioniert jetzt wunderbar !
Gruss Hans

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige