Autor Thema: Sortieren in Excel  (Gelesen 5590 mal)

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Sortieren in Excel
« am: 23.06.04 - 16:03:36 »
Hallo,
ich exportiere Daten nach Excel und möchte anschließend meine Excel-Tabelle sortieren.  Also hab ich mir meine Excel-Tabelle geöfnnet und den Makro-Recorder angeschmissen:
gesamte Tabelle markiert -> Daten -> Sortieren -> Sortierkriterium ausgewählt(Spalte "B") dann "absteigend" ausgewählt und danach den Recorder gestoppt. Ich erhalte folgenden VBA-Code:
#############schnipp############
Cells.Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
#######schnapp###########
Wie bringe ich das jetzt nach LotusScript?
Mein Versuch:
g_xlApp.Cells.Select
g_xlApp.Selection.Sort(Range"B2", xlAscending, xlGuess, 1, False, xlTopToBottom)
wird abgelehnt mit "Unexspected:"B2";Exspected:Operator"
Es gibt doch hier sicher jemanden, der sowas schon getan hat?
(SuFu mit "excel + sort" war nicht zielführend)
Danke für eure Tipps
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Sortieren in Excel
« Antwort #1 am: 23.06.04 - 16:22:21 »
Hi,

das hab ich mal gemacht.

...
Set objExcel = CreateObject("Excel.Application")
...
Call objExcel.Workbooks.Add
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)

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

Sortierung erfolgt nach den ersten 3 Spalten aufsteigend.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Sortieren in Excel
« Antwort #2 am: 23.06.04 - 16:52:44 »
Danke, Axel.
Mein Code sieht jetzt so aus:
   Set g_xlApp = CreateObject( "Excel.Application")
         Set g_xlWBook = g_xlWBooks.Add
.....
   Set g_xlActSheet = g_xlWBook.ActiveSheet
......
   g_xlActSheet.Cells.Select  'Gesamtes Arbeitsblatt markieren
   g_xlApp.Selection.Sort  g_xlActSheet.Columns("B"),"", xlAscending ,  xlGuess,1, False, xlTopToBottom   
Ich erhalte jetzt eine Fehlermeldung(s.u.) Die ganzen xl....Attribute(ascending...) habe ich als variant deklariert.
Kannst du mir nochmal weiterhelfen?

Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Sortieren in Excel
« Antwort #3 am: 23.06.04 - 18:10:00 »
Hi,

die ganzen xl... - Attribute sind Konstanten. Diese habe ich in einer Lib deklariert und vergessen mitzuposten. Sorry.  :-\

Die Namen haben ich denen aus Excel angeglichen und die dazu passenden Werte aus dem Objekt-Katalog im VBA-Editor rausgesucht.

Wenn ich morgen früh in der Firma bin kann ich die die Angaben posten.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Sortieren in Excel
« Antwort #4 am: 23.06.04 - 23:01:02 »
... zu den Konstanten gibt es in der IBM-Sandbox eine Datenbank zum Download - suche nach "EXCEL", oder "WORD"...


ata
Grüßle Toni :)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Sortieren in Excel
« Antwort #5 am: 24.06.04 - 08:24:56 »
Hi,

hier die versprochenen Konstanten:

Zitat

'Konstanten für die Sortierung
Const xlAscending = 1
Const xlGuess = 0
Const xlTopToBottom = 1



@ata

Für Excel gibt es was, aber nur für Version 97. Es besteht die Möglichkeit, dass einige Konstanten geändert wurden und neue hinzugekommen sind.
Man kann diese Datei sicherlich als Anhaltspunkt verwenden, trotzdem schadet ein Blick in die Objektverweise im VBA-Editor nichts.


Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Sortieren in Excel
« Antwort #6 am: 24.06.04 - 08:52:51 »
@Axel

... da gebe ich dir natürlich recht...

ata
Grüßle Toni :)

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Sortieren in Excel
« Antwort #7 am: 24.06.04 - 09:49:27 »
Danke euch beiden.
Sobald mein Testserver wieder einsatzbereit ist, werde ich die Konstanten einbauen und hoffe mal dass es dann klappt.
@ata: Passt schon, wir arbeiten noch mit Office97.
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Sortieren in Excel
« Antwort #8 am: 24.06.04 - 10:36:00 »
So, nun gehts. Beim ersten Versuch bekam ich in der Zeile
g_xlApp.Selection.Sort  g_xlActSheet.Columns("B"), xlAscending ,  xlGuess,1, False, xlTopToBottom
erhielt ich zwar: Microsoft Excel: Bezug ist ungültig
Nachdem ich für die ganzen optionalen weiteren Sortierkriterien leere Parameter übergeben habe, läuft es aber durch.
g_xlApp.Selection.Sort  g_xlActSheet.Columns("B"),"",,,,, xlAscending ,  xlGuess,1, False, xlTopToBottom
Danke nochmals.
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz