Daten in externe Datei schreiben

Hallo zusammen,

ich benötige mal wieder Eure Hilfe:

Ich möchte den Inhalt der Zellen A15, A18 und A21 der geöffneten
Datei in eine Datei auf dem Serverlaufwerk X:\Alle\A\ErnstR\Test_Ziel.xls
in die Zellen B16, C17 und D18 schreiben.

Dafür habe ich mich an folgendem Code von Sepp versucht.
Das Öffnen der Datei auf dem Server klappt noch, aber das
Übertragen der Daten nicht mehr.

Kann jemand helfen?
(WinXp, Xl2003)

Gruß und danke schonmal.
Rolf

Option Explicit

Sub WriteData()
Dim objADOfield As Object
Dim myFile As String, myTable As String
Dim varValue1 As String, varValue2 As String, varValue3 As String

On Error GoTo ErrExit

myFile = "X:\Alle\A\ErnstR\test\_Ziel.xls"
'ChDrive "x"
'ChDir "x:\Alle\A\ErnstR"
Workbooks.Open "X:\Alle\A\ErnstR\test\_Ziel.xls"
Sheets("Tabelle1").Select
Range("A1").Select

If myFile = "Falsch" Then Exit Sub

'myTable = "Test\_Ziel"

With ThisWorkbook.Sheets("Tabelle1")
varValue1 = .Range("A15").Value 'Wert der nach "B15" übertragen wird
varValue2 = .Range("A18").Value 'Wert der nach "B18" übertragen wird
varValue3 = .Range("A21").Value 'Wert der nach "B21" übertragen wird

End With

With ExcelTable(myFile, myTable, "A1:J25")
.Move 23
.Range("B16") = varValue1
.Range("C17") = varValue2
.Range("D18") = varValue3

.Update
.Close
End With

ErrExit:

If Err.Number 0 Then
MsgBox "Beim übertragen der Werte ist ein Fehler aufgetreten!" & Space(15), 48, "Hinweis"
Else
MsgBox "Werte wurden erfolgreich übertragen!" & Space(15), 64, "Hinweis"
End If

End Sub


Public Function ExcelTable(ByRef Path As String, ByRef Table As String, ByRef SourceRange As String) As Object
Dim SQL As String
Dim Con As String
On Error Resume Next
SQL = "select \* from [" & Table & "$" & SourceRange & "]"
Con = "Provider=Microsoft.Jet.OLEDB.4.0;" \_
& "Extended Properties=Excel 8.0;" \_
& "Data Source=" & Path & ";"
Set ExcelTable = CreateObject("ADODB.Recordset")
ExcelTable.Open SQL, Con, 1, 3
End Function

Hallo Rolf,

Ich möchte den Inhalt der Zellen A15, A18 und A21 der
geöffneten
Datei in eine Datei auf dem Serverlaufwerk
X:\Alle\A\ErnstR\Test_Ziel.xls
in die Zellen B16, C17 und D18 schreiben.
Dafür habe ich mich an folgendem Code von Sepp versucht.

bist du „Timo“? ich habe die Beitragsfolge gefunden wo Sepp, also Josef E. den Code für einen Timo schrieb.

Spontan weiß ich nicht warum Sepp es so kompliziert macht.
Du willst in deiner geöffneten Mappe per Makro den Inhalt von drei Zellen in drei andere, festgelegte Zellen in ein Blatt von
X:\Alle\A\ErnstR\Test_Ziel.xls
schreiben?

Entweder übersehe ich da was gravierendes oder es geht schlichtweg und einfacher so, per Vba die andere Mappe öffnen, Werte reinkopieren, andere mappe schließen.
Ist das so? Wenn nicht schupst mich bitte vom Schlauch :smile:)

Das Öffnen der Datei auf dem Server klappt noch, aber das
Übertragen der Daten nicht mehr.

Wird nichts übertragen oder in andere Zellen, anderes Blatt, hast du das genau überprüft?
Wenn Code von Sepp scheinbar nicht funktioniert so ist sicher wie bei jedem gegeben daß er da einen Flüchtigkeitsfehler im Code hat, aber zu 99% (kann ich nach vielen jahren so sagen) liegt der Fehler am Benutzer des Codes.
Entweder machte der Fehler bei der Anpassung des Codes an seine Gegebenheiten einen Umsetzungsfehler oder die rahmenbedingungen in denen der Code laufen soll ist eine andere wie Sepp sie voraussetzt.

Wie auch da in der dortigen Beitragsfolge. Wie soll Sepp darauf kommen wenn einer in einem reinen Excelbrett anfragt um in eine andere mappe/datei etwas einzutragen daß dies keine xls ist sondern eine .h, wohl eine Datei von C-programmierern, also eine Textdatei in dem Falle.
Erst nach dieser Information, warum zum Henker kam die nicht gleich, konnte er den Code umpfriemeln.

Gruß
Reinhard

Moin Reinhard,

Ich möchte den Inhalt der Zellen A15, A18 und A21 der
geöffneten
Datei in eine Datei auf dem Serverlaufwerk
X:\Alle\A\ErnstR\Test_Ziel.xls
in die Zellen B16, C17 und D18 schreiben.
Dafür habe ich mich an folgendem Code von Sepp versucht.

bist du „Timo“?

Nein. :smile:
ich habe die Beitragsfolge gefunden wo Sepp,

also Josef E. den Code für einen Timo schrieb.

Spontan weiß ich nicht warum Sepp es so kompliziert macht.
Du willst in deiner geöffneten Mappe per Makro den Inhalt von
drei Zellen in drei andere, festgelegte Zellen in ein Blatt
von
X:\Alle\A\ErnstR\Test_Ziel.xls
schreiben?

So ist es.

Entweder übersehe ich da was gravierendes oder es geht
schlichtweg und einfacher so, per Vba die andere Mappe öffnen,

Das klappt

Werte reinkopieren, andere mappe schließen.

Das klappt nicht :frowning:

Ist das so?

Yep

Wenn nicht schupst mich bitte vom Schlauch :smile:)

Nö - bleib drauf stehen :smile:

Das Öffnen der Datei auf dem Server klappt noch, aber das
Übertragen der Daten nicht mehr.

Wird nichts übertragen oder in andere Zellen, anderes Blatt,

Es wird Nichts übertragen.

hast du das genau überprüft?

ja, kommt nur die Fehlermeldung: „Beim übertragen der Werte ist ein Fehler aufgetreten!“

Wenn Code von Sepp scheinbar nicht funktioniert so ist sicher
wie bei jedem gegeben daß er da einen Flüchtigkeitsfehler im
Code hat, aber zu 99% (kann ich nach vielen jahren so sagen)
liegt der Fehler am Benutzer des Codes.

Davon gehe ich aus.
… dabei fällt mir die kleine Kerze ein, die die große Kerze fragt:
„Ist Zugluft eigentlich gefährlich?“ Sagt die große Kerze:
„Davon kannst Du ausgehen!“
Sorry, das war völlig off topic, aber das musste jetzt sein :smile:

Entweder machte der Fehler bei der Anpassung des Codes an
seine Gegebenheiten einen Umsetzungsfehler oder die
rahmenbedingungen in denen der Code laufen soll ist eine
andere wie Sepp sie voraussetzt.

Wie auch da in der dortigen Beitragsfolge. Wie soll Sepp
darauf kommen wenn einer in einem reinen Excelbrett anfragt um
in eine andere mappe/datei etwas einzutragen daß dies keine
xls ist sondern eine .h, wohl eine Datei von C-programmierern,
also eine Textdatei in dem Falle.
Erst nach dieser Information, warum zum Henker kam die nicht
gleich, konnte er den Code umpfriemeln.

Es ist aber ganz wirklich eine Excel-Datei, wo die Daten reinsollen.
Hast Du vielleicht einen Tipp, wie es einfacher geht? Ich hab
schon Stunden dran verdaddelt.

Gruß
Rolf

Ich möchte den Inhalt der Zellen A15, A18 und A21 der
geöffneten
Datei in eine Datei auf dem Serverlaufwerk
X:\Alle\A\ErnstR\Test_Ziel.xls
in die Zellen B16, C17 und D18 schreiben.
Dafür habe ich mich an folgendem Code von Sepp versucht.

Wenn nicht schupst mich bitte vom Schlauch :smile:)

Nö - bleib drauf stehen :smile:

Hallo Rolf,

okay, dann probiere es mal so, ggfs. Blattnamen anpassen:

Option Explicit

Sub kopier()
Dim wks1 As Worksheet
Set wks1 = ThisWorkbook.Worksheets("Tabelle1")
Workbooks.Open "X:\Alle\A\ErnstR\Test\_Ziel.xls"
With ActiveWorkbook.Worksheets("Tabelle1")
 wks1.Range("A15").Copy .Range("B16")
 wks1.Range("A18").Copy .Range("B17")
 wks1.Range("A21").Copy .Range("D18")
 .Parent.Close Savechanges:=True
End With
End Sub

Gruß
Reinhard

1 „Gefällt mir“

Hallo Reinhard,

Ich möchte den Inhalt der Zellen A15, A18 und A21 der
geöffneten
Datei in eine Datei auf dem Serverlaufwerk
X:\Alle\A\ErnstR\Test_Ziel.xls
in die Zellen B16, C17 und D18 schreiben.

okay, dann probiere es mal so, ggfs. Blattnamen anpassen:

Option Explicit

Sub kopier()
Dim wks1 As Worksheet
Set wks1 = ThisWorkbook.Worksheets(„Tabelle1“)
Workbooks.Open „X:\Alle\A\ErnstR\Test_Ziel.xls“
With ActiveWorkbook.Worksheets(„Tabelle1“)
wks1.Range(„A15“).Copy .Range(„B16“)
wks1.Range(„A18“).Copy .Range(„B17“)
wks1.Range(„A21“).Copy .Range(„D18“)
.Parent.Close Savechanges:=True
End With
End Sub

das klappt prima, vielen herzlichen Dank.
Du machst aus einem Buch mal eben einen Dreizeiler.
Ich bin begeistert.

Gruß und allen ein schönes Wochenende.
Rolf