Gå til innhold

[Løst] Excel 2007 VBA Importere Txt og xls


Anbefalte innlegg

Hei.

 

Jeg har en kode som brukes til og importere som jeg har lyst til og forbedre.

 

Jeg importerer en txt fil og en xls fil.

Jeg har satt det opp sånn at jeg kjører samme koden etter hverandre,

så etter jeg har valgt txt filen kommer det automatisk opp et vindu så jeg kan velge xls filen.

 

'Importerer .txt
Dim IntPath$, project$, pickf As Object
	IntPath = Sheets("Ver").Range("G1")
Set pickf = Application.FileDialog(msoFileDialogFilePicker)
With pickf
	.InitialView = msoFileDialogViewDetails: .InitialFileName = IntPath: .Filters.Clear: .Filters.Add "Pick .txt File", "*.txt", 1: .ButtonName = "Import file": .Title = "Search for .txt file to Import"
	If .Show = -1 Then
		project = .SelectedItems(1)
		Else: GoTo SubExit
	End If
End With
Range("A2:AZ500").ClearContents
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
	& project, Destination:=Range("A1"))
	.RefreshStyle = xlInsertDeleteCells
	.Refresh BackgroundQuery:=False
End With

'importerer xls fil
Dim IntPath2$, project2$, pickf2 As Object
	IntPath2 = Sheets("Ver").Range("G1")
Set pickf2 = Application.FileDialog(msoFileDialogFilePicker)
With pickf2
	.InitialView = msoFileDialogViewDetails: .InitialFileName = IntPath: .Filters.Clear: .Filters.Add "Pick .xls File", "*.xls", 1: .ButtonName = "Import file": .Title = "Search for .xls file to Import"
	If .Show = -1 Then
		project2 = .SelectedItems(1)
		Else: GoTo SubExit
	End If
End With
Range("A2:AZ500").ClearContents
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
	& project2, Destination:=Range("A1"))
	.RefreshStyle = xlInsertDeleteCells
	.Refresh BackgroundQuery:=False
End With

 

Men det jeg vil er at når brukeren har valgt txt filen som feks. heter "Desember"

så søker den automatisk etter xls filen som også heter "Desember"

og importerer den uten at brukeren må velge den.

 

Å hvis det er mulig, hvis man har lagret xls filen med en skrivefeil "Desenber" så kommer det opp et vindu, (filen du du søker etter finnes ikke, Vennligst velg selv)

 

er det noen som veit hvordan man kan få til det?

 

Bare si i fra hvis det trengs en mer utfyllende forklaring :)

 

MVH

 

Torbjørn

Endret av Bigelk
Lenke til kommentar
Videoannonse
Annonse

Hei igjen Harald.

Jeg har ikke prøvd koden din, fordi jeg vet ikke helt hvordan jeg skal skrive den inn i den koden jeg har, men hvis jeg forstår deg rett så tror jeg ikke du forstår meg rett :)

 

Hvis jeg forstår koden din, så isteden for og importere begge filene, så erstatter den txt filen med xls filen?

Jeg vil velge en fil, og importere 2 hvis de har likt navn.

 

Så, hvis jeg tar feil og det er det koden din gjør, Hvordan skriver jeg koden din inn i den koden jeg har?

 

Tusen Takk for hjelpen :)

Lenke til kommentar

Behold koden din til og med at tekstfilen er ferdig importert. Etter det er spørsmålet om det finnes en xls-fil med samme navn, og det er hva koden min sjekker. Hvis det gjør det kan du glemme fil-dialogen i andre ledd og gå rett på import, hvis ikke må brukeren finne filen selv. Med andre ord, dette er kode for å fylle project2 med en gyldig filbane.

 

Jeg kan ikke bli mer konkret fra en iPad...

 

beste hilsen Harald

Lenke til kommentar

Hei.

 

Da ble det sånn her

Sheets(1).Select
   Dim IntPath$, project$, pickf As Object
   IntPath = "//filserver/tope/bonus"
   Set pickf = Application.FileDialog(msoFileDialogFilePicker)
    With pickf
	    .InitialView = msoFileDialogViewDetails: .InitialFileName = IntPath: .Filters.Clear: .Filters.Add ".txt File", "*.txt", 1: .ButtonName = "Import file": .Title = "Search for .txt file to Import"
	    If .Show = -1 Then
		    project = .SelectedItems(1)
	    Else: GoTo SubExit
	    End If
    End With
   Range("A2:AZ500").ClearContents
   With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
    & project, Destination:=Range("A1"))
    .RefreshStyle = xlInsertDeleteCells
    .Refresh BackgroundQuery:=False
   End With

   Sheets(2).Select
   project2 = Replace(project, ".txt", ".xls")

   If Dir(project2) = "" Then 'project2 & " finnes ikke"
    MsgBox "Finner ikke filen med tilsvarende navn. Vennligst velg en fil selv"
    Set pickf = Application.FileDialog(msoFileDialogFilePicker)
    With pickf
	    .InitialView = msoFileDialogViewDetails: .InitialFileName = IntPath: .Filters.Clear: .Filters.Add ".xls File", "*.xls", 1: .ButtonName = "Import file": .Title = "Search for .Xls file to Import"
	    If .Show = -1 Then
		    project = .SelectedItems(1)
	    Else: GoTo SubExit
	    End If
    End With
   Range("A2:AZ500").ClearContents
   With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
    & project, Destination:=Range("A1"))
    .RefreshStyle = xlInsertDeleteCells
    .Refresh BackgroundQuery:=False
   End With


   Else 'project2 & " eksisterer"
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
	    & project2, Destination:=Range("A1"))
	    .RefreshStyle = xlInsertDeleteCells
	    .Refresh BackgroundQuery:=False
    End With
   End If

Lenke til kommentar
  • 5 uker senere...

Hei.

 

Hvis jeg har 3 txt filer som skal importeres. alle starter med f.eks 0606. Går det ann og gjøre det tilsvarende da?

Jeg har 3 txt filer

0606,500

0606,350

0606,bring

 

Så når jeg da velger 0606,500 med musa så importerer den også 0606,350 og 0606,bring?

 

Mvh

 

Torbjørn

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...