Ich bin auf der Suche nach folgendem Lösung.
Der angefügte Code macht folgendes:
Der Code fügt einen Wert aus einer geschlossenen Datei in die Tabelle ein.
Den Pfad für die entsprechende Datei nimmt er aus einer Zelle in der geöffneten Datei, da dieser variabel ist.
Funtkioniert so weit so gut. Nur möchte ich jetzt, dass statt nur ein Wert, mehrere Werte eingefügt/übernommen werden. Die Datei soll sich dabei weiterhin nicht öffnen.
Das wäre schon mal super.
Perfekt wäre es, wenn mittels eines anderen Button's die geänderten Werte in der Tabelle wieder in die geschlossene Datei(nach Pfad in Tabelle) eingefügt werden und gespeichert werden. Das ganze hätte den Sinn dass man in einer "Hauptdatei" alle Daten der einzelnen Dateien ändern und speichern könnte und die einzelnen Datein nicht öffnen müsste.
Aber wenn mir jemand nur für das erste Problem helfen könnte, wäre ich schon sehr froh!
Vielen Dank schon mal!
Gruss
Max
Hier der Code:
Option Explicit
Public Sub Aus_geschlossener_Mappe_lesen()
Dim strPath As String
Dim strFileName As String
Dim strTableName As String
Dim strRange As String
Dim strText As String
Dim rngRange As Range
strPath = "C:\Users\Desktop\Test" 'pfad aus Zelle
strFileName = Range("b1") & ".xlsx" 'dateiname
strRange = "a1" 'Zelle wo der Wert reinkopiert wird
strTableName = "Tabelle1" 'Tabelle wo der Wert reinkopiert wird
If Right(strPath, 1) "\" Then strPath = strPath & "\"
If Dir(strPath & strFileName) = "" Then
MsgBox "Datei existiert nicht: " & strPath & strFileName
Exit Sub
End If
Set rngRange = Nothing
On Error Resume Next
Set rngRange = Range(strRange)
On Error GoTo 0
If rngRange Is Nothing Then
MsgBox "Keine gültige Adresse"
Exit Sub
End If
If rngRange.cells.Count > 1 Then
MsgBox "Nur eine einzelne Zelle erlaubt"
Exit Sub
End If
strText = "'" & strPath & "[" & strFileName & "]" & strTableName & "'!" & Range(strRange). _
Address(ReferenceStyle:=xlR1C1)
Debug.Print strText
cells(2, 2).Value = ExecuteExcel4Macro(strText) 'Wert der kopiert wird
End Sub