Access-o-Mania

Office-Forum (Deutsch/German) => Microsoft Excel => Thema gestartet von: Pergus am November 26, 2015, 14:47:05

Titel: Find-Methode liefert Nothing zurück obwohl Suchtext mehrmals gefunden wird
Beitrag von: Pergus am November 26, 2015, 14:47:05
Hallo Excel-Freunde,

ich habe folgendes Problem:
Der 'Suchtext' wird in der Suchtabelle 'Adressen' mehrmals gefunden,
'Suchtext' wird auch korrekt übergeben an die Find-Funktion in der Initialisierung der UserForm 'Liste',
allerdings liefert mir dort Set c = .Find(Suchtext, LookIn:=xlValues) immer c = Nothing zurück, obwohl der Suchtext mehrmals gefunden wird. Find arbeitet aber korrekt.
Interessant dabei, gestern lief das Makro reibungslos, heute streikts?!?
Einzige Änderung meinerseits: Habe das Makro soweit abgeändert, dass die Listbox 4 Spalten anzeigt anstatt 1.

Hier das Makro, das von der Tabelle Projekte aus gestartet wird:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer
Stop
If Target.Column <> 5 Then Exit Sub
If Target.Cells <> "" Then
i = MsgBox("Möchten Sie einen anderen Kunden anstatt " & Target.Cells.Value & " als Gewinner des BVH eintragen?", vbExclamation + vbYesNo, "Änderung!")
If i = 7 Then Exit Sub
End If
If Target.Cells.Offset(0, -4) = "" Then
Target.Cells.Offset(0, -4).Select
i = MsgBox("Geben Sie zuerst ein Projekt ein!", vbExclamation + vbOKOnly, "Projekt fehlt!")
Exit Sub
End If
Suchtext = ""
Suchtext = InputBox("Bitte geben Sie hier den zu suchenden Kundennamen ein")
If Suchtext = "" Then Exit Sub
zelle = ActiveCell.Address
Liste.Show
End Sub


Im Modul1 habe ich Suchtext als Public deklariert: Public Suchtext As String

...und hier das Makro, das gestern noch bei mir, bzw. auch heute noch bei meinem Kollegen reibungslos läuft, bei mir eben nicht:

Private Sub UserForm_Initialize()
Dim blattProj As String
Dim z As Integer
Dim c As Range
Dim firstaddress As String
Dim funde(100)

blattProj = ActiveSheet.Name
Stop
z = 0

With Worksheets("ADRESSEN").Range("O:O")
Me.ListBox1.Clear
    On Error Resume Next
    Set c = .Find(Suchtext, LookIn:=xlValues)
    Stop
    If Not c Is Nothing Then
        firstaddress = c.Address
        Do
        z = z + 1
        funde(z) = c.Value
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstaddress
    End If
End With

For y = 1 To z
ListBox1.AddItem funde(y)
Next y

End Sub


Und hier der abgeänderte Code den ich insofern abgeändert habe, dass mir die Listbox 4 Spalten anzeigt anstatt eben nur eine, und zwar so:

Private Sub UserForm_Initialize()
Dim blattProj As String
Dim z As Integer
Dim c As Range
Dim firstaddress As String
Dim funde(100)

blattProj = ActiveSheet.Name
Stop
z = 0

Me.ListBox1.Clear
With Worksheets("ADRESSEN").Range("O:O")
    On Error Resume Next
    Set c = .Find(Suchtext, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstaddress = c.Address
    Do
        With Me.ListBox1
        .ColumnCount = 4
          .AddItem
          .List(.ListCount - 1, 0) = c.Value
          .List(.ListCount - 1, 1) = c.Offset(0, -9).Value
          .List(.ListCount - 1, 2) = c.Offset(0, -1).Value
          .List(.ListCount - 1, 3) = c.Offset(0, 1).Value
          .ColumnWidths = "8cm;6cm;2cm;8cm"
        End With
    Set c = .FindNext(c)
    Loop While Not c Is Nothing And c.Address <> firstaddress
    End If
End With

For y = 1 To z
ListBox1.AddItem funde(y)
Next y

End Sub


Diesen Code konnte ich allerdings nicht testen!

Hat jemand eine Idee, woran es liegen kann, dass die Find-Methode immer Nothing liefert, obwohl der Suchtext mehrmals gefunden wird? Habe schon viel gegoogelt, aber keine brauchbare Tipps oder Lösungen gefunden.

Bin dankbar für jede Hilfe.

Mfg Gustav
Titel: Re: Find-Methode liefert Nothing zurück obwohl Suchtext mehrmals gefunden wird
Beitrag von: Pergus am November 26, 2015, 17:54:52
??? ich habe keine Ahnung wie und was passiert ist ???

JETZT FUNKTIONIERT'S WIEDER EINWANDFREI !!!

Microsoft bleibt ein Mysterium ;-)
Titel: Re: Find-Methode liefert Nothing zurück obwohl Suchtext mehrmals gefunden wird
Beitrag von: Pergus am November 27, 2015, 11:40:31
...als Nachtrag: Habe jetz gefunden, woran es lag:

Set c = .Find(Suchtext, LookIn:=xlValues)

...sollte korrekt heißen:

Set c = .Find(Suchtext, LookIn:=xlValues, lookat:=xlPart)

Somit lag es einzig und allein daran, dass ich das 'lookat:=xlPart' aus Testzwecken entfernt hatte und nicht wieder geschrieben habe.

Ich nehme den Satz über Microsoft zurück und behaupte jetzt:

Das Problem sitzt meist vor dem Rechner!!! Zumindest in meinem Fall!!!  ;D ;D ;D

Lg an Alle
Titel: Re: Find-Methode liefert Nothing zurück obwohl Suchtext mehrmals gefunden wird
Beitrag von: MaggieMay am November 27, 2015, 19:52:06
Hallo Gustav,

manchmal hilft es auch einfach mal über sein Problem gesprochen zu haben. :-)
Titel: Re: Find-Methode liefert Nothing zurück obwohl Suchtext mehrmals gefunden wird
Beitrag von: Pergus am November 30, 2015, 15:28:04
...ganz genau MaggieMay, das hat gut getan!!!  ;D ;D ;D