Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: .txt-bestand openen via VBA  (gelezen 4773 keer)

0 leden en 1 gast bekijken dit topic.

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
.txt-bestand openen via VBA
« Gepost op: 20 april 2007, 09:51:52 »
Ik heb het volgende probleem (hmmm, is een groot woord! ;D). Ik werk heel veel met rapportages die ik rechtstreeks via query's uit een Progress-database (UNIX platform) haal. Die rapportages sla ik altijd op onder de tijdelijke naam 'report.txt' (zo kan ik 'm makkelijk vinden en FTP'en van een remote server).
Dit bestand open ik dan vervolgens in Excel op de gebruikelijke wijze (Bestand, Openen enz...). Als je deze methode hanteert, komt Excel terug met de 'Text Import Wizard'. Dat is heel prettig, want daarmee kan je zelf de kolommen bepalen (het voorstel van de wizard  is namelijk niet altijd goed!). De inhoud en daarmee de lay-out van ieder rapport is dus anders. Hierdoor kan ik niet een macro opnemen die 'het openen' voor me afhandelt.
De volgende code werkt dus niet naar mijn tevredenheid.. :'(Sub OpenReportTxt()

    Workbooks.OpenText Filename:="P:\My Documents\LISA_TXT\report.txt"

End Sub
Want hiermee 'gokt' Excel zelf hoe de kolommen worden ingedeeld (en zoals ik al eerder zei, gaat dat vaak niet goed!).

Concreet is mijn vraag: hoe zorg ik er voor dat het bestand 'report.txt' wordt geopend in de 'Text Import Wizard' met gebruik van VBA.
De bedoeling is dus dat ik via een custom knop op de knoppenbalk mijn aantal handelingen van opening verminder.

Groet, Leo
______________________________

Groet, Leo

Offline ceasar

  • Ervaren lid
  • ***
  • Berichten: 293
  • Geslacht: Man
  • de soep eten als ze heet is
Re: .txt-bestand openen via VBA
« Reactie #1 Gepost op: 20 april 2007, 10:21:18 »
Leo,

kan dit je helpen?


    Workbooks.OpenText Filename:= _
        padnaam
        , Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
        Array(Array(0, 9), Array(15, 1), Array(31, 1), Array(44, 1), Array(52, 4), Array(65, 4), _
        Array(76, 1), Array(113, 1), Array(131, 1), Array(151, 1), Array(168, 1)), _
        TrailingMinusNumbers:=True
End Sub


is je query afhankelijk van instellingen?
is die geschreven in sql?

groeten

JC
 8)
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz 3901
Z77X-UP5 TH-CF
AMD Radeon HD 7900 Series 4095MB 1024 x 768
Realtek High Definition Audio
Nr: 1 Model: WDC WD10 EARX-00N0YB0 SCSI Disk Device
Nr: 2 Model: INTEL SSDSC2CT120A3
C:\ NTFS 111,01GB 1,06GB 32 720MB
AV: Geen antivirus geïnstalleerd
FW: Windows Firewal Enabled: True

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: .txt-bestand openen via VBA
« Reactie #2 Gepost op: 20 april 2007, 11:19:42 »
Leo,

Hoe moeten de kolommen ingedeeld worden? Wat zijn de criteria? Of is dat telkens zo verschillend dat er geen sluitend antwoord op te geven is?

beste groeten,
Erik

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: .txt-bestand openen via VBA
« Reactie #3 Gepost op: 20 april 2007, 21:25:44 »
Ceasar, Dank voor je antwoord. Ik had ook al iets dergelijks (maar wel opgenomen via de macrorecorder). Dat werkte bij dat ene bestand waar ik de opname van gemaakt had, maar verder dus niet meer. Ik moet eerlijk zeggen dat ik jouw code nog niet getest heb (nogal druk op m'n werk  :'() dus dat kan maandag pas.

Erik, Dank voor je antwoord. Het gaat er juist om dat alle 'rapportages' die ik genereer heel verschillend zijn (er is dus inderdaad geen sluitend antwoord te geven in criteria). Wij werken met een op maat gemaakte Logistieke Progress applicatie die de 'gewone' gebruiker benadert via het programma. Ik heb de mogelijkheid om de database via een Progress-tool (Results) rechtstreeks te benaderen. Hierdoor kan ik dus rapportages voor het management verzorgen die normaal niet tot de mogelijkheden horen.
Omdat ik dus dat gegenereerde bestand altijd dezelfde naam geef (en op dezelfde locatie wegschrijf), zou het openen dus eenvoudiger moeten kunnen. Maarrrrr, dan wil ik graag zelf het 'heft' in eigen handen willen houden!  ;)  Het openen van het bestand via de 'normale' weg, toont na het klikken op de 'Open' button de 'Text Import Wizard'. Die zou ik dus graag willen zien als ik op de 'custom' button klik in de knoppenbalk.

Dank tot zover voor jullie hulp.

Groet, Leo
______________________________

Groet, Leo

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: .txt-bestand openen via VBA
« Reactie #4 Gepost op: 21 april 2007, 00:08:57 »
Dit kende je wellicht al ?
Sub test1()
Application.Dialogs(xlDialogImportTextFile).Show
End Sub

Het grote probleem - en dat begrijp ik niet zo goed - is dat er blijkbaar geen Dialog-code bestaat voor die textimportwizard. Kijk zelf maar eens onder Dialogs wat daarvoor toch in aanmerking zou komen.
Via een ommetje kom je er misschien op deze manier. Eerst de tekst plakken en dan "tekst naar kolommen" lanceren.
Dit is één mogelijkheid om dat te doen:
Sub test2()
Dim FF
Dim newText
Dim arr() As Variant
Dim i As Long

FF = FreeFile()

Open "C:\windows\desktop\temp.txt" For Input As FF

    While Not EOF(FF)
    ReDim Preserve arr(i)
    Input #FF, arr(i)
    i = i + 1
    Wend

Range("A1").Resize(i + 1) = Application.Transpose(arr)

Close #FF
Application.Dialogs(xlDialogTextToColumns).Show

End Sub

fijn weekend nog !
Erik

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: .txt-bestand openen via VBA
« Reactie #5 Gepost op: 21 april 2007, 21:07:34 »
Erik, ik ga maandag op de zaak ff aan de slag met je code. Dank tot zover!

Groet, Leo

P.s. jij uiteraard óók een fijn weekend! ;D
______________________________

Groet, Leo

 


www.combell.com