ich war auf der Suche nach einer Möglichkeit, Werte in eine geschlossene Arbeitsmappe zu schreiben und bin dabei auf die "ADO" Möglichkeit mit Excel gestoßen.
Mit folgendem Code schreibe ich eine Seriennummer fortlaufend in Spalte "A" einer anderen Excel-Datei:
Public Sub ADO_Write()
Dim objConnection As Object
Dim strConnection As String
Dim strWorkbook As String, strWorksheet As String
Dim Seriennummer As String
strWorkbook = "C:\Datenbank\Mappe1.xls"
strWorksheet = "Tabelle2"
Seriennummer = ThisWorkbook.Worksheets("Tabelle3").Range("A1").Value
Set objConnection = CreateObject("ADODB.Connection")
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & strWorkbook & ";" & _
"Extended Properties=""Excel 12.0;HDR=Yes;IMEX=0"""
Call objConnection.Open(strConnection)
Call objConnection.Execute("INSERT INTO [Tabelle2$A1:A10]" & _
"VALUES ('" & Seriennummer & "')")
objConnection.Close
Set objConnection = Nothing
End Sub
Nun möchte ich aber die Seriennummer nicht fortlaufend untereinander in Spalte "A" schreiben sondern möchte die aktuelle Seriennumer immer in "A1" schreiben.Deshalb habe ich folgende Codezeile geändert:
Call objConnection.Execute("INSERT INTO [Tabelle2$A1:A1]" & _
"VALUES ('" & Seriennummer & "')"
Leider funktioniert das nicht wie gewünscht, der Wert in "A1" wird nicht überschrieben sondern es erscheint eine Fehlermeldung, dass der benannte Bereich nicht erweitert werden kann.
Ich stehe hier total auf dem Schlauch und hoffe auf eure Hilfe.
Vielen Dank und viele Grüße
Timo