Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Blackraven am 11.03.05 - 13:21:35

Titel: Excel Sortierung per Lotusscript
Beitrag von: Blackraven am 11.03.05 - 13:21:35
hallo,

möchte eine Sortierung von Daten in Excel per Lotusscript erstellen.
Sortiert werden soll nach 1.Spalte A und dann Spalte B:

Sortierung ohne Header funktioniert:
xlApp.WorkBooks(1).Sheets(2).Select
Set xlSheet = xlApp.WorkBooks(1).ActiveSheet

xlSheet.Cells.Select  'Gesamtes Arbeitsblatt markieren
xlApp.Selection.Sort  xlSheet.Columns("A"), xlAscending , "",_
xlSheet.Columns("B"), xlAscending , xlSheet.Columns("C"),_
xlAscending, xlGuess,1, False, xlTopToBottom

Aber wie stell ich das an, wenn die Daten die ich sortieren will, erst ab Zeile 7 vorhanden sind?
D.H. Zeile 6 (Header), Spalten A-E??

Ich komm grad da nicht weiter.

   
Titel: Re: Excel Sortierung per Lotusscript
Beitrag von: eknori (retired) am 11.03.05 - 13:24:56
Habe es jetzt nicht aktuell im Zugriff, aber mit xlSheet.Range und dann einem Selct auf das Range solltest du weiterkommen
Titel: Re: Excel Sortierung per Lotusscript
Beitrag von: Blackraven am 14.03.05 - 09:23:24
Hab ich mal versucht, aber anscheinend bin ich "unfähig" ;-)

bin da leider nicht sooooo fit :-(
Titel: Re: Excel Sortierung per Lotusscript
Beitrag von: Axel am 14.03.05 - 10:05:01
Hi,

dein Aufruf

xlApp.Selection.Sort  xlSheet.Columns("A"), xlAscending , "",_
xlSheet.Columns("B"), xlAscending , xlSheet.Columns("C"),_
xlAscending, xlGuess,1, False, xlTopToBottom

mit dem Parameter xlGuess ist soweit richtig. Du darfst nur nicht das gesamte Arbeitsblatt markieren, sondern nur den Bereich, den du sortieren willst.

Mit diesem Aufruf

xlSheet.Range("A7:B12").Select

markierst du den Bereich von Zeile 7 bis 12 in den Spalten A und B


Axel
Titel: Re: Excel Sortierung per Lotusscript
Beitrag von: Blackraven am 15.03.05 - 08:30:38
Also....
ich hab jetzt gebaut: Zeile 6 ist die Kopfzeile.
row1 letzte Zeile, wird über Schleife gezählt.


Set xlSheet = xlApp.WorkBooks(1).ActiveSheet
Dim srange As String
range = "A6:E"+Cstr(row1)
xlSheet.Range(srange).Select
xlApp.Selection.Sort  xlSheet.Columns("A"), xlAscending , "", xlSheet.Columns("B"),xlAscending ,xlGuess,1, False, xlTopToBottom

da stimmt aber irgendwas nicht mit, bekomm nen Fehler:
"Microsoft Excel: Reference is not valid"

Titel: Re: Excel Sortierung per Lotusscript
Beitrag von: Axel am 15.03.05 - 11:44:31
Hi,

hier liegt der Fehler:

Dim srange As String
range = "A6:E"+Cstr(row1)
xlSheet.Range(srange).Select


Das müsste wohl

srange = "A6:E"+Cstr(row1)

heißen.

Alerdings bin ich mir nicht ganz sicher, ob es als String-Variable funktioniert. Bei musste ich es als Variant-Wert übergeben.


Axel
Titel: Re: Excel Sortierung per Lotusscript
Beitrag von: Blackraven am 15.03.05 - 13:46:03
das war im Endeffekt nur ein schreibfehler mit srange und range.

Die Fehlermeldung war die gleiche.

jetzt hab ich einfach mal den oberen Beschriftungsteil entfernt, damit ich in der 1.Zeile den Header habe, und ab Zeile 2 dann die Daten.

Witzigerweise habe ich 2 Sheets mit der gleichen Formel sortieren wollen.
1.Sheet, Kopfzeile wird mit in die Sortierung eingebunden.
2.Sheet, Kopfzeile fest, rest wird korrekt sortiert.

Das macht doch keinen Spass :-(
Titel: Re: Excel Sortierung per Lotusscript
Beitrag von: Axel am 15.03.05 - 13:50:46
Hi,

hast du das auch mal versucht als Variant-Wert zu übergeben?


Axel
Titel: Re: Excel Sortierung per Lotusscript
Beitrag von: Blackraven am 15.03.05 - 14:02:08
xlApp.WorkBooks(1).Sheets(1).Select
Set xlSheet = xlApp.WorkBooks(1).ActiveSheet
xlSheet.Range("A6:E12").Select
xlApp.Selection.Sort  xlSheet.Columns("A"), xlAscending , "", xlSheet.Columns("B"),xlAscending ,xlGuess,1, False, xlTopToBottom


gleicher Fehler :-(

liegt also nicht am variant, muss irgendwie in der Sortierformel liegen.

genauso warum läuft der Code unterschiedlich bei 2 versch. Sheets ??

xlApp.WorkBooks(1).Sheets(2).Select
Set xlSheet = xlApp.WorkBooks(1).ActiveSheet

xlSheet.Cells.Select  'Gesamtes Arbeitsblatt markieren
xlApp.Selection.Sort  xlSheet.Columns("A"), xlAscending , "", xlSheet.Columns("B"), xlAscending , xlSheet.Columns("C"), xlAscending, xlGuess,1, False, xlTopToBottom
   
Titel: Re: Excel Sortierung per Lotusscript
Beitrag von: Axel am 15.03.05 - 14:34:45
Hi,

mal 'ne ganz andere Frage. Ich gehe zwar davon aus, dass du es gemacht hast, aber nur um sicher zu gehen.

Die Konstanten xlAscending, xlGuess usw. hast du entsprechend initialisiert, oder ?


Axel