Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
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
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
Anzeige
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 ....
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

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige