Hallo Thomas,
also folgendes:
Wenn ich das Excel Sheet ohne normal erstelle (ohne Filter) und es
anschließend noch einmal öffne, kann ich doch über Daten->Filter.>AutoFilter
einen 'Filter über die komplette erste Spalte ersten (vorausgesetzt ich habe
sie markiert).
Jetzt wird jedoch noch nach nichtgefilter, sonden ich habe nur die
Buttons/Drop Downs zum Filter (wenn ich den jeweiligen Button beätige habe
ich alle Einträge die unter der Spalte stehen drin und zusätzlich noch
sortieren ersten 10,...)
Das selbe versuche ich nun auch mit C# auto. in dieses Dokument einzufügen.
Hierzu gehe ich wie folgt vor:
1. Hinzufügen der Spaltenüberschriften
2. Einfügend er Daten
3. Filter Erstellen mit:
Microsoft.Office.Interop.Excel.Range rg =
(Microsoft.Office.Interop.Excel.Range)sheet.Cells[1, "A"];
rg.EntireColumn.AutoFit();
rg.EntireRow.AutoFilter("1", "All",
Microsoft.Office.Interop.Excel.XlAutoFilterOperator.xlAnd, "All", true);
Wenn ich nun jedoch das Excel Sheet öffne, habe ich zwar die Buttons/Drop
Downs in Excel bei den jeweiligen Spalten,
jedoch kann ich die Buttons nicht betätigen bzw. bekomme keine Einträge
darunter angezeigt (Datensätze sind jedoch schon vorhanden).
Außerdem werden diese Buttons wieder gelöscht, wenn ich in irgend einem Feld
die Delete Taste beätige (dies kann auch durch Rückgängig nicht wieder
Rückgängig gemacht werden).
Hoffe du kannst mit den Infos etwas anfangen.
Andre
Post by Thomas RamelGrüezi Andre
Andre G. schrieb am 06.09.2006
Post by Andre G.jetzt hab ich das nächste Problem.
Dieses mal mit dem AutoFilter.
:-)
Post by Andre G.Wenn ich mir das über den Makro Rekorder aufnehme und mir im Anschluss
Rows("1:1").Select
Selection.AutoFilter
Ja, das 'erzeugt' die Autofilter-Buttons; jedoch wird noch nichts
gefiltert.
Post by Andre G.Schön und Gut, jedoch benötigt in C# die AutoFilter Methode einige Paramter.
object AutoFilter(
[In, Optional] object Field,
[In, Optional] object Criteria1,
[In, Optional] XlAutoFilterOperator Operator,
[In, Optional] object Criteria2,
[In, Optional] object VisibleDropDown
);
Nun habe ich folgendes versucht:rg.EntireRow.AutoFilter("1", 101,
Microsoft.Office.Interop.Excel.XlAutoFilterOperator.xlAnd, 101, true);
Wonach willst Du denn filtern? Wie sind die Kirterien?
Soll dies nur in einer Spalte geschehen?
Post by Andre G.Mein Problem ist jedoch, das ich eine DropDown angezeigt bekomme, jedoch
nichts auswählen bzw. betätigen kann.
Dieser DropDown ist dann in Excel, oder in deinem C#-Programm?
Hast Du in der Excel-Tabelle denn schon Wert unterhalb der
Spaltenüberschriften eingetragen?
Der Autofilter-DropDown liefert die Unikate der Inhalte der Spalte als
Auswahl für eine schnelle Filterung.
Die Optionalen Parameter sind für eine programmtechnisch gesteuerte
Filterung gedacht - die gibt es auch in VBA. Sobald Du in Excel nach einem
Wert filterst, werden diese Parameter bei der Aufzeichnung auch mit
ausgeworfen.
Post by Andre G.Hast du eine Idee, was die
richtigen parameter sind?
[In, Optional] object Field
--> wäre die erste Zelle der Spalte in der gefiltert wird
[In, Optional] object Criteria1,
--> wäre das erste Kriterium also der Inhalt auf den gefiltert wird
[In, Optional] XlAutoFilterOperator Operator,
--> wäre die Und/oder-Verknüfung der Kriterien
[In, Optional] object Criteria2,
--> wäre das zweite Kriterium also der Inhalt auf den gefiltert wird
[In, Optional] object VisibleDropDown
--> wäre dann wohl, ob der DropDown angezeigt werden soll oder nicht
Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2000 SP-3]
Microsoft Excel - Die ExpertenTipps