Just nu i M3-nätverket
Gå till innehåll

nybörjar hjälp


t_henrik

Rekommendera Poster

Önskar att kunna öppna filer och lista dem i Excel mha Visual Basic. Har provat olika funktioner mha LISTBOX och COMBOBOX.

En COMBOBOX önskar jag använda där jag skulle vilja se filer för att därefter välja. Tacksam för hjälp.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Vad för typ av filer vill du lista i comboboxen och var befinner sig filerna? Ligger de i samma mapp?

 

Länk till kommentar
Dela på andra webbplatser

Hej

Jo, jag önskar att kunna se filer ur en katalog, samma funktion som öppna i word, excel m.m. Då tänkte jag använda LISTBOX eller COMBOBOX för att välja katalog och därefter kunna göra filval.

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Onödigt att uppfinna hjulet på nytt. Använd de kontroller som redan finns.

 

- Lägg till Microsoft Common Dialog Control 6.0 under Project->Components

- Du har nu CommonDialog-kontrollen i din toolbox. Lägg till denna till ditt formulär och använd dess metoder ShowOpen() eller ShowSave() för att visa Öppna resp. Spara-fönstren.

 

 

[inlägget ändrat 2006-07-20 20:55:53 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

Tack för snabbt fösrlag. Dock skriver jag visual basic kod i Excel. Och det fick jag inte att fungera med att lägga till "Microsoft Common Dialog Control 6.0"

 

Mycket tacksam för fortsatt hjälp.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
Dock skriver jag visual basic kod i Excel.

Ok, jag är tveksam till att det går att lägga till den komponenten i Excel VBA. Har inget VBA-förslag på rak arm just nu, men i värsta fall blir det till att skriva det hela själv. Dvs. bygga upp dina listboxars innehåll med mapp/fil-listningar, med hjälp av FileSystemObject.

 

Googla på "FileSystemObject+vbscript+reference" för att hitta referensmaterial till hur denna klass fungerar. Den är ganska straightforward att använda dock.

 

Länk till kommentar
Dela på andra webbplatser

tack, skall kolla detta, hur som haver så fick jag hjälp av ditt förra inlägg. det är toppen när du skriver så utförligt.

 

 

Länk till kommentar
Dela på andra webbplatser

Hoppas att jag inte är helt ute och cyklar nu.

Du vill i Excel VBA öppna filer och det kan gå bra med en klassisk öppna/spara-dialog-ruta?

 

Se bifogad bild på exempel.

 

Den här koden används för att göra detta:

[color="#0000ff"]Dim[/color] SSIMfilePath
SSIMfilePath = [b]Application[/b].GetOpenFilename([GRÅ]"SSIM-filer (*sds), *.sds"[/GRÅ], , [GRÅ]"Öppna SSIM-fil"[/GRÅ])

 

Edit: SSIMfilePath är såklart bara ett namn som jag använder i min applikation.

Det behövs inga extra "references" än standard. Inga extra "Components". Den här koden anropas när man trycker på en knapp i ett formulär.

 

[bild bifogad 2006-07-21 11:51:54 av Leon_]

[inlägget ändrat 2006-07-21 11:54:08 av Leon_]

850133_thumb.jpg

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
Application.GetOpenFilename

Misstänkte nästan att de byggt in komponenten i VBA. Poäng!

 

Länk till kommentar
Dela på andra webbplatser

TUSEN TACK

 

DET ÄR PRECIS VAD SOM BEHÖVS. JAG ÄR OERHÖRT GLAD.

Hoppas jag senare kan bidra med lösningar till er.

 

Länk till kommentar
Dela på andra webbplatser

Jo, jag måste allt fortsätta att fråga angående Application.GETOpenFilename

Jag trodde den öppnade min text fil och därefter lades informationen från text filen i ett blad. Då det inte gjordes tänkte jag att följande funktion kunde vara bra "Workbooks.OpenText Filename:="

 

Så koden blev

 

Dim SSIMfilePath

 

Workbooks.OpenText Filename:= _

SSIMfilePath = Application.GetOpenFilename("SSIM-filer (*txt), *.txt", , "Öppna SSIM-fil") _

 

 

Men jag får inte till det. Kan någon hjälpa mig på traven.

 

mvh

Torbjörn

 

Länk till kommentar
Dela på andra webbplatser

Måste studs ut med jycken en timme nu, men senare kan jag försöka hjälpa till. Om nu inte någon annan hinner före ;)

 

Hur vill du att textfilen skall visas i ditt Excel-blad? Hur den ser den ut? Har den några avgränsare typ semikolon, tab, space, komma, etc?

 

Länk till kommentar
Dela på andra webbplatser

Prövat att göra så här:

 

Sub OppnaTxt()
Dim TxtfilePath

TxtfilePath = Application.GetOpenFilename("SSIM-filer (*.txt), *.txt", , "Öppna text-fil")
Workbooks.OpenText Filename:=TxtfilePath

End Sub

 

ersatte SSIM med Txt eftersom SSIM är ganska internt ;)

 

Nu öppnas vald textfil i ett blad.

 

Länk till kommentar
Dela på andra webbplatser

Hej Leon

 

Tja, räcker tusen tack?, knappast.

Jag är så tacksam över din givmildhet. De rader du skrev är helt underbara. Angående fråga om tabbar, komma så är det så att det skall sorteras på komma tecken ur en textfil. men det hoppas jag kunna lösa.

Har nu införskaffat bok av Peter Norton, Visual Basic 6.0 hoppas den leder mig fram.

 

mvh

Torbjörn

 

Länk till kommentar
Dela på andra webbplatser

hoho, det var så lite så. Alltid kul att kunna hjälpa till.

 

Om du skall öppna filen med komma som avgränsare kan du testa att skriva så här:

Workbooks.OpenText Filename:=TxtfilePath, Comma:=True

 

Den boken har jag inte läst; Har någon specifik VBA-för-Excel-bok som jag inte riktigt kommer ihåg namnet påer. Bra som referensverk och finns en del matnyttigt i den.

Om du inte redan har besökt sidan så är http://www.xldennis.se ett mycket bra tips.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Tja, tusen tack. Nu har jag en fråga igen hoppas inte för tjatigt.

Varje gång då jag kör dina programrader så påpekas DIGITAL SIGNERING. Vilket leder till att jag löser problemet med att klistra in koden i nytt blad. Dvs, kastar det gamla bladet. Hur kan jag göra signering. Har försökt att att göra det via "VBA-modulen i Excel, väljer verktyg och sedan digital signatur." Men det lyckas inte.

 

mvh

Torbjörn

 

Länk till kommentar
Dela på andra webbplatser

Oj, det kan jag nog tyvärr inte hjälpa till med :/ Har inte det "problemet" själv. Kan i och för sig kolla på jobbet imorgon, där har jag en annan version av Excel. Hemma kör jag Office 2007 Beta.

Vilken version av Excel kör du?

 

Om jag inte lyckas svara på din fråga, så finns det flera andra här som kan långt mycket mer om Excel än vad jag kan. Så, ha hoppet uppe! ;-)

 

Edit:

t_henrik skrev:

Nu har jag en fråga igen hoppas inte för tjatigt.

 

Absolut inte! Eforum finns till för frågor och svar. Dina frågor är dessutom väldigt bra ställda, så det är enkelt att förstå vad du är ute efter :)

 

[inlägget ändrat 2006-07-23 18:41:47 av Leon_]

Länk till kommentar
Dela på andra webbplatser

Det var schysst skrivet.

 

Jag har ett office paket XP (hem version) från 2002.

 

Jag har en annan fråga :thumbsup:

 

Det är ett makro som är gjort, vilket är testat och fungerar väl.

 

Detta makro tar hand om data från de filer jag öppnat med din program kod.

 

Dock fungerar inte koden i makrot då koden läggs in under en Commandbutton knapp.

 

Koden ser ut så här.

 

Private Sub CommandButton3_Click()

Windows("traningstider.txt").Activate

Columns("A:A").Select

Selection.Copy

End Sub

 

Felet är utpekat på "Columns("A:A").Select"

 

med vänlig hälsning

 

Torbjörn

 

 

Länk till kommentar
Dela på andra webbplatser

Felet som fås då jag trycker på Commandbutton är

 

"Körfel nr 1004, select-metoden i Range-klassen misslyckades"

 

/Torbjörn

 

Länk till kommentar
Dela på andra webbplatser

Märkligt. Jag testade precis detta och det fungerade.

1. Öppnade ett dokument som heter "traningstider.txt" via följande kod:

Sub OppnaTxt()
Dim TxtfilePath
TxtfilePath = Application.GetOpenFilename("SSIM-filer (*.txt), *.txt", , "Öppna text-fil")
Workbooks.OpenText Filename:=TxtfilePath, Comma:=True
End Sub

2. Skapade ett "UserForm" med en knapp; "CommandButton_3"

3. Kopierade in din kod under Click-eventet;

Private Sub CommandButton3_Click()
Windows("traningstider.txt").Activate
Columns("A:A").Select
Selection.Copy
End Sub

4. Körde formuläret och klickade på knappen.

Resultatet blev att hela A-kolumnen markerades och kopierades i dokumentet traningstider.txt.

 

Skall testa imorgon på jobbet. Har för mig att jag har Excel 2002 där.

 

 

Länk till kommentar
Dela på andra webbplatser

HEJ

 

JO, DET SER UT ATT VARA INTRESSANT FEL, FÖRRESTEN, TACK FÖR DEN SNABBA TITTEN DU GJORDE.

 

Felet är förmodligen i cellen,. dvs där mitt data finns.

Jag kan bifoga fil

 

mvh

Torbjörn

 

Länk till kommentar
Dela på andra webbplatser

jo, jag hittade förmodligen felet men åtgärda det verkar vara svårare. Felet är textfilen som jag läser upp. Textfilen vet jag inte hu den skall bifogas.

Jag har försökt att arbeta med funktionen anpassa cell, därefter väljer jag tid, 13:30:35. Kolumn B byter jag . mot ,

 

När detta är gjort fungerar det. Men så kör jag igen programmet med dina rader, läser in filen. Därefter trycker på näst knapp och kör följande

 

Windows("traning.txt").Activate

 

Columns("A:A").Select

Selection.NumberFormat = "h:mm:ss"

 

 

Columns("A:A").Select

Selection.Copy

 

 

Men då blir det fel som tidigare med utpekning på "Columns("A:A").Select"

 

Kanske måste jag efter dina rader (

 

Dim TxtfilePath

TxtfilePath = Application.GetOpenFilename("SSIM-filer (*.txt), *.txt", , "Öppna text-fil")

Workbooks.OpenText Filename:=TxtfilePath, Comma:=True

 

)

 

göra formatering.

 

 

 

mvh

Torbjörn

 

 

 

[bild bifogad 2006-07-23 23:18:03 av t_henrik]

850738_thumb.jpg

Länk till kommentar
Dela på andra webbplatser

Först: Nej, tyvärr går det inte att bifoga andra filer än bilder här på eForum.

Sedan: Hrmm.. Jag får inget felmeddelande alls..

Jag öppnar traning.txt (som jag skapt med ~10 rader från din skärmdump), sen formaterar jag kolumn A och ersätter "." med "," i kolumn B. Därefter kopierar jag hela kolumn A.

 

Vad är det egentligen du vill göra?

Öppna en text-fil och formatera dennas A-kolumnb enligt "h:mm:ss" samt ersätta B-kolumnens "." med ","? Är det allt?

Varför skall du kopiera celler?

 

Hur ser all kod ut? Om det blir svårt att peta in allt här får du om du vill/orkar skicka din text-fil samt Excel-fil till min e-postadress; leon53@spray.se

 

 

Länk till kommentar
Dela på andra webbplatser

Tack jag bifogar fil och excel kod.

 

Problemet är den textfil som jag öppnar. Det är då cellerna i kolumn A eller B skall markeras som fel uppstår. Men tar jag inte min textfil utan ett "vanligt" blad från excel så markeras allt rätt.

Så tydligen är det något med cellerna.

 

Detta tror jag.

 

mvh

Torbjörn

 

 

 

Länk till kommentar
Dela på andra webbplatser

 

Felet beror inte på om det är XLS eller TXT fil.

 

 

När makro spelas in och därefter spelas upp är allt ok. Men då jag lägger in följande makro kod under en s.k knapp ges felutpekning på rad "Columns("A:A").Select".

 

med vänlig hälsning

Torbjörn

 

Private Sub CommandButton1_Click()

Workbooks.Open Filename:= _

"C:\Documents and Settings\Ägaren\Mina dokument\2006\07\testfil\test_data.xls"

Columns("A:A").Select

Selection.Copy

Windows("Bok2").Activate

ActiveSheet.Paste

End Sub

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...