Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Code findet Wert nicht, ich schon

Code findet Wert nicht, ich schon
Abu
Hallo zusammen,
wieder ein Problem und ich komm nicht allein weiter.
Nachstehender Code steht in einer Schleife (zuvor wird der User mittels einer Inputbox nach einem Wert gefragt) und oeffnet nacheinander ein paar Dateien und filtert nach dem Wert den der User eingegeben hat.
Der Code findet den Wert nicht!
Unterbreche ich den Code nachdem die Datei geoeffnet wurde, filter selber, findet er den Wert auch nicht!
Offne ich die Datei selber, setze den Autofilter und filtere - findet er den Wert wohl!
Wie kann das sein? Wuerde mich ueber Anwort freuen.
Beste Gruesse
Abu

Workbooks.Open Filename:=Pfad1
With Worksheets("Sheet1")
Rows("1:1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=vErgebnis

Anzeige
AW: Code findet Wert nicht, ich schon
24.04.2012 17:42:03
Hajo_Zi
deine Variable ist nicht belegt.
Select, Activate usw. ist in VBA zu 99,9% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.

AW: Code findet Wert nicht, ich schon
25.04.2012 08:55:17
Abu
Hallo Hajo,
auch ohne Stoeckchen schmeissen komme ich leider nicht zum gewuenschten Ergebnis. Was meinst du mit 'deine Variable ist nicht belegt'?
Die Variable wird durch Inputbox belegt. Halte ich den Code an und checke in der geoeffneten Datei was als 'Custom-Filter' gesetzt wurde, sehe ich den Wert der zuvor in der Inputbox eingegen wurde aber er findet nichts.
Beste Gruesse
Abu

With Worksheets("Sheet1")
.AutoFilterMode = False
.Range("A1:T1").AutoFilter
.Range("A1:T1").AutoFilter Field:=3, Criteria1:=vSuchwert

Anzeige
AW: Code findet Wert nicht, ich schon
25.04.2012 09:00:07
hary
Hallo Abu
Ist evtl. das Format von suchwert und Wert in der Tabelle unterschiedlich?
Wenn Du Text suchst und es ist eine Zahl.
gruss hary
AW: Code findet Wert nicht, ich schon
25.04.2012 09:12:15
Abu
Hallo Hary,
Habe ich auch schon gedacht aber die Variable ist als String deklariert und ich suche nach Werten wie dieser hier: S000185704 (in Tabelle das Format 'General')
Was ich so komisch finde ist das wenn ich ich selber in der Datei filtere (die durch VBA geoeffnet wurde) finde ich den Wert auch nicht. Wenn ich die Datei aber selber oeffne, dann filtert er richtig.
Gruesse
Abu
Anzeige
AW: Code findet Wert nicht, ich schon
25.04.2012 16:50:41
Hajo_Zi
ich muss Blind sein, ich sehe keine Inputbox.
Gruß Hajo
AW: Code findet Wert nicht, ich schon
25.04.2012 09:57:51
Cathy
Hallo Abu,
sind vielleicht noch irgendwelche Leerzeichen drin? Entweder im Suchstring oder in der Tabelle?
Beste Grüße
Cathy
AW: Code findet Wert nicht, ich schon
25.04.2012 09:58:53
Cathy
sorry, noch auf offen gesetzt ....
Anzeige
Wo ist der Wurm
25.04.2012 10:33:54
Abu
Hallo Cathy,
Sollte alles passen. Habe jetzt mal nur den Code fuer inputbox, oeffnen und filtern genommen und siehe da, es klappt.
Also steckt der Wurm wohl irgendwo anders, hier mal der komplette Code:

Sub SSuchen()
Dim sPfad$, sDatei$, sTab$, sRange$, vSuchwert$, sPath$, sPath1$, Pfad1$
Dim vErgebnis, oApp As Excel.Application, rngFund As Range
Dim monat As Integer
Dim ExcelApp As Excel.Application
Dim wbNew As Excel.Workbook
monat = Month(Date)
sPath = "G:\Sites\Beringe2\xxx\xxx\Control Tower\Express file\" & Year(Date) & "\"
sPath1 = "G:\Sites\Beringe2\xxx\xxx\Control Tower\Express file\" & Year(Date) - 1 & "\"
sPfad = sPath
sTab = "Sheet1"
sRange = "$C:$C"
vSuchwert = InputBox("Please type your S-number!")
Do
Set oApp = New Excel.Application
sDatei = Year(Date) & " Month " & monat & ".xls" 'Datei
If Dir(sPfad & sDatei) = "" Then
sDatei = Year(Date) & " Month " & monat - 1 & ".xls"
End If
With oApp.Workbooks.Open(sPfad & sDatei, ReadOnly:=True)
With .Sheets(sTab)
vErgebnis = True
Set rngFund = .Range(sRange).Columns(1).Find(what:=vSuchwert, LookIn:=xlValues,  _
_
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not rngFund Is Nothing Then
vErgebnis = vSuchwert
End If
End With
.Close False
End With
oApp.Quit
Set oApp = Nothing
monat = monat - 1
Loop Until TypeName(vErgebnis)  "Boolean" Or monat = 0
If TypeName(vErgebnis) = "Boolean" Then
monat = 12
Do
Set oApp = New Excel.Application
sPfad = sPath1
sDatei = Year(Date) - 1 & " Month " & monat & ".xls"
If Dir(sPfad & sDatei) = "" Then
sDatei = Year(Date) - 1 & " Month " & monat - 1 & ".xls"
End If
With oApp.Workbooks.Open(sPfad & sDatei, ReadOnly:=True)
With .Sheets(sTab)
vErgebnis = True
Set rngFund = .Range(sRange).Columns(1).Find(what:=vSuchwert, LookIn:= _
xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not rngFund Is Nothing Then
vErgebnis = vSuchwert
End If
End With
.Close False
End With
oApp.Quit
Set oApp = Nothing
monat = monat - 1
Loop Until TypeName(vErgebnis)  "Boolean" Or monat = 0
End If
monat = monat + 1
If vErgebnis = True Then
MsgBox "Suchwert: " & sSuchwert & " wurde nicht gefunden!", vbExclamation
Else
Pfad1 = "G:\Sites\Beringe2\xxx\xxx\Control Tower\Express file\2011\2011 Month " & monat  _
& ".xls"
Workbooks.Open Filename:=Pfad1
With Worksheets("Sheet1")
.AutoFilterMode = False
.Range("A1:T1").AutoFilter
.Range("A1:T1").AutoFilter Field:=3, Criteria1:=vErgebnis
loLetzte = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.Count, 3).End(xlUp).Row,  _
Rows.Count)
Set rng = Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
Workbooks.Add
rng.Copy Range("A1")
Rows(1).Delete
Workbooks("2011 Month " & monat & ".xls").Close SaveChanges:=False
End With
End If
End Sub

Anzeige
Fehler gefunden
25.04.2012 15:50:30
Abu
Wer den Unterschied zwischen 2011 und 2012 nicht erkennt, dem kann auch kein Forum helfen!
Sorry
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige