Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Daten in eine Excel-Vorlage exportieren
zurück: DomWert (DLookUp) in Abfrage weiter: Fehler unbegründet Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Loddar
Im Profil kannst Du frei den Rang ändern


Verfasst am:
16. Jun 2006, 13:14
Rufname:

Daten in eine Excel-Vorlage exportieren - Daten in eine Excel-Vorlage exportieren

Nach oben
       

Hallo
Ich hab schon gesucht, aber leider nichts passendes gefunden!
Ich hab ein Problem mit dem Erstellen eines Excel-Arbeitsblatt.

Ich möchte aus einem Access-Formular heraus eine Excel-Arbeitsmappe erstellen.
Dazu soll eine Vorlage verwendet werden.
Die Vorlage hat den Namen „HzPKalk.xlt“

Diese Vorlage ist ziemlich komplex und soll nur 4 Felder aus Access übernehmen.
Der Rest soll in Excel weiterbearbeitet werden.

Das Excel-Arbeitsblatt soll automatisch gespeichert werden:
Name = NName & Datum
Beispiel : Testmeier16_06_2006

Name der Felder aus Access die nach Excel sollen:
NName nach B4
Az nach B5
Datum nach C2
PktWert nach D7

Ich hab schon mal den Ansatz Access-Datensatz nach Excelvorlage exportieren von Steffen0815 versucht.

Da die Excelvorlage aber derart viele Formatierungen und Formeln enthält, habe ich der Versuch aufgegeben aus Access heraus ein Arbeitsblatt zu erstellen. In diesem Arbeitsblatt werden die Kosten für Pflegeleistungen errechnet (reinstes Chaos!)

Wer kann mir mit einem Beispielcode unter die Arme greifen?

Gruß

Loddar

_________________
Access-Neuling
steffen0815
VBA-Programmierer


Verfasst am:
16. Jun 2006, 13:59
Rufname:


AW: Daten in eine Excel-Vorlage exportieren - AW: Daten in eine Excel-Vorlage exportieren

Nach oben
       

Hallo Loddar,
für das durchstylen fehlt mir im Moment die Zeit - hier ein Angebot, was noch angepasst werden muss:
Code:
Function ErstelleLeereExcelDat()
    Dim ExcelDatNam As String
    Dim xlApp As Object ' Excel.Application
    Dim xlBook As Object  'Excel.Workbook
    Dim xlSheet As Object ' Excel.Worksheet
   
    ExcelDatNam = Me!NName & Format(Date, "dd_mm_yyyy")
    ' besser für solche Zwecke die "ammerikanische Notation"
    ' Format(Date, "yyyy_mm_dd")
    On Error Resume Next
    Set xlApp = GetObject(, "Excel.Application")
    On Error GoTo 0
    If xlApp Is Nothing Then
        Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = True
    End If
    ' Vorlage anpassen
    xlApp.Workbooks.Add Template:="C:\Dokumente ...\.....\HzPKalk.xlt"
    Set xlBook = xlApp.ActiveWorkbook
    Set xlSheet = xlBook.ActiveSheet
    With xlSheet
       .Cells(4, 2) = Me!NName   ' B4
       ' ...
    End With
    xlBook.SaveAs ExcelDatNam
    xlBook.Application.Quit
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
End Function

_________________
Gruß Steffen
Loddar
Im Profil kannst Du frei den Rang ändern


Verfasst am:
16. Jun 2006, 17:10
Rufname:

AW: Daten in eine Excel-Vorlage exportieren - AW: Daten in eine Excel-Vorlage exportieren

Nach oben
       

Loddar am 16. Jun 2006 um 16:52 hat folgendes geschrieben:
Hallo Steffen

Da Fußball langweilig geworden ist (Argentinien für inzwischen 4:0) , hab ich Dein "Angebot" wahrgenommen.
Vielen Dank - es klappt!

Ich hab aber noch folgende Probleme:

Die Blatt ist geschützt (ohne Kennwort).
Wie lautet der Befehl um den Blattschutz auszuschalten und nach dem Einfügen der Daten aus Access, wieder einzuschalten?

Die Vorlage hat 4 Arbeitsblätter.
die Daten sollen im Arbeitsblatt "Berechnung" eingefügt werden.
Muss ich das irgendwo einfügen?

