Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
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

Datensatz suchen

Datensatz suchen
ing.grohn
Hallo Forum,
mit folgender Routine such ich Datensätze:
Sub DatenSatzSuchen(Taste As String)
Dim Laenge As Integer
Dim Posi As Integer
Dim Zeile As String
Dim Erst As Integer
Dim Name As String
Dim frm2 As Object
Set frm2 = UserForm2
TestDateiName
Windows("Jutta-Adressen").Activate
Sheets("Tabelle1").Select
UserFormSpeichern
With frm2
If Name  .TextBox15.Value Then
On Error GoTo fehler
If Taste = "pgup" Then
Cells.Find(What:=.TextBox15.Value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, _
MatchCase:=False, SearchFormat:=False).Activate
Name = .TextBox15.Value
ElseIf Taste = "pgdn" Then
Cells.Find(What:=.TextBox15.Value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Name = .TextBox15.Value
ElseIf Taste = "enter" Then
Cells.Find(What:=.TextBox15.Value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Name = .TextBox15.Value
End If
Else
Cells.FindNext(After:=ActiveCell).Activate
End If
Zeile = ActiveCell.Address
Posi = InStr(2, Zeile, "$")
Laenge = Len(Zeile)
Zeile = Right(Zeile, Laenge - Posi)
.TextBox1.Value = Range("A" + Zeile).Value 'ActiveCell.Offset(0, -1).Value
.TextBox2.Value = Range("C" + Zeile).Value 'ActiveCell.Offset(0, 1).Value
.TextBox22.Value = Range("AE" + Zeile).Value
.TextBox23.Value = Range("AF" + Zeile).Value
.TextBox24.Value = Range("AG" + Zeile).Value
Exit Sub
fehler:
MsgBox "Ein Datensatz " & .TextBox15.Value & " konnte nicht gefunden werden"
End With
End Sub
funktioniert auch so wie ich will (jedenfalls bisher). Was bisher ein Vorteil war, nämlich dass der gesamte Satz durchsucht wurde, ist jetzt nicht mehr gut.
Was muß ich machen, damit die Suche auf z.B. auf die ersten 6 Spalten begrenzt ist?
Eine Antoert wäre sehr nett.
Mit freundlichen Grüßen
Albrecht

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datensatz suchen
03.02.2010 14:46:06
Josef
Hallo ALbrecht,

schreibe statt "Cells.Find(What:=....", "Range("A:F").Find(What:=....".
Warum du allerdings dreimal die gleiche Prozedur in dem If-ElseIf-Then konstruckt aufrufst, verstehe ich nicht.
Das kann man auch so schreiben "If Taste = "pgup" Or Taste = "pgdn" Or Taste = "enter" Then"

Gruß Sepp

AW: Datensatz suchen
03.02.2010 17:57:48
ing.grohn
Hallo Sepp,
vielen Dank für die Hilfe, Dein warum..? ist nur zum Teil berechtigt aber im Grunde richtig:
Ich habs jetzt verkürzt: PGDN und Enter sind zusammen, PGUP für sich: wegen SearchDirection:=xlPrevious, und SearchDirection:=xlNext
Trotzdem hats sehr geholfen
(übrigens, die Suchroutine stammt aus 2002 (ungefähr), damals hatte ich großen Respekt vor alles was objektorientiert ist)
viele Grüße
Albrecht
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige