Avatar billede spoi Nybegynder
27. september 2006 - 13:35 Der er 15 kommentarer og
1 løsning

hente data fra tekst fil

Så kommer jeg til næste spm

Er det muligt at hente data ind i et regneark fra en semikolon separeret fil.

Helst uden makro, Men makro er også ok

Via et pakkenummer skal jeg ind i en  fil og hente første værdi i hver række og placerede fortløbende i c7, c8, c9......

Det er synamisk idet pakkenummeret ændrer sig og så skal man ind i den dertil hørende fil.

LN
Avatar billede supertekst Ekspert
27. september 2006 - 13:43 #1
ja - men flere detaillerer ønskeligt. Send evt. en prøve på tekstfilen til:
pb@supertekst-it.dk

Hvad kan de tekstfiler, der skal indlæses, hedde?
Avatar billede x-lars Novice
27. september 2006 - 13:45 #2
Uden makro: Bare åbn filen, så starter guiden Import. I denne bliver du spurgt, om felterne er adskilt og hvordan. Her sætter du flueben i Semikolon. Så burde det gå helt af sig selv.

Har du allerede en lang ikke-adskilt streng stående i f.eks. A1 og skal have den delt ud på B1, C1, osv. Hvis tabellen nu kommer til at stå den "forkerte" vej, kan du vende den ved at kopiere tabellen og sætte den ind et andet sted ved at bruge Rediger > Indsæt speciel og check Transponer-boksen af. Så skulle den være der.

Med makro: Der skal jeg lige vide lidt mere: Ligger filerne altid i den samme folder? Er der en norm for navngivningen af filerne? Eller det tilfældigt?
Avatar billede x-lars Novice
27. september 2006 - 13:46 #3
Hov, der kom til at mangle noget i afsnit 2. Du skal bruge funktionen Data > Tekst til kolonner.
Avatar billede spoi Nybegynder
27. september 2006 - 13:56 #4
Det skal ske automatis når brugeren taster pakkenummer ind. Sådan noget med imort etc det duer ikke lige til pakkeriet.

Filerne ligger i samme folder feks fiktivt fundet på
\\hol\batch\0XXXX.txt

i felt c3 taster brugeren pakkenummeret XXXX

I teksfilen er der en masse linier første data i hver linie er varenummer bbbbbbb(6-8 tegn)

Og det er varenummeret for hver linie der skal ind i c7,c8.......

LN
Avatar billede spoi Nybegynder
27. september 2006 - 13:58 #5
Hvis det kan hjælpe må data godt blive smidt ind i et tomt ark(feks Ark4) og så kan der måske laves nogle opslag derfra.

LN
Avatar billede supertekst Ekspert
27. september 2006 - 14:11 #6
her er et udkast:
Koden anbringes i VBA Ark1 -indlæsning af pakkenr kan godt ændret til celle C3 - men det kom jo først senere.

Const startRæk = 7
Const startKol = 3
Dim pakkenr
Dim sti
Sub start()
    findsti
   
    pakkenr = InputBox("Tast pakkeNr", "Indlæsning af tekstfil")
    indlæsFil
End Sub
Private Sub findsti()
    sti = ActiveWorkbook.Path
    If Right(sti, 1) <> "\" Then
        sti = sti + "\"
    End If
End Sub
Private Sub indlæsFil()
Dim ræk
    Open sti + pakkenr + ".txt" For Input As #1
   
    ræk = startRæk
    While Not EOF(1)
        Input #1, linie
        Cells(ræk, startKol) = linie
        ræk = ræk + 1
    Wend
   
    Close (1)
End Sub
Avatar billede supertekst Ekspert
27. september 2006 - 14:53 #7
Med indtastning af pakkenr i C3:
(Stien til filerne skal evt.korrigeres)

Const startRæk = 7
Const startKol = 3
Dim pakkenr
Dim sti
Private Sub findsti()
    sti = ActiveWorkbook.Path
    If Right(sti, 1) <> "\" Then
        sti = sti + "\"
    End If
End Sub
Private Sub indlæsFil()
Dim ræk
    On Error GoTo filFejl
   
    Open sti + pakkenr + ".txt" For Input As #1
   
    ræk = startRæk
    While Not EOF(1)
        Input #1, linie
        Cells(ræk, startKol) = linie
        ræk = ræk + 1
    Wend
   
    Close (1)
    Exit Sub
   
filFejl:
    MsgBox ("Tekstfilen " + CStr(pakkenr) + " kan ikke findes!")
End Sub
Private Sub worksheet_change(ByVal target As Excel.Range)
Dim r, k
'    Cells.ClearContents
    findsti

    If target.Row = 3 And target.Column = 3 Then
        pakkenr = CStr(Cells(3, 3))
        If pakkenr <> "" Then
            indlæsFil
        End If
    End If
End Sub
Avatar billede spoi Nybegynder
02. oktober 2006 - 11:54 #8
Hej jeg skal nok melde tilbage i denne uge, men har ikke lige haft tid til at se på det.

LN
Avatar billede supertekst Ekspert
02. oktober 2006 - 17:29 #9
OK
Avatar billede spoi Nybegynder
06. oktober 2006 - 07:37 #10
Hej igen

Det viser sig nu at data står på plads nr 11 i de semikolon separerede filer. Nogen der kan hjælpe videre her.

LN
Avatar billede spoi Nybegynder
06. oktober 2006 - 08:05 #11
Stien er helt præcis H:\\pakkeinstruktioner\TEST af makro\0xxxx.txt

Det eneste i stien der er variabelt er xxxx i filnavnet. som skrives i c3

LN
Avatar billede spoi Nybegynder
06. oktober 2006 - 08:06 #12
Vil du have 100 point ekstra for at skrive ud for linierne hvad der sker?

LN
Avatar billede supertekst Ekspert
06. oktober 2006 - 11:01 #13
Nej - 200 er fint - det med plads 11 finder vi ud af - vender tilbage.
Avatar billede spoi Nybegynder
06. oktober 2006 - 12:28 #14
Hej har lidt problemer med stien. det har jeg i første omgang løst ved at tage en kopi af tekstfilerne og lægge dem så din kode passer ;O)

Nu kører makroen i hvert fald men den tager alle værdier med og smider dem fortløbende i de forskellige celler c.. nedad. Nogen steder står der blot en værdi og i andre celler 3 værdier. Men den henter i det mindste *SS*

LN
Avatar billede spoi Nybegynder
09. oktober 2006 - 11:17 #15
point for indsatsen. Læg et svar ;O)

Tak for hjælpen

LN
Avatar billede supertekst Ekspert
09. oktober 2006 - 11:43 #16
Selv tak
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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