Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Verknüpfung Access-Excel

Betrifft: Verknüpfung Access-Excel von: Matthias
Geschrieben am: 31.08.2004 08:42:43

Guten Morgen erstmal!

ich habe mal eine Frage bzgl. einer Verknüpfung von Access und Excel. Vielleicht gibt es ja auch dafür Experten hier.

Ich würde (für einen automatisierten Import per VBA) gern die Tabellenlänge einer Exceldatei auslesen...

Hat jemand eine idee?

Hab hier was gefunden, aber das hat mir noch nicht geholfen:

https://www.herber.de/forum/archiv/116to120/t117227.htm

Danke schonmal,
Matthias

  


Betrifft: AW: Verknüpfung Access-Excel von: andre
Geschrieben am: 03.09.2004 19:57:58

Hallo Matthias,
wenn man noch wüßte, warum es nicht geholfen hat könnte man auch weiterhelfen ;-(


  


Betrifft: AW: Verknüpfung Access-Excel von: Matthias
Geschrieben am: 06.09.2004 07:22:07

Hi Andre,

Naja ich glaube der VBA Code dort ist auf Excel zugeschnitten, da ich ja die Abfrage aber aus Access heraus tätigen möchte müss ich ja irgendwie erstmal auf Excel zugreifen wenn ich dort eine Dateieigenschaft auslesen möchte...

Matthias


  


Betrifft: AW: Verknüpfung Access-Excel von: andre
Geschrieben am: 06.09.2004 17:22:10

Hallo Matthias,
meinst Du wirklich Dateieigenschaften? Da brauchst Du nicht unbedingt Excel. Wenn Du aber wie in dem Link beschrieben die letzte belegte Zelle wissen willst ist es schon nötig, Excel aufzumachen. Hier mal der Anfang eines Makro, wo ich auf Word zugreife:

Dim wordObj As Word.Application, mytemplate As Template, ATE As AutoTextEntry
Dim DeinDateiName As String

DeinDateiName = InputBox("Eingabe Hauptdokument: ", "Hauptdokument", ThisWorkbook.Sheets("Admin").[a1])
If DeinDateiName = "" Then DeinDateiName = ThisWorkbook.Sheets("Admin").[a1]

' Document öffnen
Set wordObj = CreateObject("Word.Application")
wordObj.Visible = False
wordObj.Documents.Open DeinDateiName
With wordObj
...

wordObj.Application.Quit

Für Excel musst Du es entsprechend umstricken und im Code und bei den Verweisen die entsprechende Version angeben und auswählen.



  


Betrifft: AW: Verknüpfung Access-Excel von: Matthias
Geschrieben am: 07.09.2004 07:31:30

Guten Morgen!

Hab mal versucht, das anzupassen. dabei heraus kommt dann:

Private Sub Befehl0_Click()

Dim XLSObj As Excel.Application, mytemplate As Template, ATE As AutoTextEntry
Dim DeinDateiName As String

DeinDateiName = InputBox("Eingabe Hauptdokument: ", "Hauptdokument", ThisWorkbook.Sheets("Admin").[a1])
If DeinDateiName = "" Then DeinDateiName = ThisWorkbook.Sheets("Admin").[a1]

' Document öffnen
Set wordObj = CreateObject("Excel.Application")
XLSObj.Visible = False
XLSObj.Documents.Open DeinDateiName
With XLSObj
'...

XLSObj.Application.Quit

End Sub


Er bringt dabei einen Fehler in Zeile 3 ("dim xlsobj....") und sagt: Benutzerdefinierter Typ nicht definiert".

Und nun steh ich hier ich armer thor...!? ;)

Danke für jede Hilfe!

Matthias


  


Betrifft: AW: Verknüpfung Access-Excel von: andre
Geschrieben am: 07.09.2004 18:14:59

Hallo Matthias,
sorry, aber in dieser Zeile steht zuviel für Dich. Du brauchst nur den Anfang
Dim XLSObj As Excel.Application
Grüße, Andre


  


Betrifft: AW: Verknüpfung Access-Excel von: Matthias
Geschrieben am: 14.09.2004 07:28:24

Hmmm....

Guten morgen erstmal!

Zum problem:
Also wenn ich das so mache, dann sagt er mir:
"Fehler beim Kompilieren:
Projekt oder Bibliothek nicht gefunden"
...?! Was ist das nur!? hab ich irgendwelche wichtigen Verweise nicht gesetzt?!


Schönen Gruß aus der Hauptstadt,
Matthias


  


Betrifft: AW: Verknüpfung Access-Excel von: andre
Geschrieben am: 14.09.2004 17:15:07

Hallo Matthias,
den verweis auf Microsoft Excel... hast Du gesetzt?
Grüße, Andre


  


Betrifft: AW: Verknüpfung Access-Excel von: Matthias
Geschrieben am: 15.09.2004 07:29:09

Nein hatte ich nicht. Habs jetzt gemacht. und zwar auf die MS Excel 10.0 Object Libary

Jetz folgende fehlermeldung:
"Die Methode 'This Workbook' für das Objekt '_Global' ist fehlgeschlagen."
in der Zeile mit
"DeinDateiName = InputBox..."

????


Matthias


  


Betrifft: AW: Verknüpfung Access-Excel von: andre
Geschrieben am: 15.09.2004 17:17:16

Hallo Matthias,
so Zeile für Zeile kommen wir langsam weiter. Hätte wohl doch das Ding auf Excel umschreiben sollen ...
In den nächsten beiden Zeilen wird auf ThisWorkbook.Sheets("Admin").[a1] verwiesen, dort steht sozusagen ein Standardwert, der in der Inputbox angezeigt wird. Das sollte
dazu dienen, dass man nicht im code ändern muss wenn man die Vorgabe ändern will.
Wenn Du den code von Access ausführst geht das natürlich nicht, denn dort hast Du ja kein sheet. Schreibe also stattdessen den Dateinamen fest rein, z.b. "c:\test.xls"

DeinDateiName = InputBox("Eingabe Hauptdokument: ", "Hauptdokument", ThisWorkbook.Sheets("Admin").[a1])
If DeinDateiName = "" Then DeinDateiName = ThisWorkbook.Sheets("Admin").[a1]

Grüße, Andre


  


Betrifft: AW: Verknüpfung Access-Excel von: Matthias
Geschrieben am: 16.09.2004 08:27:38

Guten Morgen Andre,

hab jetzt eien Code gefunden, der bei mir funktioniert:

Dim xlsAnw As Object
Set xlsAnw = CreateObject("Excel.Application")
xlsAnw.Visible = True
xlsAnw.WindowState = -4137 '-4143 = Normal, -4137 = Maximized; -4140 = Minimized
xlsAnw.Workbooks.Add
xlsAnw.Windows(1).Activate
Set xlsAnw = Nothing

Zu deinem Code:

jetzt bringt er mir einen Fehler bei:

XLSObj.Documents.Open DeinDateiName
und sagt: "Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht."

:)

Woher hast du eigentlich dein VBA Wissen? Kannst du ein gutes Excel VBA Buch zum Reinschnuppern empfehlen?

Gruß,
Matthias


  


Betrifft: AW: Verknüpfung Access-Excel von: andre
Geschrieben am: 16.09.2004 21:23:55

Hallöchen,
statt XLSObj.Documents.Open DeinDateiName
XLSObj.workbooks.Open DeinDateiName
Das war wohl nun die letzte fehlerhafte Zeile, in der nächsten kann nichts mehr schiefgehen was mit der Umprogrammierung von Word auf Excel zusammenhängt. Hatte ja am Anfang gedacht, dass Du mit VBA gut alles hinbekommst :-( Na ja, so haben wir es auch geschafft.
Grüße, Andre


  


Betrifft: AW: Verknüpfung Access-Excel von: Matthias
Geschrieben am: 17.09.2004 07:33:08

Hm, also er macht erstmal was, aber er öffnet nicht Excel. Ist das richtig?
Jetzt zurück zu meiner Ausgangsfrage: Wie lese ich aus dem geöffneten Workbook nun die Tabellenlänge aus. bzw. Spreche konkrete Zellen an (in denen ich ja mit ZÄHLEWENN eine Zahl hinterlegen könnte)?

Dankschö'! :)


  


Betrifft: AW: Verknüpfung Access-Excel von: andre
Geschrieben am: 17.09.2004 21:24:09

Hallo Matthias,
stimmt denn VBA gut? Da sollte man schon erkennen, dass visible=false das eine oder andere ausblendet ...
Hier der code noch mal zusammen:

Private Sub Befehl0_Click()

Dim XLSObj As Excel.Application, a As Long
DeinDateiName = "c:\test\test.xls"

Set XLSObj = CreateObject("Excel.Application")
XLSObj.Visible = False
XLSObj.Workbooks.Open DeinDateiName

On Error GoTo fehler
With XLSObj
a = .Sheets(1).Cells(65536, 1).End(xlUp).Row
MsgBox "Letzte genutzte Zeile in Spalte A: " & a
.Sheets(1).Cells(a + 1, 1) = "hier war ich"
End With

XLSObj.ActiveWorkbook.Save
XLSObj.Application.Quit
Exit Sub

fehler:
MsgBox Err.Number & vbTab & Err.Description
XLSObj.Application.Quit
End Sub