Wie kann ich den Speicherpfad festlegen?
Zurzeit wird unter C:\Dokumente und Einstellungen ..... gespeichert.
Ich würde aber G:\Pflege\Kalkulation "bevorzugen"

Gruß

Loddar

PS: Argentinien hat 6:0 gewonnen

Hallo Steffen

Da Fußball langweilig geworden ist (Argentinien für inzwischen 4:0) , hab ich Dein "Angebot" wahrgenommen.
Vielen Dank - es klappt!

Ich hab aber noch folgende Probleme:

Die Blatt ist geschützt (ohne Kennwort).
Wie lautet der Befehl um den Blattschutz auszuschalten und nach dem Einfügen der Daten aus Access, wieder einzuschalten?

Die Vorlage hat 4 Arbeitsblätter.
die Daten sollen im Arbeitsblatt "Berechnung" eingefügt werden.
Muss ich das irgendwo einfügen?

Wie kann ich den Speicherpfad festlegen?
Zurzeit wird unter C:\Dokumente und Einstellungen ..... gespeichert.
Ich würde aber G:\Pflege\Kalkulation "bevorzugen"

Gruß

Loddar

PS: Argentinien hat 6:0 gewonnen

_________________
Access-Neuling
steffen0815
VBA-Programmierer


Verfasst am:
16. Jun 2006, 17:28
Rufname:

AW: Daten in eine Excel-Vorlage exportieren - AW: Daten in eine Excel-Vorlage exportieren

Nach oben
       

Hallo,
alles weitere ungetestet (keine Zeit)
Code:
Function ErstelleLeereExcelDat()
    Dim ExcelDatNam As String
    Dim xlApp As Object ' Excel.Application
    Dim xlBook As Object  'Excel.Workbook
    Dim xlSheet As Object ' Excel.Worksheet
   
    ' Ich würde aber G:\Pflege\Kalkulation "bevorzugen"
    ExcelDatNam = "G:\Pflege\Kalkulation\" & Me!NName & _
                  Format(Date, "dd_mm_yyyy")
    ' besser für solche Zwecke die "ammerikanische Notation"
    ' Format(Date, "yyyy_mm_dd")
    On Error Resume Next
    Set xlApp = GetObject(, "Excel.Application")
    On Error GoTo 0
    If xlApp Is Nothing Then
        Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = True
    End If
    ' Vorlage anpassen
    xlApp.Workbooks.Add Template:="C:\Dokumente ...\...\HzPKalk.xlt"
    Set xlBook = xlApp.ActiveWorkbook
    ' die Daten sollen im Arbeitsblatt "Berechnung" eingefügt werden.
    Set xlSheet = xlBook.Sheets("Berechnung")
    With xlSheet
       'Blattschutz ausschalten
       .Unprotect
       .Cells(4, 2) = Me.NName   ' B4
       ' ...
       'Blattschutz einschalten
       ActiveSheet.Protect ' evt. noch Parameter, kannst du in Excel aufzeichen
    End With
    xlBook.SaveAs ExcelDatNam
    xlBook.Application.Quit
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
End Function

_________________
Gruß Steffen


Zuletzt bearbeitet von steffen0815 am 17. Jun 2006, 10:28, insgesamt einmal bearbeitet
Loddar
Im Profil kannst Du frei den Rang ändern


Verfasst am:
17. Jun 2006, 07:50
Rufname:


AW: Daten in eine Excel-Vorlage exportieren - AW: Daten in eine Excel-Vorlage exportieren

Nach oben
       

Hallo Steffen

Vielen Dank - es funzt

Gruß

Loddar

_________________
Access-Neuling
nakoda
Office Power User


Verfasst am:
29. Aug 2007, 08:27
Rufname: Armin
Wohnort: Hamurg

AW: Daten in eine Excel-Vorlage exportieren - AW: Daten in eine Excel-Vorlage exportieren

Nach oben
       Version: Office 2k (2000)

Moin zusammen,

habe mich mal daran versucht das genannte Beispiel für meine
Zwecke umzubauen.
Leider ohne Erfolg.
Bekomme es einfach nicht hin das er das Template tplEmpHW.xlt nimmt
und die Daten in das Tabellenblatt Emp_HW schiebt.
Vielleicht einmal hier der Code wie es bisher lief.
Code:
'HWSW_qry_empHW nach Excel exportieren und formatieren
Function Export_EmpHW()
On Error GoTo fehler
    'Variablen deklarieren
    Dim fs, F
    Dim objExcel As Object
    Dim Zeile As Long
    Dim Zeilen As String
    Dim Anzahl
    Dim i
    Dim sDatei  As String
    Dim FilledRow As Long
   
    'Variablen setzen
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set objExcel = CreateObject("Excel.Application")
    sDatei = "\\Da-airbus\.A380_Mech_Integr.A380_Mech_Integr.Projekte.HAM\" & _
             "110_Protokolle\010_Personalmanager\050_DB_Auszuege\" & _
             "Auszug_MA_HW_" & Format(Date, "yyyymmdd") & ".xls"
    'Abfragen ob Datei schon besteht, wenn "ja" löschen und exportieren,
    'wenn "nein" nur exportieren
    If Dir(sDatei) <> "" Then
        Set F = fs.getfile(sDatei)
        F.Delete
        Set F = Nothing
    End If
    DoCmd.TransferSpreadsheet acExport, 8, "rpt_qry_EmpHW", _
                              sDatei, True, ""
    'Tabelle in Excel öffnen und sichtbar machen
    With objExcel
        .Visible = False
        .Workbooks.Open sDatei
    End With
'    ' Formatieren der Zellen
    With objExcel
        'Wenn gewünscht Zellenüberschriften Fett und Autofilter setzen
        .Range("A1:F1").Font.Bold = True
        .Range("A1:F1").Select
        .Selection.AutoFilter
'        'Spaltenbreiten einstellen
        .Cells.Select
        .Selection.Columns.AutoFit
'        .Range("A:A").Select
'        .Selection.ColumnWidth = 9.43
    End With
    'Seitenformat festlegen
    With objExcel.ActiveSheet.PageSetup
        .Orientation = xlLandscape
    End With
    'Zeilenumbruch einstellen
    objExcel.ActiveSheet.UsedRange.Select
    With objExcel.Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlTop
        .WrapText = True
        .Orientation = 0
        .ShrinkToFit = False
        .MergeCells = False
    End With
    'Schriftart festlegen für ganzes Blatt
    objExcel.ActiveSheet.UsedRange.Select
    With objExcel.Selection.Font
        .Name = "Arial"
        .size = 10
    End With
    'Blattgröße einstellen
    With objExcel.ActiveSheet.PageSetup
        .Zoom = False
        .FitToPagesTall = False
        .FitToPagesWide = 1
    End With
    'Tabellenblatt umbenennen
    objExcel.ActiveSheet.Name = "EmpHW"
'    'Diverse Formatierungen
'    'Titelzeile auf jede Seite
    With objExcel.ActiveSheet.PageSetup
        .PrintTitleRows = "$1:$1"
        .PrintTitleColumns = ""
    End With
    'Kopf- und Fußzeilenbeschriftung
    objExcel.ActiveSheet.PageSetup.PrintArea = ""
    With objExcel.ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = "&""Arial,Fett"" &14 - Übersicht MA --> HW -" & _
                        vbCrLf & "&""Arial,Fett"" &12 Employee-List"
        .RightHeader = ""
        'Fußzeile links
        .LeftFooter = "&""Arial,Standard""Aszüge Personalmanager (PM)"
        'Fußzeile Mitte
        .CenterFooter = "&""Arial,Standard""Daten vom " & Date & ""
        'Fußzeile rechts
        .RightFooter = "&""Arial,Standard""Seite &P von &N"
    End With
    'Obere Zelle grau
    objExcel.ActiveSheet.Range("A1:F1").Select
    With objExcel.Selection.Interior
        .ColorIndex = 48
        .Pattern = xlSolid
    End With
    'Gesamtes beschriebenes Blatt markieren
    With objExcel.ActiveSheet.UsedRange.Select
        'Rahmen um die Zellen ziehen
        With objExcel.Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With objExcel.Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With objExcel.Selection.Borders(xlEdgeBottom)
            .LineStyle = xlDouble
            .Weight = xlThick
            .ColorIndex = xlAutomatic
        End With
        With objExcel.Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With objExcel.Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With objExcel.Selection.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    End With
    'Im genutzten Bereich jede zweite Zeile einfärben außer die Erste
    'letzte Zeile wird ermittelt
    FilledRow = objExcel.ActiveSheet.UsedRange.Rows.Count - 1
    For FilledRow = 2 To FilledRow
        With objExcel.ActiveSheet.UsedRange.Rows(FilledRow).Interior
            .ColorIndex = 6 'gelb
            .Pattern = xlSolid
        End With
        FilledRow = FilledRow + 1
    Next FilledRow
    'Exceltabelle sichtbar machen und Cursor in Zelle A1 stellen
    With objExcel
        .Visible = False
        .Range("A1").Select
    End With
    'Meldungen ausschalten, Tabelle speichern und Excel beenden
    objExcel.DisplayAlerts = False
    objExcel.ActiveWorkbook.Close savechanges:=True
    objExcel.Application.Quit
    Set objExcel = Nothing
    Exit Function
    MsgBox "Der Datenexport ist beendet!"
