Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
772to776
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
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Telefonverzeichnis

Telefonverzeichnis
22.06.2006 14:18:30
Tom
Hallo,
ich habe eine Datei, die bis vor kurzem einwandfrei funktioniert hat.
https://www.herber.de/bbs/user/34543.xls
In A3 wird der Suchbegriff eingegeben - und der Cursor springt sofort zur gefundenen Zelle.
Wer hat ne Lösung, warum der Code nicht mehr funktioniert.
Danke und Gruß
Tom

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Telefonverzeichnis
22.06.2006 17:36:37
Erich
Hallo Tom,
aus dem xlValues im Aufruf der Find-Methode ist wohl irgendwie ein xlValue geworden.
Wenn du das s wieder dranhängst, läuft es wieder.
Ich würds so schreiben:
    Set fnd = Range(SearchColumn & "5", SearchColumn & "65535").Find( _
what:=SearchTextFragment, LookIn:=xlValues, LookAt:=xlPart)
Noch eins:
Im SelectionChange solltest du die Ereignisbehandlung vorübergehend abschalten:
        Application.EnableEvents = False
Call SearchTextQuick(SearchTextFragment, SearchColumn)
Application.EnableEvents = True
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Telefonverzeichnis
23.06.2006 08:08:36
Tom
Hi Erich,
leider geht es noch nicht - habe ich den Code falsch eingegeben?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
Dim SearchColumn As String, SearchTextFragment As String
Dim MeldgText_1 As String, MeldgText_2 As String
MeldgText_1 = "Bitte mindestens 2 Zeichen "
MeldgText_2 = "Die Groß- oder Kleinschreibung spielt keine Rolle." & Chr(10) & Chr(10) _
& "(Bei weniger als 2 Zeichen erfolgt keine Suche!)"
Select Case ActiveCell.AddressLocal
Case Is = "$A$3"            ' Namen suchen
SearchColumn = "A"
SearchTextFragment = InputBox(MeldgText_1 & "des Namens eingeben." & Chr(10) & MeldgText_2, "Suchbegriff eingeben", , vbOKCancel)
If Len(SearchTextFragment) < 2 Then Exit Sub
Call SearchTextQuick(SearchTextFragment, SearchColumn)
End Select
Application.EnableEvents = True
End Sub

Sub SearchTextQuick(ByRef SearchTextFragment As String, ByRef SearchColumn As String)
Dim fnd As Variant
Set fnd = Range(SearchColumn & "5", SearchColumn & "65535").Find( _
what:=SearchTextFragment, LookIn:=xlValues, LookAt:=xlPart)
If fnd Is Nothing Then
fnd = MsgBox("Es wurde leider kein entsprechender Eintrag gefunden", 48, "Suche erfolglos ...")
Else
Range(fnd.AddressLocal).Activate
End If
Set fnd = Nothing
End Sub
Gruß
TOM
Anzeige
AW: Telefonverzeichnis
23.06.2006 11:17:01
Erich
Hallo Tom,
beim Find-Aufruf düfte das Leerzeichen vor dem Fortsetzungszeichen fehlen -
also ...Find( _ statt ...Find(_
Das sollte VBA angemeckert haben.
Da rng ein Range ist, habe ich es auch als solches deklariert, nicht als Variant.
Ich stell hier nochmal das ganze Modul zum Kopieren rein:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim SearchColumn As String, SearchTextFragment As String
Dim MeldgText_1 As String, MeldgText_2 As String
MeldgText_1 = "Bitte mindestens 2 Zeichen "
MeldgText_2 = "Die Groß- oder Kleinschreibung spielt keine Rolle." & Chr(10) & Chr(10) _
& "(Bei weniger als 2 Zeichen erfolgt keine Suche!)"
Select Case ActiveCell.AddressLocal
Case Is = "$A$3"            ' Namen suchen
SearchColumn = "A"
SearchTextFragment = InputBox(MeldgText_1 & "des Namens eingeben." _
& Chr(10) & MeldgText_2, "Suchbegriff eingeben", , vbOKCancel)
If Len(SearchTextFragment) < 2 Then Exit Sub
Application.EnableEvents = False
Call SearchTextQuick(SearchTextFragment, SearchColumn)
Application.EnableEvents = True
End Select
End Sub
Sub SearchTextQuick(ByRef SearchTextFragment As String, ByRef SearchColumn As String)
Dim fnd As Range
Set fnd = Range(SearchColumn & "5", SearchColumn & "65535").Find( _
what:=SearchTextFragment, LookIn:=xlValues, LookAt:=xlPart)
If fnd Is Nothing Then
MsgBox "Es wurde leider kein entsprechender Eintrag gefunden", 48, "Suche erfolglos ..."
Else
fnd.Activate
Set fnd = Nothing
End If
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Telefonverzeichnis
23.06.2006 11:27:34
Tom
Hi Erich,
danke, jetzt funktioniert es wieder einwandfrei!
TOM

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige