5.8k Aufrufe
Gefragt in Datenbanken von
Hallo,

ich versuche aus Access 2010 auf Excel 2010 zuzugreifen. Alles klappt wunderbar.
Wenn ich jedoch Zellen markiere und anschließend mit dieser Markierung
weiterarbeiten will, geht das nicht. Der Befehl "selection" scheint unbekannt zu sein.
Kann mir jemand helfen?

Code:

Private Sub FormatExcelDat(datei)
Dim xlApp, xlBook, xlSheet As Object

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.workbooks.Open(datei)
Set xlSheet = xlBook.Worksheets(1)
xlSheet.range("A1:D1").Orientation = 90 'das funktioniert!
xlSheet.selection.Orientation = 0 'das nicht
selection.Orientation = 0 'das auch nicht
xlBook.Save
xlApp.Application.Quit
End Sub

Gruß
Mark

21 Antworten

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Mark,

Ich blicke nicht wirklich durch, würde es für mich etwas anders lösen, was das nicht weiterarbeiten können betrifft (ursprüngliche Frage) könnte ich mir vorstellen das vor ende der Makroaufzeichung die Markierung nicht aufgelöst wurde.

Ich glaube es macht wenig Sinn wenn ich mich hier weiter einbringe und empfehle mich mit den besten Wünschen.

Gruß

Paul1
0 Punkte
Beantwortet von lorf55 Mitglied (699 Punkte)
Hallo Paul1,

du hast Stil.
Respekt.

Gruß
lorf
0 Punkte
Beantwortet von
Hallo lorf55,

klappt leider auch nicht...

Anwendungs- oder objektdefinierter Fehler.

Hmm, irgendwie will Access nicht so wie ich will. Direkt in Excel klappt
das ja.


--------------------------
Also erstmal vielen Dank für eure Antworten und Hinweise. Wenn ihr
noch weitere Hinweise habt, gerne!

Gruß
Mark
0 Punkte
Beantwortet von lorf55 Mitglied (699 Punkte)
Hallo Mark,
Anwendungs- oder objektdefinierter Fehler.

an welcher Stelle ist das denn?
In meinem Excel2k funktioniert das super.
Was hast du denn in Access programmiert?

Gruß
0 Punkte
Beantwortet von
Hallo lorf55,

der Fehler tritt auf bei:

xlSheet.Application.Range(xlSheet.Application.Selection, _
xlSheet.Application.Selection.End(xlToRight)).Select


Ich hab das nochmal ein bisschen eingegrenzt. Mein Access mag
den Befehl 'xlSheet.Application.Selection.End(xlToRight)' nicht.

folgende Befehle machen kein Problem:

xlSheet.Application.Range(xlSheet.Application.Selection,
xlSheet.Application.Selection).Select

xlSheet.Application.Range(xlSheet.Application.Selection, "B1").Select

Was meinst du mit 'in Access programmiert'? Den Code habe ich
doch oben (Antwort 9) schon geschrieben. Das soll natürlich nicht
die Endfassung sein, aber ich denke für die Problemschilderung
reicht's, oder?

Hab übrigens Office 2010. In meinem Excel2010 klappt es auch
(natürlich ohne xlApp etc.), daher wundert mich das ja auch alles...

Gruß
0 Punkte
Beantwortet von lorf55 Mitglied (699 Punkte)
Ich melde mich heute Abend nochmal.
Muss jetzt weg.
0 Punkte
Beantwortet von lorf55 Mitglied (699 Punkte)
Access kennt die Konstanten von Excel nicht, wenn man sie angibt, wie ich sie angegeben habe. Deshalb habe ich xlToRight den Wert extra zugewiesen.

Private Sub FormatExcelDat(datei)
Dim xlApp, xlBook, xlSheet As Object

xlToRight = -4161
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("Mappe1.xls")
Set xlSheet = xlBook.Worksheets(1)

xlSheet.Range("A1").Select
xlSheet.Application.Range(xlSheet.Application.Selection, _
xlSheet.Application.Selection.End(xlToRight)).Select
xlSheet.Application.Selection.Font.Bold = True
xlBook.Save
xlApp.Application.Quit

End Sub
0 Punkte
Beantwortet von lorf55 Mitglied (699 Punkte)
Ok, wie es immer ist - kaum gibt man zu, dass man zu doof ist, die Lösung zu finden, schon hat man sie - XlDirection. Also sieht es jetzt so aus:

Private Sub FormatExcelDat(datei)
Dim xlApp, xlBook, xlSheet As Object

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("Mappe1.xls")
Set xlSheet = xlBook.Worksheets(1)

xlSheet.Range("A1").Select
xlSheet.Application.Range(xlSheet.Application.Selection, _
xlSheet.Application.Selection.End(XlDirection.xlToRight)).Select
xlSheet.Application.Selection.Font.Bold = True
xlBook.Save
xlApp.Application.Quit



Gruß
0 Punkte
Beantwortet von
Hallo lorf55,

tut mir leid, aber wieder eine Fehlermeldung:

Laufzeitfehler 424 - Objekt erforderlich

in der xltoright-Zeile...

Gruß
0 Punkte
Beantwortet von
Mit meinem Acc2k hat das genau so funktioniert.
Eventuell muss es bei dir heißen:
Excel.XlDirection.xlToRight

Oder du nimmst die Version mit der -4161.
...