Autor Thema: Parameter an Excel übergeben  (Gelesen 3728 mal)

Offline cpo

  • Aktives Mitglied
  • ***
  • Beiträge: 176
  • Geschlecht: Weiblich
  • ...nichts wissen macht auch nichts!
Parameter an Excel übergeben
« am: 23.06.03 - 16:29:43 »
Ich übergebe Werte von Notes an ein Excel-Objekt will dann in Excel alles mögliche machen. Das meiste klappt auch wunderbar (Formatieren etc.)
Jetzt möchte ich aber die Sortierfunktion von Excel nutzen und da sagt mir die Hilfe (und der Makro-Rekorder  ;D), dass die Parameter mit := übergeben werden müssen.
Also "Key1:=Range("A2"), Order1:=xlAscending usw"
Dabei streikt dann aber mein script-Editor, := mag er verständlicherweis nicht...
xlsheet.Application.Selection.Sort(und dann ??? ???)
Kennt jemand die Lösung?

CPO

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Parameter an Excel übergeben
« Antwort #1 am: 23.06.03 - 16:56:51 »
... wenn du über die Hilfe in Excel nach dem Sort-Befehl suchst, dann bekommst du die Syntax auch in der "normalen" Schreibweise - wenn mich nicht alles täuscht...

ata
Grüßle Toni :)

Offline cpo

  • Aktives Mitglied
  • ***
  • Beiträge: 176
  • Geschlecht: Weiblich
  • ...nichts wissen macht auch nichts!
Re:Parameter an Excel übergeben
« Antwort #2 am: 23.06.03 - 17:21:56 »
ata,

entweder bin ich blond oder zu sehr an die Notes-Hilfe gewöhnt oder es täuscht dich.... 8)

CPO

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Parameter an Excel übergeben
« Antwort #3 am: 23.06.03 - 21:07:47 »
... die längste Zeit hat Excel benötigt zum Laden...

... aus der Excel-VBA-Hilfe:
Zitat
Sortiert einen PivotTable-Bericht, einen Bereich bzw. den aktiven Bereich (wenn nur eine Zelle angegeben wird).

Syntax

Ausdruck.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod)

Ausdruck   Erforderlich. Ein Ausdruck, der ein Range-Objekt zurückgibt.

Key1   Variant optional. Das erste Sortierfeld, als Text (ein PivotTable-Feld oder Bereichsname) oder als Range-Objekt (z. B. "Abtlg" oder Cells(1, 1)).

Order1   Variant optional. Zulässig ist eine der folgenden XlSortOrder-Konstanten: xlAscending oder xlDescending. Mit xlAscending wird Key1 in aufsteigender Reihenfolge sortiert. Mit xlDescending wird Key1 in absteigender Reihenfolge sortiert. Die Standardkonstante ist xlAscending.

Key2   Variant optional. Das zweite Sortierfeld, als Text (ein PivotTable-Feld oder Bereichsname) oder als Range-Objekt. Falls dieses Argument ausgelassen wird, gibt es kein zweites Sortierfeld. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.

Type   Variant optional. Gibt an, welche Elemente sortiert werden sollen. Zulässig ist eine der folgenden XlSortType-Konstanten: xlSortLabels oder xlSortValues. Verwenden Sie dieses Argument nur beim Sortieren von PivotTable-Berichten.

Order2   Variant optional. Zulässig ist eine der folgenden XlSortOrder-Konstanten: xlAscending oder xlDescending. Verwenden Sie xlAscending, um Key2 in aufsteigender Reihenfolge zu sortieren. Verwenden Sie xlDescending, um Key2 in absteigender Reihenfolge zu sortieren. Die Standardkonstante ist xlAscending. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.

Key3   Variant optional. Das dritte Sortierfeld, als Text (ein Bereichsname) oder als Range-Objekt. Falls dieses Argument ausgelassen wird, gibt es kein drittes Sortierfeld. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.

Order3   Variant optional. Zulässig ist eine der folgenden XlSortOrder-Konstanten: xlAscending oder xlDescending. Verwenden Sie xlAscending, um Key3 in aufsteigender Reihenfolge zu sortieren. Verwenden Sie xlDescending, um Key3 in absteigender Reihenfolge zu sortieren. Die Standardkonstante ist xlAscending. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.

Header   Variant optional. Legt fest, ob die erste Zeile Überschriften enthält oder nicht. Zulässig ist eine der folgenden xlGuess-Konstanten: xlGuess, xlNo oder xlYes. Mit xlYes enthält die erste Zeile Überschriften (die nicht sortiert werden). Mit xlNo gibt es keine Überschriften (der gesamte Bereich wird sortiert). Mit xlGuess übernimmt Microsoft Excel die Entscheidung, ob eine Überschrift vorhanden ist und falls vorhanden, wo sie sich befindet. Die Standardkonstante ist xlNo. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.

OrderCustom   Variant optional. Bei diesem Argument handelt es sich um einen ganzzahligen, bei 1 beginnenden Offset für die Liste der benutzerdefinierten Sortierreihenfolgen. Wird OrderCustom ausgelassen, wird 1 (Standard) verwendet.

MatchCase   Variant optional. True, wenn beim Sortieren Groß- und Kleinschreibung berücksichtigt wird. False, wenn Groß- und Kleinschreibung nicht berücksichtigt wird. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.

Orientation   Variant optional. Hat das Argument den Wert xlSortRows, so wird von oben nach unten sortiert (zeilenweise). Ist das Argument xlSortColumns, so erfolgt die Sortierung von links nach rechts (spaltenweise).

