PDA

Vollständige Version anzeigen : Datenexport zu Excel mit kuriosen Problem....


Biegel
21.01.2008, 16:08
Hallo,

ich exportiere die Access Daten nach Excel und es funktioniert auch Klasse....


Leider kann ich aber nun mit diesen Daten nicht rechnen. Excel erkennt die Daten nicht und man kann mit diesen nicht rechnen.


Wenn ich nun die Prozedur bis zum Paste Befehl durchlaufen lassen und dann mit der Hand die Daten einfüge, klappt es.(Wenn ich das kopieren aufzeichne, kommt der gleiche Paste Befehl heraus)


Hier mal ein Auszug....


...
Sheets("Grunddaten").Activate
Cells.Select
Selection.ClearContents
ActiveSheet.Range("A1").Select
ActiveSheet.Paste



Hat jemand eine Idee woran es liegen kann? (Inhalte einfügen geht leider auch nicht, habe Unicode und Text Format probiert)


LG Biegel

Zuri
21.01.2008, 22:24
Hallo Biegel,

ich kenne ein ähnliches Problem mit Daten, die von Access nach Excel importiert werden. Dort klappt dann immer der S-Verweis nicht. Wenn ich die Zellen mit F2 editiere, funktionieren die Verweise.

Es ist offenbar grundsätzlich ein Problem, dass Excel Probleme haben kann mit Daten, die aus Access kommen? Da hilft es dann auch nicht die Zellen neu zu formatieren.

Ich würde die Daten als Text exportieren und dann wieder in das Excel importieren. Dann müßten eigentlich die Berrechnungen gehen? Natürlich ist das so unbefridigend, wenn Du z. B. hier einen festen Programmablauf haben möchtest.

Viele Grüße aus Stuttgart

von

Zuri

:rolleyes:

ebs17
21.01.2008, 22:40
... exportiere die Access Daten nach Excel und es funktioniert auch Klasse ...
Leider kann ich aber nun mit diesen Daten nicht rechnen.
Also doch nicht Klasse. Kurios?

Der Vorschlag von Zuri - Umweg über Textexport - ist dann ganz abenteuerlich.

Sieh Dir doch mal die hier auch vielfach besprochenen Methoden

- TransferSpreadsheet und
- CopyFromRecordset an.

Wenn Du die Anforderungen an den Export nach Excel genauer beschreibst, könnte man genauere Hinweise geben.

peterffw
22.01.2008, 06:26
Hi Biegel,

woher kommen denn die Daten, die Du mit Paste einfügen willst?
Haben Sie auch das entsprechende Format für ein Excelsheet?

Ist Dein Codeausschnitt aus Excel (vermutlich, da die Verweise oder der Bezug aus ein Excel-Objekt fehlen) oder aus Access?

Servus
Peter

Biegel
22.01.2008, 08:03
Moinsen,


vielen Dank für die bisherigen Antworten.

Das kuriose an der Sache ist, wenn ich den Paste Befehl mit der Hand mache, klappt es perfekt.

Hier mal der Code:

Private Sub btn_DatenAktualisieren_Click()
Dim BoApp As busobj.Application, BODoc As busobj.Document, BORep As busobj.Report
Dim strUser As String, strPass As String

Select Case MsgBox("1. Um aktuelle Daten zu erhalten, müssen diese vorher in BO aktualisiert werden!" _
& vbCrLf & "2. BO muss geschlossen sein!" _
& vbCrLf & "" _
& vbCrLf & "Sind beide Bedingungen erfüllt??" _
, vbYesNo Or vbQuestion Or vbDefaultButton2, "Achtung!")

Case vbYes

Set BoApp = CreateObject("BusinessObjects.application")

Select Case Environ("Username")
Case "TH0000"
strUser = "th0000"
strPass = "XXX"
Case "TH0001"
strUser = "TH0001"
strPass = InputBox("Bitte Passwort eingeben", "Passwort?", "Passwort für User " & strUser & " eingeben!")
Case "TH0002"
strUser = "TH0002"
strPass = InputBox("Bitte Passwort eingeben", "Passwort?", "Passwort für User " & strUser & " eingeben!")
End Select

With BoApp
.LoginAs strUser, strPass
.Visible = True
.Documents.Open ("S:\GMK.rep")
With .ActiveDocument
'.Refresh

'rpt.Exporttabelle.Activate
BoApp.ActiveDocument.Reports("Exporttabelle").Activate
'For X = 1 To 50
Variable = BoApp.CmdBars(2).Controls(2).Controls(23).Caption
BoApp.CmdBars(2).Controls(2).Controls(23).Execute

Sheets("Grunddaten").Activate
Cells.Select
Selection.ClearContents
ActiveSheet.Range("A1").Select
ActiveSheet.Paste ' Bis hier klappt alles, liegt also am Paste

End With
End With

End Select
Set BoApp = Nothing
Set BODoc = Nothing
End Sub

Wie man nun sieht, handelt es sich nicht um Access, sondern um BO. Ist aber ähnlich und ich habe Access bewusst als Vergleich gewählt, da BO selten genutzt wird.


LG Biegel

ebs17
22.01.2008, 10:58
Wie man nun sieht, handelt es sich nicht um Access, sondern um BO. Ist aber ähnlich und ich habe Access bewusst als Vergleich gewählt, da BO selten genutzt wird.

Somit könnte man Deinen einleitenden Beitrag als "Verar..." bezeichnen. Ist das nötig?

Für alle Unwissenden wie mich: Gibt es "BO" auch ausgeschrieben und was ist das?

In dem nun ausführlicheren Codeausschnitt kann ich immer noch nicht erkennen, wo die zu kopierenden Daten herkommen und an welcher Stelle es um Excel geht.

Stiftleander
22.01.2008, 11:35
Hallo,
ich glaube es liegt an Paste.
Nimm doch mal ActiveSheet.Pastespecial.
oder verwendest als Ziel nicht das Arbeitsblatt (ActiveSheet) sonder das Range-Objekt.

Gruß
Stiftlaender

Biegel
22.01.2008, 13:32
Somit könnte man Deinen einleitenden Beitrag als "Verar..." bezeichnen. Ist das nötig?

Nein! BO = BusinessObjects

Da es nun kein spezifisches Problem ist, welches nur BO betriff und man es auf Access übertragen kann, macht die Fragestellung Sinn....


Ich habe das Problem nun mit Sendkeys lösen können.


LG und danke trotzdem
Biegel

P.S.: Wem es interessiert, die Zwischenablage wandelt das Format in ein für Excel sinnvolles Format um und deshalb funktioniert es von Hand. Wenn man nun Paste via VBA macht, umgeht man indirekt die Zwischenablage. (War mal ne grobe Schilderung)