Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
200to204
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
200to204
200to204
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehler bei Find-Methode

Fehler bei Find-Methode
15.01.2003 14:00:08
Matthias
Hallo,

ich möchte mit dem nachfolgenden Code die Position einer "WKN" in einer Tabelle finden. Wenn jedoch in dem angegeben Bereich keine "WKN" gefunden werden kann kommt es zur Fehlermeldung. Wie kann ich erreichen z.B. mit einer If-Abrage ob die Find-Methode überhaupt ein Ergebnis liefert, so daß ich die Schleife beenden kann?

For x = 1 To 65000
introwbestand = .Range(Cells(x, 11), Cells(65000, 11)).Find(WKN, LookAt:=xlWhole).Row
If .Cells(introwbestand, 1) = Fondsnr Then
gesamtbest = .Cells(introwbestand, 17)
Exit For
End If
Next

Vielen Dank.

Matthias

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Fehler bei Find-Methode
15.01.2003 14:13:46
Hajo_zi
Hallo Matthias


Option Explicit

Sub Matthias()
Dim introwbestand As Object
Dim X As Long
Dim Wkn As String, Fondsnr As String, gesamtbest As String
Wkn = "Test"
Fondsnr = "Test"
With ActiveSheet
For X = 1 To 65000
Set introwbestand = .Range(Cells(X, 11), Cells(65000, 11)).Find(Wkn, LookAt:=xlWhole)
If Not introwbestand Is Nothing Then
If .Cells(introwbestand.Row, 1) = Fondsnr Then
gesamtbest = .Cells(introwbestand.Row, 17)
Exit For
End If
Else
' nicht gefunden
Exit For
End If
Next
End With
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Der code ist mir einweg schleierhaft. Warum eine For Next Schleife??

Gruß Hajo

Anzeige
Re: Fehler bei Find-Methode
15.01.2003 15:03:53
Matthias
Hallo Hajo,

vielen Dank für den Code!

Die Schleife habe ich dafür gedacht, daß die Range zum Find begrenzt wird, so daß vorhergefundene Ergebnisse aus der Suche ausscheiden. Gibt es eine bessere Lösung?

Gruß

Matthias

Re: Fehler bei Find-Methode
15.01.2003 15:08:30
Hajo_zi
Hallo Matthias

den Bereich hast Du doch schon mit
Set introwbestand = .Range(Cells(X, 11), Cells(65000, 11)).Find(Wkn, LookAt:=xlWhole)

eingegrenzt.

Es würe Theoretisch ohne Exit For so laufen
im ersten Durchlauf wird von 1 bis 65000 gesucht
im zweiten von 2 bis 65000 usw.

die Frage die sich daraus ergibt warum nicht die gesamte Spalte
Range("K:K") und die For next schleife löschen. Ich vermute mal du willst nur den ersten Wert finden??

Gruß hajo

Anzeige
Re: Fehler bei Find-Methode
15.01.2003 15:17:16
Matthias
Hallo Hajo,

ich möchte in Spalte 11 eine WKN finden und wenn die in der gleichen Reihe Spalte 1 die Fondsnr xy steht die Variable Gesamtbestand ( reihe, 17) als Ergebnis ausgewiesen bekommen.

Gruß

Matthias

Re: Fehler bei Find-Methode
15.01.2003 15:32:30
Hajo_zi
Hallo Matthias

also´kommt der Begriff mehrmalsin der Spalte K vor??

versuchs mal hiermit


Option Explicit

Sub Matthias()
Dim introwbestand As Object
Dim X As Long
Dim Wkn As String, Fondsnr As String, gesamtbest As String
Dim Erster As Long
Dim LoLetzte As Long
If [K65536] = "" Then
LoLetzte = [K65536].End(xlUp).Row
Else
LoLetzte = 65536
End If
Wkn = "Test"
Fondsnr = "Test"
With ActiveSheet
Erster = 1
Do
Set introwbestand = Range(Cells(Erster, 11), Cells(LoLetzte, 11)).Find(Wkn, _
LookAt:=xlWhole)
If introwbestand Is Nothing Then
Beep
MsgBox "Suchbegriff wurde nicht gefunden!"
Exit Do
Else
If .Cells(introwbestand.Row, 1) = Fondsnr Then
gesamtbest = .Cells(introwbestand.Row, 17)
Exit Do
Else
If introwbestand.Row = LoLetzte Then
MsgBox "Suchbegriff wurde nicht gefunden!"
Exit Do
Else
Erster = introwbestand.Row
End If
End If
End If
Loop
End With
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Hajo

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige