Anzeige
Archiv - Navigation
1232to1236
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Arbeitsmappe einblenden

Arbeitsmappe einblenden
Mirke
Hallo, ich kopiere aus einer Access Datenbank mit VBA-Code eine Excel-Datei (Vorlage) an einen neuen Ort und schreibe Daten aus der Datenbank in einzelne Zellen der Excel-Datei. Dies funktioniert grundsätzlich problemlos. Wenn ich jedoch die neue Excel-Datei öffne, ist diese grundsätzlich ausgeblendet. Ich muss diese immer erst über "Einblenden" "Arbeitsmappe" aktivieren. Wenn ich die Excel-Datei danach speichere funktioniert alles korrekt.
Gibt es eine Möglichkeit diese Eigenschaft der Excel-Datei über VBA-Code aus Access einzustellen?
Vielen Dank für evtl Hilfe!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Arbeitsmappe einblenden
01.10.2011 05:37:45
fcs
Hallo Mirke,
wenn du die Vorlage-Datei in Excel direkt öffnest, wird diese dann eingeblendet angezeigt?
Wie greifst du im Access-Makro auf die kopierte Excel-Datei zu?
Wird in dem Makro die Visible-Eigenschaft von Excel-Fenstern via
ActiveWindow.Visible = False
'oder
Windows("Dateiname.xlsx").Visible = False
auf ausgeblendet gesetzt?
Falls ja, dann diese Anweisungen rausnehmen oder vor dem Speichern der Datei via
Windows("Dateiname.xlsx").Visible = True
Datei einblenden.
Falls das Makro komplett "unsichtbar" ablaufen soll, dann ist es ausreichend, nur die Excel-Anwendung auf nicht sichtbar zu setzen. z.B.:
Excel.Application.Visible = False
'oder
objExcelApp.Visible = False 'Wenn mit einer Objekt-Variablen für die Excel-Anwendung gearbeitet wird.
evtl. vor dem Beenden die Visible-Eigenschaft wieder auf True setzen. Das hängt dann davon ab, ob man im Makro eine neue Instanz von Exel erzeugt (dann diese ggf. mit Quit beenden), oder ob man mit der aktiven/geöffneten Excel-Anwendung arbeitet (dann den Visible-Status wieder auf True setzen).
Gruß
Franz
Anzeige
AW: Arbeitsmappe einblenden
03.10.2011 12:07:01
Mirke
Vielen Dank für die Antwort.
Die Vorlage-Datei kann ich problemlos öffnen, sie ist nicht ausgeblendet.
Die "Excel.Application" benutze ich nicht.
So sieht der VBA-Code aus, mit dem ich die Werte aus der Datenbank in die Excel-Datei schreibe:
'Vorlage kopieren
FileCopy "Vorlage_01.xls", "Neue_Datei.xls"
'Excel Zugriff
Dim EXL_OBJ As Object
Dim EXL_SHEET As Object
Set EXL_OBJ = GetObject("Neue_Datei.xls")
Set EXL_SHEET = EXL_OBJ.Worksheets(1)
'Werte schreiben
EXL_SHEET.Cells(1, 3) = WERT1
EXL_OBJ.Save
AW: ACCESS-Export, Excel-Arbeitsmappe einblenden
03.10.2011 14:44:39
fcs
Hallo Mirke,
indirekt wird natürlich schon die Excel-Anwendung benutzt/gestartet.
Mit der GetObject-Anweisung wird hier dann entweder im Hintergrund die Excelanwendung ausgeblendet gestartet oder aber die aktive Excelanwendung benutzt.
Warum dabei das Fenster der Excel-Arbeitsmappe seinen Visible-Status auf "ausgeblendet" ändert ist das Geheimnis der Mikrosoftprogrammierer.
Ich hab dein Makro mal in einer Office 2007-Umgebung getestet mit Word als Programm, das die Excelanwendung aufruft. Das Phänomen ist das gleiche wie bei dir von Access aus.
Mit den folgenden Anpassungen bleibt die Exceldatei eingeblendet. Unter Word musste ich dabei das Verzeichnis explizit wechseln, damit der Kopiervorgang funktioniert, und auch in der GetObject-Anweisung ist die Angabe des Verzeichnisses erforderlich. Die Exceldatei sollte nach dem Speichern auch unbedingt geschlossen werden.
Wenn die Excelanwendung schon geöffnet ist, dann "flackert" der Dateiname der neuen Datei während der Makroausführung ggf. kurz in der Taskleiste auf, aber die Ausführung des Makros ist deutlich schneller.
Gruß
Franz

Sub Export_Data_to_Excel()
Dim WERT1 As Variant                'Deklaration zum Testen        Testzeile
WERT1 = Format(Now, "YYYY-MM-DD hh:mm:ss")                         'Testzeile
'Excel Zugriff
Dim EXL_OBJ As Object
Dim EXL_SHEET As Object
Dim strEXL_NewFile As String          'Variable für Dateiname der neuen Exceldatei
Dim strPath As String                 'Verzeichnis der Exceldateien
strPath = ActiveDocument.Path         'Verzeichnis der Dateien    'unter Word erforderlich
ChDir strPath                                                     'unter Word erforderlich
strEXL_NewFile = "Neue_Datei.xls"
FileCopy "Vorlage_01.xls", strEXL_NewFile
Set EXL_OBJ = GetObject(strPath & "\" & strEXL_NewFile)
Set EXL_SHEET = EXL_OBJ.Worksheets(1)
'Werte schreiben
EXL_SHEET.Cells(1, 3) = WERT1
'Exeldatei im Anwendungsfenster einblenden
EXL_OBJ.Application.Windows(strEXL_NewFile).Visible = True
'Exceldatei Speichern und schliessen
EXL_OBJ.Save
EXL_OBJ.Close
End Sub

Anzeige
AW: ACCESS-Export, Excel-Arbeitsmappe einblenden
04.10.2011 03:59:14
Mirke
Hallo Franz, vielen Dank ... es funktioniert.
ich hatte zuerst in der Anweisung
EXL_OBJ.Application.Windows(strEXL_NewFile).Visible = True
den kompletten String des Dateinamens der neuen Datei eingefügt und eine Fehlermeldung erhalten.
Danach habe ich die Ordnerstruktur abgeschnitten und es klappt prima!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige