/ Forside / Teknologi / Administrative / MS-Office / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Drillesyg dato i Excel 2003 macro
Fra : John K


Dato : 10-07-07 11:30

Hej NG
Jeg har en Excel macro, som jeg har lidt problemer med, og da jeg ikke
er programmør og derfor ikke selv har lavet macroe, driller det endnu
mere

Macroen tager input fra en tabulator separeret txt fil og kopiere det
ind i et excel regneark. Det fungere alt sammen godt, men der er et
eller andet i copy / paste funktionen der roder rundt i datoerne. Hvis
der i txt filen f.eks står datoen 09-07-2007 (dd-mm-åååå) så kommer
det til at stå som 07-09-2007 (mm-dd-åååå) i excel arket. Hvis datoen
derimod er 13-07-2007, så komer det rigtigt ind (dd-mm-åååå). Med
andre ord så vender macroen rundt på dd og mm hvis dagen er 12 eller
derunder. Er dagen over 12 så ser output rigtigt ud.
Macroen bruger en output.xls fil, og her er formatet af den kolonne,
hvor datoerne står, rigtigt format (dd-mm-åååå)

Txt filen består af 6 tabulator separeret kolonner som skal kopieret
over i regnearket og dato kolonnen er den første. De øvrige kolonner
er bare tekst og der er ingen problemer.

Nedenfor er udsnit af macroen. (Jeg tror at det er her et eller andet
sted at problemet ligger, da det jo ser forkert ud når det ligger i
output.xls regnearket)

På forhånd tak.
John K.


Function Textfile_Open()
Dim b As Boolean
oWorkBook_XLM.Activate

sStart_Dir = Left(ActiveWorkbook.Path, 3)

If Left(sTextFile_Dir_NamePROP & "?", 1) = "?" Then
MsgBox "Please, Open Your Text File."
b = Application.Dialogs(xlDialogOpen).Show
If b = False Then End
sTextFile_Dir_NamePROP = ActiveWorkbook.Path & "\" &
ActiveWorkbook.Name
Else
ChDir Left(sTextFile_Dir_NamePROP, 3)
Workbooks.OpenText Filename:=sTextFile_Dir_NamePROP,
Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False,
Comma:=False, _
Space:=False, Other:=False
End If

ChDir sStart_Dir
Set oWorkbook_TextFile = ActiveWorkbook
Cells(1, 1).Select
Cells.Select
Selection.Copy
oSheet_ModelCopy.Activate
Cells(1, 1).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=False 'BARA VÄRDEN klistras in!
Application.CutCopyMode = False
oWorkbook_TextFile.Close
End Function 'TextfileOpen

Function Lines_Format()
Dim n As Integer, Nmax As Integer

oSheet_ModelCopy.Activate
Application.GoTo "FormatLines" '12(?)anvädar-formaterade rader
Selection.Copy
Range("A1").Select
Nmax = Range("A1").CurrentRegion.Rows.Count

For n = Range("FormatLines").Row To Nmax Step
Range("FormatLines").Rows.Count
Rows(n & ":" & n + Range("FormatLines").Rows.Count - 1).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=False
Next n

Application.CutCopyMode = False
n = Nmax + 1
Rows(n & ":" & n + Range("FormatLines").Rows.Count - 1).Select
Selection.Clear 'rensa formatet på avslutande tommarader
Range("A1").Select
End Function 'Lines_Format


 
 
Gert Nielsen (11-07-2007)
Kommentar
Fra : Gert Nielsen


Dato : 11-07-07 14:08


"John K" <jkrist10@hotmail.com> skrev i en meddelelse
news:1184063396.392898.214360@22g2000hsm.googlegroups.com...
Hej NG
Jeg har en Excel macro, som jeg har lidt problemer med, og da jeg ikke
er programmør og derfor ikke selv har lavet macroe, driller det endnu
mere

Macroen tager input fra en tabulator separeret txt fil og kopiere det
ind i et excel regneark. Det fungere alt sammen godt, men der er et
eller andet i copy / paste funktionen der roder rundt i datoerne. Hvis
der i txt filen f.eks står datoen 09-07-2007 (dd-mm-åååå) så kommer
det til at stå som 07-09-2007 (mm-dd-åååå) i excel arket. Hvis datoen
derimod er 13-07-2007, så komer det rigtigt ind (dd-mm-åååå). Med
andre ord så vender macroen rundt på dd og mm hvis dagen er 12 eller
derunder. Er dagen over 12 så ser output rigtigt ud.
Macroen bruger en output.xls fil, og her er formatet af den kolonne,
hvor datoerne står, rigtigt format (dd-mm-åååå)

Txt filen består af 6 tabulator separeret kolonner som skal kopieret
over i regnearket og dato kolonnen er den første. De øvrige kolonner
er bare tekst og der er ingen problemer.

********************************'

Problemet er ikke macroen, men txt filen. En tekstfil har ingen data for
nationalitet og datoformat.
Derfor kan du sagtens få problemer med æøå!!
Datoerne fra din tekstfil indlæses i excelformat og indstillingen
dd-mm-åååå, hvordan datoen præsenteres.
Jeg vil tro, at alle datoer indlæses i amerikansk format. Derfor det
forvirrende resultat.

Du kan prøve at ændre datoformatet til mm-dd-åååå. Så vil jeg forvente at de
står korrekt.
Så skulle du efterfølgende kunne rette formatet.

Den sikre metode (efter Office XP og frem) er at åbne tekstfilen direkte med
Excel. (vælg txt filer).
Så beder Excel om de nødvendige oplysninger og alt inporteres korrekt.

Efter Office XP og frem er din macro ikke sikker - desværre.
Gert



John K (12-07-2007)
Kommentar
Fra : John K


Dato : 12-07-07 07:42

Hej Gert.
Det hjalp at ændre datoformatet i cellerne til mm-dd-åååå. Nu vises
output som jeg vil have det. Jeg vil ikke kaste mig ud i at gøre
macroen mere sikker, det rækker min programeringsviden ikke helt
til

Mange tak for hjælpen
God sommer
John K

>
> Problemet er ikke macroen, men txt filen. En tekstfil har ingen data for
> nationalitet og datoformat.
> Derfor kan du sagtens få problemer med æøå!!
> Datoerne fra din tekstfil indlæses i excelformat og indstillingen
> dd-mm-åååå, hvordan datoen præsenteres.
> Jeg vil tro, at alle datoer indlæses i amerikansk format. Derfor det
> forvirrende resultat.
>
> Du kan prøve at ændre datoformatet til mm-dd-åååå. Så vil jeg forvente at de
> står korrekt.
> Så skulle du efterfølgende kunne rette formatet.
>
> Den sikre metode (efter Office XP og frem) er at åbne tekstfilen direkte med
> Excel. (vælg txt filer).
> Så beder Excel om de nødvendige oplysninger og alt inporteres korrekt.
>
> Efter Office XP og frem er din macro ikke sikker - desværre.
> Gert



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408918
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste