Avatar billede mhp_dk Nybegynder
29. juni 2005 - 22:27 Der er 8 kommentarer og
1 løsning

Csv fil og Txt fil problemer igen

Jeg har forsøgt at importere en csv fil der ser sådan her ud:

Vare0;Tekst 1;4,00;150,92
Vare1;Tekst 2;4,00;130,52

med dette script:

Workbooks.OpenText Filename:=filnavn, _
Origin:=xlWindows, _
DataType:=xlDelimited, _
TextQualifier:=xlTextQualifierDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=True, _
Comma:=False, _
Space:=False

Har også prøvet at rename filen til .txt

Jeg kan ikke på den til at lave 4 kolonner med data de bliver altid sammlet i en, altså:

Vare0;Tekst 1;4,00;150,92
Vare1;Tekst 2;4,00;130,52

skulle være
A    B      C    D
Vare0 Tekst 1 4,00 150,92
Vare1 Tekst 2 4,00 130,52

Håber der er en som kan hjælpe, jeg har set tidligere svar/spørgsmål men uden held.
Avatar billede sjap Praktikant
29. juni 2005 - 22:36 #1
Ved ikke om det gør nogen forskel, men pr at ændre xlTextQualifierDoubleQuote til xlTextQualifierNone
Avatar billede bak Forsker
29. juni 2005 - 22:41 #2
Sub ImportCSV_DK()
Dim TempFile As String
Dim CSVFileName As String
  CSVFileName = Application.GetOpenFilename
  TempFile = Left(CSVFileName, Len(CSVFileName) - 4) & ".txt"
  FileCopy CSVFileName, TempFile
  Workbooks.OpenText FileName:=TempFile, DataType:=xlDelimited, Semicolon:=True, DecimalSeparator:=","
End Sub
Avatar billede bak Forsker
29. juni 2005 - 22:43 #3
Filen blive kopieret til txt-fil og indlæst
I stedet for FileCopy kan du bruge Name for bare at rename
Avatar billede mhp_dk Nybegynder
30. juni 2005 - 08:01 #4
Hej bak

Tænkte nok det var dig der skulle hjælpe :o)

Jeg er desværre ikke nogen haj, så jeg har vedlagt hele mit script (som er plukket af noget du tidligere har lavet), kan du så hjælpe med det endelige script ?
(Ved godt at der er nogle underlige linier i scriptet.)

Sub loadundone_Click()
Dim wbcsv As Workbook
Dim wks2 As Worksheet
Set wks2 = Workbooks("Dacs.xls").Sheets("Ark2") ' ændrer du selv

If wks2.Range("D1").Value = "" Then
    MsgBox "Der er ikke angivet et navn!", vbCritical
    Exit Sub
    End If

Dim map As String

map = "c:\"

a = Dir(map & "\*.txt")
If a = ".txt" Then
    MsgBox "Du har ikke gemt nogen filer", vbCritical
    Exit Sub
End If

ChDir "c:\"

filnavn = wks2.Range("d1").Value & ".txt"
Workbooks.OpenText Filename:=filnavn, _
Origin:=xlWindows, _
DataType:=xlDelimited, _
TextQualifier:=xlTextQualifierDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=True, _
Comma:=False, _
Space:=False

If filnavn = False Then
MsgBox "Filnavnet" & filnavn & " findes ikke."
  Exit Sub
  Else
  Set wbcsv = Workbooks.Open(filnavn)
 
End If
   
    wbcsv.Sheets(1).Range("A1:H30000").Copy wks2.Range("A2")
 
    wbcsv.Close savechanges:=False
   

End Sub
Avatar billede bak Forsker
30. juni 2005 - 22:33 #5
Nu ved jeg jo ikke helt hvad du vil opnå, men her er et bud:

Sub loadundone_Click()
Dim wbcsv As Workbook
Dim wks2 As Worksheet
Dim TempFile As String
Dim a As String
Dim map As String
Dim FilNavn As String

Set wks2 = Workbooks("Dacs.xls").Sheets("Ark2")      ' ændrer du selv

  If wks2.Range("D1").Value = "" Then
      MsgBox "Der er ikke angivet et navn!", vbCritical
      Exit Sub
  End If

  map = "c:\"
  a = Dir(map & "\*.txt")
  If a = ".txt" Then
      MsgBox "Du har ikke gemt nogen filer", vbCritical
      Exit Sub
  End If

  ChDir "c:\"
  FilNavn = wks2.Range("d1").Value & ".csv"
  TempFile = Left(FilNavn, Len(FilNavn) - 4) & ".txt"
  FileCopy FilNavn, TempFile
  Workbooks.OpenText Filename:=TempFile, DataType:=xlDelimited, Semicolon:=True, DecimalSeparator:=","

  If FilNavn = False Then
      MsgBox "Filnavnet" & FilNavn & " findes ikke."
      Exit Sub
  Else
      Set wbcsv = Workbooks.Open(FilNavn)
  End If

  wbcsv.Sheets(1).Range("A1:H30000").Copy wks2.Range("A2")
  wbcsv.Close savechanges:=False

End Sub
Avatar billede mhp_dk Nybegynder
01. juli 2005 - 08:26 #6
Jeg kan ikke helt få det til at køre.

Min mening er i mit hoved ark i celle D1 at hente værdien og påføre .csv som så bliver til den csv fil jeg skal hente i c:\ denne fil vil jeg gerne have kopieret ind i A-D i hovedarket, og sådan set ikke mere i denne omgang.
Avatar billede mhp_dk Nybegynder
04. juli 2005 - 14:04 #7
Hej bak

Du gav mig hjælp nok til at "makke" det på plads, jeg har lavet det sådan at jeg henter data fra TempFil istedet for at kopiere Tempfil for så går det helt galt.

Så hvis du giver et svar får du points.
Avatar billede mhp_dk Nybegynder
31. oktober 2005 - 10:57 #8
.
Avatar billede bak Forsker
31. oktober 2005 - 10:58 #9
:-)
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