Bigelk Skrevet 11. mai 2012 Del Skrevet 11. mai 2012 (endret) 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 11. mai 2012 av Bigelk Lenke til kommentar
Harald Staff Skrevet 11. mai 2012 Del Skrevet 11. mai 2012 Hei Torbjørn Hvis jeg forstår deg rett: project2 = Replace(project, ".txt", ".xls") If Dir(project2) = "" Then MsgBox project2 & " finnes ikke" Else MsgBox project2 & " eksisterer" End If Lenke til kommentar
Bigelk Skrevet 11. mai 2012 Forfatter Del Skrevet 11. mai 2012 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
Harald Staff Skrevet 11. mai 2012 Del Skrevet 11. mai 2012 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
Bigelk Skrevet 14. mai 2012 Forfatter Del Skrevet 14. mai 2012 Hei. Har testa den litt nå, fungerer som en drøm Legger ut hele koden når jeg har fin justert litt. Tusen takk for hjelpen Harald Lenke til kommentar
Bigelk Skrevet 14. mai 2012 Forfatter Del Skrevet 14. mai 2012 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
Bigelk Skrevet 13. juni 2012 Forfatter Del Skrevet 13. juni 2012 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå