Seite 1 von 1
Excel-Spalten formatieren
Verfasst: Mi, 26. Okt 2016 23:36
von medmaster
Hallo ....
ich habe mal versucht, eine Excelspalte "Geburtsdatum" in Xbase++ umzuformatieren :
Spalteninhalt : 15-Feb-51
So sieht der Makro-VBA-Code aus :
Code: Alles auswählen
Columns("C:C").Select
Selection.NumberFormat = "d/m/yyyy;@"
.........
So sah mein Xbase++.Code aus ... leider funkts so nicht - hat das jemand schon probiert ?
Code: Alles auswählen
obook := oExcel:Workbooks:Open(cWahl)
oSheet := oBook:activesheet
oExcel:Columns("C:C"):Select
oExcel:Selection:NumberFormat="d/m/yyyy;@"
In der resultierenden .CSV steht dann nur ;d/m/yyyy;
Hat jemand eine Idee ???
Gruß Rainer
Re: Excel-Spalten formatieren
Verfasst: Do, 27. Okt 2016 8:27
von brandelh
Statt:
denke ich müsste es das Sheetobjekt sein:
Code: Alles auswählen
oRange := oSheet:Columns("C:C")
oRange:NumberFormat := "d/m/yyyy;@"
aber sicherheitshalber werde ich mal auf der Festplatte suchen ...
Code: Alles auswählen
oSheet:Rows(1):Font:Bold := .t.
oSheet:Columns("A:ZZ" ):AutoFit() // automatische Breite
oSheet:Columns("A:N" ):HorizontalAlignment = xlCenter
oSheet:Columns("O" ):HorizontalAlignment = xlRight
:Select() geht auch, ist wohl die Markierung für die Zwischenablage:
Code: Alles auswählen
aeval(aDateColumns, {|nCol| oSheet:Columns(nCol):NumberFormat := "TT.MM.JJJJ"})
aeval(aTextColumns, {|nCol| oSheet:Columns(nCol):NumberFormat := "@"})
oSheet:Cells(1,1):select()
oSheet:Paste()
oSheet:Cells(1,1):select()
oExcel:visible := .T.
oSheet:Columns("A:ZZ"):AutoFit()
oSheet:Rows(1):Font:Bold := .t.
oExcel:visible := .F.
Re: Excel-Spalten formatieren
Verfasst: Do, 27. Okt 2016 20:58
von BJelinek
Ich formatiere die Spalten immer bevor ich die Daten einlese.
Code: Alles auswählen
oSheet:Columns("C:C"):NumberFormat := "TT-MM-YYYY;@" // Datum
oSheet:Columns("G:G"):NumberFormat := "@" // text
oSheet:Columns( "H:H" ):NumberFormat := "#.##0,00" // numerisch
oSheet:Columns("I:I"):ColumnWidth := 55.00
oSheet:Columns( "J:K" ):NumberFormat := "#.##0,00" // numerisch
Re: Excel-Spalten formatieren
Verfasst: Sa, 29. Okt 2016 23:30
von medmaster
..danke - geht so prima !! Zu den möglichen Parametern bei Zellformatierung und anderen
Funktionen bei VBA Excel find ich nichts - gibts da irgendwas an Übersicht ?
Zum Beispiel : in welcher Form les ich die Spaltenüberschriften aus, wie sieht das
Ergebnis aus - Objekt ? Ein Ergebnis-Array wäre gut ...
Gruß
Rainer
Re: Excel-Spalten formatieren
Verfasst: So, 30. Okt 2016 8:31
von Wolfgang Ciriack
Also ich lese die Daten aus einer Exceldatei immer mit
Code: Alles auswählen
oWorkBook := oExcel:workbooks:open(cDatei)
aValues := oWorkBook:workSheets(1):usedRange:value
l:=len(aValues)
aus. Sind Spaltenüberschriften vorhanden, so hast du die dann im Array aValues[1], in den folgenden die Spaltenwerte.
Re: Excel-Spalten formatieren
Verfasst: So, 30. Okt 2016 21:02
von brandelh
Wolfgangs Methode alles zu lesen ist die schnellste, da ein Zugriff alles liefert,
aber du kannst natürlich auch einzelne Zellen lesen und setzen.
Am Besten in Excel ein Macro aufnehmen, die gewünschte Aktion machen und den VBA Quellcode ansehen.
Früher gab es für Excel etc. VBA Hilfen, die man nachinstallieren konnte - ob die bei den neuen Versionen dabei sind ?
Re: Excel-Spalten formatieren
Verfasst: Mo, 31. Okt 2016 18:26
von medmaster
ich habe eine ganz gute Hilfe oder Übersicht gefunden - muss man eben online haben und dann entsprechend
das Passende suchen :
https://msdn.microsoft.com/de-de/library/ff194068.aspx
Danke für eure Hinweise ..
Rainer
Re: Excel-Spalten formatieren
Verfasst: Di, 01. Nov 2016 12:32
von brandelh
Danke für den LINK