fehler:
    MsgBox Err.Number & " " & Err.Description
End Function
Für Hilfe und Unterstütung danke ich im voraus.
_________________
Code:
1 If Problem > Wissen Then
2 UseGoogle(Problem)
3 UseSuFu(Problem)
4 End If
steffen0815
VBA-Programmierer


Verfasst am:
29. Aug 2007, 08:51
Rufname:

AW: Daten in eine Excel-Vorlage exportieren - AW: Daten in eine Excel-Vorlage exportieren

Nach oben
       

Hallo,
also dein Code ist sehr lang und irgendwie unlogisch Wink
Du greifst doch auf gar keine Vorlage zurück Rolling Eyes .

Prinzipiell führen 2 Wege zur formtierten Exceldatei:
1)
Export in eine leere (unformatierte) Exceldatei per "DoCmd.TransferSpreadsheet " und anschließende Formatierung per Automatisierung

2)
Export in eine vorformatierte Exceldatei per Automatisierung

Du musst dich für eine Variante entscheiden. Variante 1 hat den Vorteil auch Memofelder sauber zu exportieren. Mit Variante 2 kann beliebig komplexe Formatierungen von Hand machen ohne diese programmieren zu müssen.

_________________
Gruß Steffen
nakoda
Office Power User


Verfasst am:
29. Aug 2007, 09:13
Rufname: Armin
Wohnort: Hamurg

AW: Daten in eine Excel-Vorlage exportieren - AW: Daten in eine Excel-Vorlage exportieren

Nach oben
       Version: Office 2k (2000)

Hallo Steffen0815,

zunächst einmal danke für die schnelle Antwort. Smile
Du hast recht derzeit greife ich auf keine Vorlage zurück.
Das soll sich aber ändern.
Bisher nehme ich halt die Abfrage und erstelle das Excel file aus Access heraus.
Heraus kommt eine bis auf die letzte Zelle formatierte Exceldatei.
In einer bereits bestehenden Excel Datei habe ich einen Code hinterlegt
der dafür sorgt das bei betätigen des Autofilters die jeweilige Zelle
farblich markiert wird und die Zeileneinfäbung sich anpasst.
Vielleicht auch hierzu der Code:
Code:
Sub F()
    Dim i As Long, FilledRow As Long
    Dim bFill As Boolean
   
    'letzte Zeile wird ermittelt
    FilledRow = ActiveSheet.UsedRange.Rows.Count + _
                ActiveSheet.UsedRange.Row - 2
    bFill = False
    For i = 2 To FilledRow
        With ActiveSheet.UsedRange.Rows(i)
            If Not .Hidden Then
                .Interior.ColorIndex = IIf(bFill, 37, xlNone)
                If bFill Then .Interior.Pattern = xlSolid
                bFill = Not bFill
            End If
        End With
    Next i
End Sub

Sub AutoFilter_Status()
    Dim intIndex As Integer
   
    If Not ActiveSheet.AutoFilter Is Nothing Then
        For intIndex = 1 To ActiveSheet.AutoFilter.Filters.Count
            Range(Cells(ActiveSheet.AutoFilter.Range.Row, _
                        ActiveSheet.AutoFilter.Range.Column - 1 + intIndex), _
                  Cells(ActiveSheet.AutoFilter.Range.Row, _
                        ActiveSheet.AutoFilter.Range.Column - 1 + _
                        intIndex)).Interior.ColorIndex = _
                      IIf(ActiveSheet.AutoFilter.Filters(intIndex).On, 38, 15)
        Next intIndex
    End If