SortMethod   Variant optional. Der Sortiertyp. Kann eine der folgenden XlSortMethod-Konstanten sein: xlPinYin oder xlStroke. Einige dieser Konstanten stehen Ihnen, abhängig von der ausgewählten oder installierten Sprachunterstützung (z. B. Deutsch), möglicherweise nicht zur Verfügung.

Anmerkungen

Die Einstellungen für Header, Order1, Order2, Order3, OrderCustom und Orientation werden bei jeder Verwendung dieser Methode gespeichert. Wenn Sie für diese Argumente keine Werte angeben, werden beim nächsten Aufruf der Methode die gespeicherten Werte verwendet. Um Probleme zu vermeiden, legen Sie diese Argumente bei jeder Verwendung dieser Methode explizit fest.

... oder ich habe dich falsch verstanden  :-\

ata
« Letzte Änderung: 23.06.03 - 21:08:58 von ata »
Grüßle Toni :)

Offline cpo

  • Aktives Mitglied
  • ***
  • Beiträge: 176
  • Geschlecht: Weiblich
  • ...nichts wissen macht auch nichts!
Re:Parameter an Excel übergeben
« Antwort #4 am: 01.07.03 - 15:36:48 »
Hi ata,

zugegeben, ich mache diesen Formatierungskrempel eigentlich nur, weil ich WILL und nicht weil ich muss... Aber wenn sich das doofe Excel querstellt WILL ich halt  >:(

Schaffe es aber nicht :'(

Entweder mache ich ein
xlsheet.Application.Selection.Sort ("B2")
Ergebnis ist eine Fehlermeldung, "Die eingegebene Formel enthält einen Fehler"

oder ich mache
xlsheet.Application.Selection.Sort ("B2"), "xlAscending"
Ergebnis ist die Meldung "Die Sort-Methode des Range-Objektes konnte nicht ausgeführt werden"

Vorher habe ich die Selection mal auf eine Zelle gestellt, mal auf mehrere Zeilen - Ergebnis bleibt gleich.

CPO

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:Parameter an Excel übergeben
« Antwort #5 am: 01.07.03 - 15:58:55 »
Hi,

ich hab mal so was gemacht. Hier Auszüge aus dem Agenten:

...
Set objExcel = CreateObject("Excel.Application")
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
...
'Füllen der Zellen
...
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
...

Vielleicht hilft es dir weiter.

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

Offline cpo

  • Aktives Mitglied
  • ***
  • Beiträge: 176
  • Geschlecht: Weiblich
  • ...nichts wissen macht auch nichts!
Re:Parameter an Excel übergeben
« Antwort #6 am: 02.07.03 - 09:53:22 »
Danke für die Hilfe, klappt aber bei mir nicht. Der Fehler ist immer noch, dass die Sort-Methode des Range-Objektes...  >:( >:( >:(

Hier mal mein Testscript: (mit Biene Maja damit man nicht soviel tippen muss :D)

Dim Arr1(1 To 10) As String
   Dim Arr2(1 To 10) As String
   Dim Arr3(1 To 10) As String
   
   Arr1(1) = "Willi"
   Arr1(2) = "Willi"
   Arr1(3) = "Maja"
   Arr1(4) = "Willi"
   Arr1(5) = "Willi"
   Arr1(6) = "Maja"
   Arr1(7) = "Willi"
   Arr1(8) = "Willi"
   Arr1(9) = "Maja"
   Arr1(10) = "Willi"
   
   Arr2(1) = "Biene"
   Arr2(2) = "Hummel"
   Arr2(3) = "Biene"
   Arr2(4) = "Hummel"
   Arr2(5) = "Biene"
   Arr2(6) = "Hummel"
   Arr2(7) = "Biene"
   Arr2(8) = "Biene"
   Arr2(9) = "Biene"
   Arr2(10) = "Berta"
   
   Arr3(1) = "5"
   Arr3(2) = "3"
   Arr3(3) = "7"
   Arr3(4) = "6"
   Arr3(5) = "8"
   Arr3(6) = "4"
   Arr3(7) = "3"
   Arr3(8) = "2"
   Arr3(9) = "1"
   Arr3(10) = "0"
   
   
   Set objExcel = CreateObject("Excel.Application")   
   objExcel.Visible = True
   objExcel.Workbooks.Add
   Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)   
   For s = 1 To 10
      objsheet.Cells(s, 1).Value = arr1(s)
   Next
   For s = 1 To 10
      objsheet.Cells(s, 2).Value = arr2(s)
   Next
   For s = 1 To 10
      objsheet.Cells(s, 3).Value = arr3(s)
   Next
   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

Findet jemand den Fehler?
CPO

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:Parameter an Excel übergeben
« Antwort #7 am: 02.07.03 - 13:13:46 »
Hi,

ich denke ich hab den Fehler. Dir fehlen die Konstanten xlGuess usw.

Füge diese Zeilen noch ein:

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

Dann sollte es funktionieren.

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

Offline cpo

  • Aktives Mitglied
  • ***
  • Beiträge: 176
  • Geschlecht: Weiblich
  • ...nichts wissen macht auch nichts!
Re:Parameter an Excel übergeben
« Antwort #8 am: 02.07.03 - 15:05:12 »
Ohjeeeeh, auf die Idee´bin ich gar nicht gekommen (bin wirklich blond ;D)
Irgendwie hatte ich geglaubt, dass Excel mich versteht, wenn ich ihm einfach Parameter (und dann noch ohne "" - saublöd!) rüberschiebe...
Vielen, vielen Dank!
CPO

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:Parameter an Excel übergeben
« Antwort #9 am: 02.07.03 - 17:44:27 »
Hi,

hat nichts mit blond zu tun.

Ich hatte dir ja die entsprechenden Zeilen gepostet, ohne die Konstanten mit rein zu schreiben. Also ist es auch teilweise mein Versehen.


Axel



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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz