Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Micha8 am 01.04.08 - 09:38:56

Titel: Excel Export sortieren
Beitrag von: Micha8 am 01.04.08 - 09:38:56
Hallo zusammen,

ich weiß, mein Thema wurde hier schon oft gefragt und diskutiert. Habe alle Threads schon gelesen, doch die Lösung für mein Problem habe ich bisher nicht wirklich lesen können.
Also, der Export von Notes nach Excel funktioniert soweit. Nun möchte ich die Exceldaten sortieren. Es gibt eine Überschriftenzeile ! Den Code für die Sortierung ohne Überschrift habe ich schon gesehen und getestet, das funktioniert ja auch. Jedoch wie gesagt mit Überschrift bekomme ich das alleine nicht hin. Habe anstelle alle Zellen zu markieren auch schon probiert nur die reinen Datenzellen zu markieren (also unterhalb der Überschriftszeile) und diese dann zu sortieren. Das markieren funktioniert, aber das sortieren nicht.

Kann jemand helfen ?
Gruß
Michael
Titel: Re: Excel Export sortieren
Beitrag von: ZaLudtske am 01.04.08 - 09:41:46
Bitte Code posten, ich denke bei der Sortierung wurde eine option nicht richtig gesetzt.

Rainer
Titel: Re: Excel Export sortieren
Beitrag von: Neopi am 01.04.08 - 09:48:05
Hi Michael,
mach die Sortierung von Hand und zeichne ein Makro auf.
Dann musst Du nur noch den Code in LS einbauen.

Die Bedeutung der Schlüsselwörter gibt Dir die VB-Hilfe.

gruß
martin
Titel: Re: Excel Export sortieren
Beitrag von: Axel am 01.04.08 - 11:12:29
Guckst du hier: http://atnotes.de/index.php?topic=39862.0 (http://atnotes.de/index.php?topic=39862.0)


Axel
Titel: Re: Excel Export sortieren
Beitrag von: Micha8 am 01.04.08 - 11:50:33
sorry, da hätte ich auch sofort selbst drauf kommen können, meinen Code hier zu posten.
Info: anzzeil beinhaltet die Anzahl der Zeilen
Code
... 
	'Konstanten für die Sortierung
	Const xlAscending = 1
	Const xlGuess = 0
	Const xlTopToBottom = 1
	
	Set xlApp = CreateObject("Excel.Application")
	Set xlsheet = xlApp.Workbooks(1).Worksheets(1)
	....	
	'zur Sortierung der Daten folgender Code:
	xlApp.Range("A2","G" & anzzeil).Select
	xlApp.Selection.Sort  xlsheet.Columns("A"), xlAscending , "", xlsheet.Columns("B"), xlAscending, xlsheet.Columns("C"), xlAscending, xlGuess,1, False, xlTopToBottom	
	....

Mit diesem Code wird zwar mein Zellenbereich markiert, aber eine Sortierung wird nicht durchgeführt. Und es ist anscheinend egal ob ich nun "xlApp.Selection.Sort ..." schreibe oder "xlsheet.Selection.Sort ...".

Ist hier ein Fehler eingebaut ? Was ist falsch ?

---------------------------------------------------------------------
@Axel
habe auch die Variante aus Deiem Link-Vorschlag getestet. Das funktioniert sogar, und zwar mit diesem Code anstelle der o.g. letzten Anweisung:

Code
xlApp.Selection.Sort  xlsheet.Range("A2","A" & anzzeil)

Aber so wird es aufsteigend sortiert. Was ist, wenn ich es absteigend sortieren möchte ?
Titel: Re: Excel Export sortieren
Beitrag von: ZaLudtske am 01.04.08 - 12:01:18
Hallo,

setz den Parameter xlGuess auf xlYes um. Damit weis Excel, dass eine Titelzeile vorhanden ist.

Rainer
Titel: Re: Excel Export sortieren
Beitrag von: Axel am 01.04.08 - 12:07:48
Du musst die Sort-Funktion entsprechend ändern. Der Parameter 1 von Range ist für die aufsteigende Sortierung zuständig. Hier musst du 2 eintragen. Dann sollte das funktionieren.


Function xlSort( xlSheet As Variant , sDataRange As String , sColumnRange As String ) As Variant
   ' # sDataRange => der gesamte Bereich mit Daten => "A2:F20" bei Kopfzeile, 5 Spalten und 19 Daten-Zeilen
   ' # sColumnRange => Die Spalte, nach der sortiert werden soll => "A2:A20" bei Kopfzeile und 19 Daten-Zeilen
   Call xlSheet.Range( sRange ).Sort( xlSheet.Range( sColumnRange ) , 2 )
End Function



Axel
Titel: Re: Excel Export sortieren
Beitrag von: Micha8 am 01.04.08 - 13:53:55
Ich danke Euch !

Habe beide Varianten getestet - funktionieren beide 100%ig  :)

Gruß
Michael