End Sub

Private Sub Worksheet_Calculate()
    Call AutoFilter_Status
    Call F
End Sub
Und in eine Templatedatei mit eben diesem Code soll das ganze nun hinein geschoben werden.
Wozu würdest du raten?

_________________
Code:
1 If Problem > Wissen Then
2 UseGoogle(Problem)
3 UseSuFu(Problem)
4 End If
steffen0815
VBA-Programmierer


Verfasst am:
29. Aug 2007, 09:49
Rufname:

AW: Daten in eine Excel-Vorlage exportieren - AW: Daten in eine Excel-Vorlage exportieren

Nach oben
       

Hallo,
wenn die Formatierung komplex ist und keine Memofelder zu erwarten sind, ist der Export in eine Vorlage wohl einfacher:
Access Abfrage in bestehende Exceltabelle importieren
Im Code sind auch die Zeilen kommentiert, die für die Nutzung einer Excelvorlage (*.xlt) statt einer Excelarbeitsmappe genutzt werden können.

_________________
Gruß Steffen
nakoda
Office Power User


Verfasst am:
29. Aug 2007, 10:03
Rufname: Armin
Wohnort: Hamurg


AW: Daten in eine Excel-Vorlage exportieren - AW: Daten in eine Excel-Vorlage exportieren

Nach oben
       

Danke!
Werde mich mich gleich mal dran machen.
Melde mich dann später noch einmal ob Erfolg oder
Misserfolg. Embarassed

_________________
Code:
1 If Problem > Wissen Then
2 UseGoogle(Problem)
3 UseSuFu(Problem)
4 End If
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Summieren von gruppierten Daten 3 Thomas Theurer 1202 27. Jan 2005, 17:36
mapet Summieren von gruppierten Daten
Keine neuen Beiträge Access Tabellen & Abfragen: Rechnung erstellen wenn alle Daten vorhanden 6 Freddy 1909 25. Nov 2004, 11:03
Freddy Rechnung erstellen wenn alle Daten vorhanden
Keine neuen Beiträge Access Tabellen & Abfragen: Daten Trennen 4 Oliver.Giertz 1194 02. Sep 2004, 13:05
Oliver.Giertz Daten Trennen
Keine neuen Beiträge Access Tabellen & Abfragen: Daten aus Zwischenablage anhängen 5 Elhana 1077 30. Aug 2004, 13:00
Pusteblume Daten aus Zwischenablage anhängen
Keine neuen Beiträge Access Tabellen & Abfragen: Daten suchen in ACCESS. Daten aus Tabellen suchen! 7 Gast 2093 26. Aug 2004, 13:55
Gast Daten suchen in ACCESS. Daten aus Tabellen suchen!
Keine neuen Beiträge Access Tabellen & Abfragen: Filtern von Daten in Kombinationsfeld 1 Schmaro73 869 21. Aug 2004, 23:14
stpimi Filtern von Daten in Kombinationsfeld
Keine neuen Beiträge Access Tabellen & Abfragen: logische Zuordnung der Daten / Beziehung 0 DEAthWiNg 991 14. Jul 2004, 22:07
DEAthWiNg logische Zuordnung der Daten / Beziehung
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle exportieren als Excel2000 Arbeitsblatt 1 thomassch 916 06. Jul 2004, 12:46
stpimi Tabelle exportieren als Excel2000 Arbeitsblatt
Keine neuen Beiträge Access Tabellen & Abfragen: ..und noch'n problem: mehrere daten in eine zelle über abfra 6 ralusnom 774 05. Jul 2004, 18:43
ralusnom ..und noch'n problem: mehrere daten in eine zelle über abfra
Keine neuen Beiträge Access Tabellen & Abfragen: daten in 2 tabellen speichern 1 Gast 1178 09. Jun 2004, 10:58
mabe38 daten in 2 tabellen speichern
Keine neuen Beiträge Access Tabellen & Abfragen: tabelle exportieren 1 Gast 1501 01. Jun 2004, 12:25
Willi Wipp tabelle exportieren
Keine neuen Beiträge Access Tabellen & Abfragen: Daten der Abfrage ausgeben 3 Papa Schlumpf 1007 24. Mai 2004, 17:34
Willi Wipp Daten der Abfrage ausgeben
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Expression Web Forum