27. november 2008 - 21:50Der er
7 kommentarer og 1 løsning
Søg nummer i ekstern .txt fil
Hej
Kan man lave noget smart, således at excel laver et tjek om et ordrenummer findes i en .txt fil i en mappe på computeren?
Jeg har et excelark, hvor der i kollone E står et ordrenummer, og i kollone J vil jeg så gerne have et "JA / NEJ" alt efter om dette ordrenummer findes i en tekstfil som er placeret i en anden mappe
den nemmeste måde vil jeg mene at importere tekstfilen i et dataark (bare en fane, jeg har kaldt dataark, du kan evt. vælge formater>ark>skjul ark, så brugeren ikke kan se det...
import af tekstfil, laves således : data> import af eksterne data > importer data, der kan man vælge tekstfil i typen... så får man en guide op hvordan det importeres..
importen kan så gøres sådan at du enten højreklikker på området hvor den sætter data ind og vælger opdater, du kan også vælge egenskaber for dataområde , og vælge at den skal opdatere ved åbning af fil.. (så er den opdateret hver gang, og du skal ikke kode dig ud af problemet)..
så kan du lave en formel for at tjekke om det findes..
=LOPSLAG(E1;dataark!$A:$A;1;FALSK) -(syntax for lopslag er (celle der skal slås op, område (husk $ , da den ellers flytter området man slår op i, OBS opslagsværdien SKAL stå i første kolonne)),kolonnenr man får værdien fra, falsk (falsk er at værdien skal være magen til, sand, så kan ordrenr 100 0g 101 godt give samme resultat))
den giver en I/T fejl, hvis data ikke er der, og ordrenr hvis den findes. Derfor kan man gøre følgende:
Importen kan jeg godt lave, men det er for stort et arbejde at importere.
Der skal blot søges efter en værdi. Lige pt bruger jeg vindows til at søge i mappen med filer, dette er hurtigere end at importere, dog ville det jo være endnu hurtigere hvis jeg kunne søge direkte fra excel
du skal jo kun lave importen en gang - så opdaterer du bare importen (som beskrevet)
alternativt, kan du lave en funktion i excel (VBA) - men den er langt mere bøvlet end at importere. Nedenstående , vil kigge i teksten efter teksten i funktionen =findtxt(celle, eller "tekst") og returnere ja eller nej.
MEN den er pt. følsom for store og små bogstaver (fjern ' foran find_txt = lcase... så er den ikke , desuden vil den returnerer ja, hvis du søger efter 1001 og der i teksten står 8881001888888888 - ellers skal den koden til også at finde mellemrum)..
jeg bruger selv den funktion (dog med html data), men importen er langt det nemmeste - synes jeg..
Public Function findtxt(ByVal find_txt As String) As String Dim L As Long Dim S As String Dim FileNum As Integer Dim txtfilnavn As String txtfilnavn = "c:\test.txt" 'det er her filstien skal stå FileNum = FreeFile Open txtfilnavn For Binary Access Read Shared As #FileNum L = LOF(FileNum) S = Space$(L) Get #1, , S Close #FileNum 'find_txt = lcase(find_txt) 'fjern anførelsestegnet for at tilføje at store og små bogstaver er forskellige If InStr(1, S, find_txt) Then findtxt = "Ja" Else findtxt = "Nej" End If
mine EDIFACT dokumenter ligger også som .txt filer
Ja windows live search kan også bruges, men det kræver stadigvæk at jeg søger efter 1 fil af gangen, grunden til dette spørgsmål, vara at jeg havde en excelliste, som jeg gerne ville kunne afsøge en hel række ordrenumre på en gang.
Ordrenumre kan godt være der flere gange, og der kan være flere forskellige ordrenumre pr fil.
Jeg skal blot bruge et tjek, findes ordrenr = JA / NEJ
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.