Avatar billede smoothj Nybegynder
05. marts 2004 - 14:48 Der er 9 kommentarer og
1 løsning

Rekursivt gennemløb af træstruktur - take 2

Nu virker søgningen (se evt. mit tidligere spørgsmål), men jeg får en eller anden form for wildcardsøgning på navnet f.eks. finder den også optal 1.csv når jeg søger på optal.csv. Min kode er lige nu:

Option Explicit
Dim StartMappe As String
Dim FilNavn As String
Dim FilTaeller As Integer
Private Sub Rekursiv()

StartMappe = "c:\temp"
FilNavn = "optal.csv"

With Application.FileSearch
   
    .NewSearch
    .LookIn = StartMappe
    .SearchSubFolders = True
    .FileName = FilNavn
    .Execute
   
    If .FoundFiles.Count > 0 Then
     
      For FilTaeller = 1 To .FoundFiles.Count
   
        Debug.Print .FoundFiles(FilTaeller)
     
      Next FilTaeller
     
    Else
   
        MsgBox ("Ingen data fundet")
       
    End If
 
End With
 
End Sub

Jeg har prøvet at lægge en right() udenom og så sige jeg kun vil se hvis den fulde sti ender på optal.csv, men den er åbenbart case-sensitive så så går det galt med opTal.cSv f.eks.

Tak

:o]
Avatar billede bak Forsker
05. marts 2004 - 17:14 #1
hvilken ver. af excel bruger.
i xl2000 og xp er filesearch ikke casesensitiv
Avatar billede bak Forsker
05. marts 2004 - 17:14 #2
hvilken ver. af excel bruger. =
hvilken ver.  af excel bruger du ?
Avatar billede smoothj Nybegynder
05. marts 2004 - 17:22 #3
97
Avatar billede smoothj Nybegynder
05. marts 2004 - 17:25 #4
Men det er ikke fordi .filesearch er casesensitiv - den giver mig "optal 1.csv" selv om jeg søger på "optal.csv".

Det var egentlig det jeg gerne ville have til at virke

:o]
Avatar billede bak Forsker
05. marts 2004 - 17:41 #5
Ja det er s.. mystisk. Jeg kan ikke få den til at fejle det samme, men jeg har ikke xl97 umiddelbart ved hånden.
Avatar billede bak Forsker
06. marts 2004 - 18:18 #6
OK, jeg har testet med XL97 og kan nu godt se problemet :-)
XL97's filesearch virker ikke helt som de nyere versioner, men det kan der da rettes op på. Jeg har tilføjet lidt.

Private Sub Rekursiv()
Dim StartMappe As String
Dim FilNavn As String
Dim FilTaeller As Integer
Dim Test As String
StartMappe = "c:\temp"
FilNavn = "optal.csv"

With Application.FileSearch

    .NewSearch
    .LookIn = StartMappe
    .SearchSubFolders = True
    .Filename = FilNavn
    .Execute
    If .FoundFiles.Count > 0 Then
        For FilTaeller = 1 To .FoundFiles.Count
            Test = UCase(Dir(.FoundFiles(FilTaeller)))
            If Test = UCase(FilNavn) Then
                Debug.Print .FoundFiles(FilTaeller)
            End If
        Next FilTaeller
    Else
        MsgBox ("Ingen data fundet")
    End If
End With
End Sub
Avatar billede bak Forsker
06. marts 2004 - 18:22 #7
Test = UCase(Dir(.FoundFiles(FilTaeller)))

Finder filnavnet ud fra den komplette sti, som .Foundfiles giver og laver det om til store bogstaver.

If Test = UCase(FilNavn) Then
Chekker om det fundne filnavn er = det søgte filnavn.
Avatar billede hugopedersen Nybegynder
07. marts 2004 - 20:19 #8
http://www.eksperten.dk/spm/473475

Før smoothj nævner det har jeg ikke lagt mærke til at rutinen jeg bruger finder forkerte filnavne. Jeg har så testet det efter og den gør det rent faktisk på både 2000 og XP - 2003 har jeg ikke testet endnu.

Nogen gange var det rart med et nummer til Bill Gates :-)
Avatar billede hugopedersen Nybegynder
07. marts 2004 - 20:30 #9
PS: Excel 2003 har samme fejl i søgerutinen - har lige testet.
Avatar billede smoothj Nybegynder
08. marts 2004 - 08:30 #10
Tak bak SÅ lykkedes det. Som du så i mit spørgsmål om CaseSensitive var jeg åbenbart på rette vej, men nåede ikke helt frem uden dig.

:o]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester