Forums Neueste Beiträge
 

an Excelexport weiteres Tabellenblatt anfügen

16/05/2009 - 10:40 von Johann Weiss | Report spam
Hallo zusammen,
ich exportiere Daten mit folgendem Code von Access nach Excel, was aucg gut
funktioniert.
Hier der Code:
Dim oExcel As Excel.Application, DB As DAO.Database, RS As DAO.Recordset,
I
As Long
On Error Resume Next
Err.Clear
Set oExcel = GetObject(, "Excel.Application ")
If Err.Number <> 0 Then Set oExcel = CreateObject("Excel.Application")
On Error GoTo 0
With oExcel
.Visible = True
.Workbooks.Add
.ActiveSheet.Name = CStr(Me!T_Blatt) ' Textfeld wo der Name des
Tabellenblatt stehen soll
Set DB = CurrentDb
Set RS = DB.OpenRecordset("qry_flexsuche", dbOpenSnapshot)
'qry_flexsuche ist der name der Abfrage
If Me!Spaltenk Then ' hier werden die Spaltenüberschrifen eingeblendet
For I = 0 To RS.Fields.Count - 1
.Cells(1, I + 1) = RS.Fields(I).Name
Next I
.Range("A2").Select
Else
.Range("A1").Select
End If
.Selection.CopyFromRecordset RS
If MsgBox("Speichern?", vbYesNo + vbQuestion) = vbYes Then
.ActiveWorkbook.SaveAs Me!FName ' hier wird der Name der Datei abgefragt
der gespeichert werden soll.
Else
.ActiveWorkbook.Close SaveChanges:=False
End If
.Quit
End With
-
Nun meine Frage, ist es möglich wenn die Exceldatei schon besteht, ein
weiteres Tabellenblatt anzufügen?
und wie Funktioniert das?

Der Name des Tabellenblattes ist immer unterschiedlich.
zB. Tabellenblatt 1 heist "Maschine 1" bereits vorhanden,
Tabellenblatt 2 soll dann zB. Fràsmaschine 14 heisen.


hier der Code wo der Name de Blattes ausgewàhlt wird.

-
.ActiveSheet.Name = CStr(Me!T_Blatt) ' Textfeld wo der Name des
Tabellenblatt stehen soll
-
gibt es da eine Möglichkeit?
oder Irgendwie ein Beispiel?

gruss Hans
 

Lesen sie die antworten

#1 Thomas Möller
16/05/2009 - 11:23 | Warnen spam
Hallo Johann,

Johann Weiss schrieb:
Hallo zusammen,
ich exportiere Daten mit folgendem Code von Access nach Excel, was aucg gut
funktioniert.
Hier der Code:
Dim oExcel As Excel.Application, DB As DAO.Database, RS As DAO.Recordset,
I
As Long
On Error Resume Next
Err.Clear
Set oExcel = GetObject(, "Excel.Application ")
If Err.Number <> 0 Then Set oExcel = CreateObject("Excel.Application")
On Error GoTo 0
With oExcel
..Visible = True
..Workbooks.Add
..ActiveSheet.Name = CStr(Me!T_Blatt) ' Textfeld wo der Name des
Tabellenblatt stehen soll
Set DB = CurrentDb
Set RS = DB.OpenRecordset("qry_flexsuche", dbOpenSnapshot)
'qry_flexsuche ist der name der Abfrage
If Me!Spaltenk Then ' hier werden die Spaltenüberschrifen eingeblendet
For I = 0 To RS.Fields.Count - 1
..Cells(1, I + 1) = RS.Fields(I).Name
Next I
..Range("A2").Select
Else
..Range("A1").Select
End If
..Selection.CopyFromRecordset RS
If MsgBox("Speichern?", vbYesNo + vbQuestion) = vbYes Then
..ActiveWorkbook.SaveAs Me!FName ' hier wird der Name der Datei abgefragt
der gespeichert werden soll.
Else
..ActiveWorkbook.Close SaveChanges:=False
End If
..Quit
End With
-



Der Code ist auf Grund der fehlenden Einrückungen und Leerzeilen nicht
leicht zu lesen.
Verwendest Du den Code wirklich in dieser Form? Mir geht es insbesondere
um die zwei Punkte innerhalb der With-Böcke.


Nun meine Frage, ist es möglich wenn die Exceldatei schon besteht, ein
weiteres Tabellenblatt anzufügen?
und wie Funktioniert das?

Der Name des Tabellenblattes ist immer unterschiedlich.
zB. Tabellenblatt 1 heist "Maschine 1" bereits vorhanden,
Tabellenblatt 2 soll dann zB. Fràsmaschine 14 heisen.



Prinzipiell ist das, was Du vor hast, möglich. Mir ist noch nicht ganz
klar, wo genau Dein Problem liegt:
Weißt Du (noch) nicht, wie Du feststellen kannst, ob eine Datei schon
existiert?
Oder fehlt Dir das Wissen, um eine bestehende Excel-Datei zu öffnen?
Oder möchtest Du wissen, wie man in einer bestehenden, geöffneten
Excel-Datei ein weitere Arbeitsblatt hinzufügt?

CU
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen