1. Das klapp auch für die 1. Mappe, aber bei
der 2. Mappe erhalte ich die
Fehlermeldung "Methode 'Cells' für das Objekt '_Global'
ist fehlgeschlagen". Ich kann den Fehler nicht nach
vollziehen,
muß ich für das Sheet auch ein Object erstellen und
wie binde ich das Ojeckt in meinen Code ein?.
Oder sollte mein Office 2000 defekt sein ?
2. Trotz Set ExcelObj = Nothing ist Ecxel im Taskmanager
Prozesse PID 1436 eingetragen, wie beende ich Excel
korrekt?
Hier zu besseren Verstädnis mein Code.
Option Compare Database
Option Explicit
Private Zähler, BflVo, Zeile As Variant
Public Declare Sub Sleep Lib "kernel32" (ByVal
dwMilliseconds As Long)
Function MyExcel()
Dim ExcelObj As Object
On Error Resume Next
Err.Clear
Set ExcelObj = GetObject(, "Excel.Application ")
If Err.Number <> 0 Then Set ExcelObj = CreateObject
("Excel.Application")
On Error GoTo 0
With ExcelObj
.Application.Visible = True
.Workbooks.Open ("G:\KH_MDB\Test\Mappe1.xls"),
UpdateLinks:=0
'---------------- Mappe1 Daten in Tabelle "Ist Erh 1"
bearbeiten ----------------------
.Sheets("Ist Erh 1").Activate
For Zähler = 1 To 10
BflVo = 99 + Zähler
Range("A1:A77").Select
Selection.Find(What:="" & BflVo & "", After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns,
SearchDirection:=xlNext, _
MatchCase:=False).Activate
Zeile = ActiveCell.Row
.Sheets("Ist Erh 1").Activate
.Cells(Zeile, 3).Value = "test" & Zähler & "Kum1"
Next
'---------------- Mappe1 Daten in Tabelle "Ist Erh 2"
bearbeiten ----------------------
.Sheets("Ist Erh 2").Activate
For Zähler = 1 To 10
BflVo = 99 + Zähler
Range("A1:A77").Select
Selection.Find(What:="" & BflVo & "", After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns,
SearchDirection:=xlNext, _
MatchCase:=False).Activate
Zeile = ActiveCell.Row
.Sheets("Ist Erh 2").Activate
.Cells(Zeile, 3).Value = "test" & Zähler & "Kum2"
Next
.ActiveWorkbook.Close True
End With
ExcelObj.Quit
Set ExcelObj = Nothing
MsgBox "Änderung wurde ausgeführt !"
Sleep 3000 '3 sec warten bis Excel wieder frei ist.
'----------------Nächste Mappe bearbeiten -----------------
-----
On Error Resume Next
Err.Clear
Set ExcelObj = GetObject(, "Excel.Application ")
If Err.Number <> 0 Then Set ExcelObj = CreateObject
("Excel.Application")
On Error GoTo 0
With ExcelObj
..Application.Visible = True
..Workbooks.Open ("G:\KH_MDB\Test\Mappe2.xls"),
UpdateLinks:=0
'---------------- Mappe2 Daten in Tabelle "Ist Erh 1"
bearbeiten ----------------------
.Sheets("Ist Erh 1").Activate
For Zähler = 1 To 10
BflVo = 99 + Zähler
Range("A1:A77").Select 'Hier kommt die Fehlermeldung "Die
Methode 'Cells' für das Objekt '_Global' ist
fehlgeschlagen"
Selection.Find(What:="" & BflVo & "", After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns,
SearchDirection:=xlNext, _
MatchCase:=False).Activate
Zeile = ActiveCell.Row
.Sheets("Ist Erh 1").Activate
.Cells(Zeile, 3).Value = "test" & Zähler & "MON1"
Next
'---------------- Mappe2 Daten in Tabelle "Ist Erh 2"
bearbeiten ----------------------
.Sheets("Ist Erh 2").Activate
For Zähler = 1 To 10
BflVo = 99 + Zähler
Range("A1:A77").Select
Selection.Find(What:="" & BflVo & "", After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns,
SearchDirection:=xlNext, _
MatchCase:=False).Activate
Zeile = ActiveCell.Row
.Sheets("Ist Erh 2").Activate
.Cells(Zeile, 3).Value = "test" & Zähler & "MON2"
Next
..ActiveWorkbook.Close True
End With
ExcelObj.Quit
Set ExcelObj = Nothing
MsgBox "Änderung wurde ausgeführt !"
End Function
Hat jemand einen Tip für mich, wie die Funktionen
verändern muß?
Besten Dank im Voraus. Manfred
Manfred Roloff <Man...@roloff48.de> schrieb:
> Hallo Newsgroup,
> ich will aus Access 2000 mehrere Excel 2000 Mappen mit
> unterschiedlich vielen Tabellen, alle haben das gleiche
> Format, füllen.
> 1. Das klapp auch für die 1. Mappe, aber bei
> der 2. Mappe erhalte ich die
> Fehlermeldung "Methode 'Cells' für das Objekt '_Global'
> ist fehlgeschlagen". Ich kann den Fehler nicht nach
> vollziehen,
> muß ich für das Sheet auch ein Object erstellen und
> wie binde ich das Ojeckt in meinen Code ein?.
> Oder sollte mein Office 2000 defekt sein ?
> 2. Trotz Set ExcelObj = Nothing ist Ecxel im Taskmanager
> Prozesse PID 1436 eingetragen, wie beende ich Excel
> korrekt?
Du kannst nach dem Speichern der ersten Mappe auf das Schliessen und das
erneute Öffnen von Excel verzichten. Nach dem Workbook.Close kannst Du mit
Workbook.Open die Nächste Arbeitsmappe öffnen. Dazu brauchst Du Excel nicht
zwischendrin schließen und neu öffnen. Vielleicht bringt Dich das ein Stück
weiter.
HTH
--
Tho...@Team-Moeller.de
Homepage: www.team-moeller.de
TM-AbhängigeObjekte: Update auf Version 2.40 (seit 18.01.04)
Addin: Abhängigkeiten zwischen den Datenbankobjekten ermitteln