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

Probleme mit .Find Methode

Probleme mit .Find Methode
15.08.2017 23:14:27
Heiko
Hallo Liebe VBA Gemeinschaft,
Folgendes Problem:
Es gibt 2 Workbooks: in wb2 wird nach Einträgen/ Instrumenten mit ClosingDate im aktuellen Monat gesucht. Sind diese identifiziert, wird über Suchbegriff = .Offset(k, -3).Value - eine Verbindung zu wb1 aufgebaut. Dort taucht der Suchbegriff irgendwo in Spalte B auf.
Die Aufgabe besteht darin den entsprechenden Suchbegriff in wb1 zu finden, und dann die gesamte betroffene Zeile mit Daten über quasi CutCopyPaste an den unteren Rand der Tabelle zu befördern.
Der Code funktioniert für die ersten "5 Treffer" (= übereinstimmende ClosingDate und übereinstimmender Suchbegriff) und wird wie gewollt ausgeführt.
Jedoch kommt es jetzt zum Problem, da bei einem/mehreren Datensätzen übereinstimmende ClosingDate(s) aber nicht übereinstimmende Suchbegriffe auftauchen (diese sollen lediglich über eine MsgBox dem Anwender ausgegeben werden!).
Dies führt leider dazu, dass die weiteren "Treffer" nicht mehr weiter im wb1 transferiert werden und stattdessen auch als fehlend über MsgBox als Info erscheinen.
Habe schon viel versucht und komme einfach nicht weiter...
Glaube es liegt an der .Find Methode.
Danke für Rat und Hilfe! Grüße Heiko
Option Explicit
Sub Find ()
Dim wb1, wb2 As Workbook
Dim CloseDate As Date
Dim Jahr, Monat, AktJahr, AktMonat As String
Dim LastRowWs1 as Integer
Dim rng As Range
Dim Suchbegriff As String
Dim k As Integer
Set wb1 = Workbooks.Open(Filename:= "C\...")
Set wb2 = Workbooks.Open(Filename:= "C\...")
LastRowWs1 = wb1.Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
wb2.Worksheets("Sheet1").Activate
With ActiveSheet.Range("E3")
Do Until .Offset(k,0).Value = ""
CloseDate = .Offset(k,0).Value
Jahr = Year(CloseDate)
Monat = Month(CloseDate)
AktJahr = Year(Now)
AktMonat = Month(Now)
If Monat = AktMonat And Jahr = AktJahr Then
Suchbegriff = .Offset(k, -3).Value
wb1.Worksheets("Sheet1").Activate
Set rng = ActiveSheet.Range("B:B")
If Not rng is Nothing Then
rng.EntireRow.Copy
ActiveSheet.Range("A" & LastRowWs1 + 1). PasteSpecial Paste:=xlPasteAll
Cells.(LastRowWs1 +1, 1).EntireRow.InteriorColor = vbYellow
rng.EntireRow.Delete
Else
MsgBox Suchbegriff & "wurde im wb2 nicht gefunden!", vbExlamation
End If
Application.CutCopyMode = False
End If
k=k+1
Loop
End With
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit .Find Methode
15.08.2017 23:17:40
Heiko
Nachtrag (wegen 2 Fehlern):
Set rng = ActiveSheet.Range("B:B").Find(Suchbegriff)
MsgBox Suchbegriff & "wurde im wb1 nicht gefunden!", vbExlamation
AW: Probleme mit .Find Methode
17.08.2017 21:55:15
Heiko
Nachtag 2
Das Problem beginnt ab:
Else
MsgBox Suchbegriff & "wurde im wb2 nicht gefunden!", vbExlamation
da, rng = Nothing gesetzt wird..
Set rng = wb1.Worksheets("Sheet1").Range("B:B").Find(Suchbegriff) führt dann nicht wieder dazu, dass das Programm den Suchbegriff wieder findet, da ab dann nur noch rng = Nothing
AW: Probleme mit .Find Methode
19.08.2017 11:52:37
Heiko
Nachtrag 3: Problem gelöst
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige