Werte aus geschlossener Datei kopieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Werte aus geschlossener Datei kopieren
von: Max
Geschrieben am: 15.09.2015 17:17:17

Hallo liebe Excel-user.
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


Bild

Betrifft: AW: Werte aus geschlossener Datei kopieren
von: Case
Geschrieben am: 15.09.2015 18:13:19
Hallo, :-)
hier mal zwei Beispiele mit Download für Dein erstes Problem:
Geschlossene Dateien - drei und mehrere Zellen (Array) auslesen...
Geschlossene Dateien - Range in Masterdatei in Zeilen auslesen...
Für Dein zweites Problem - wenn Du das so willst könntest Du doch gleich mit einer Datenbank arbeiten statt mit einer Tabellenkalkulation. :-)
Servus
Case


Bild

Betrifft: AW: Werte aus geschlossener Datei kopieren
von: Max
Geschrieben am: 15.09.2015 20:35:39
Hallo Case!
Vielen Dank für die rasche Hilfe! Werde wohl erst morgen dazu kommen es richtig zu testen.
Was meinst du denn mit Datenbank? Access?
Bin da leider blutiger Anfänger....
Gruss
Max

Bild

Betrifft: AW: Werte aus geschlossener Datei kopieren
von: Daniel
Geschrieben am: 15.09.2015 21:08:11
Hi
wenn du mit der Datei mehr anstellen willst, als nur einige Werte auszulesen, dann solltest du die betroffene Datei immer öffnen.
Denn erstens ist auch das Lesen von Daten aus einer geschlossenen Datei sehr langsam,
und zweitens steht dir dann das ganze VBA- und Excelinstrumentarium zur Verfügung, mit der du die Datei bearbeiten kannst (z.B. lassen sich viele Aufgaben in einer passend sortierten Liste viel schneller und einfacher erledigen, als in einer unsortierten).
Wenn du in der betroffenen Datei dann noch was ändern willst, dann musst du sie öffen.
Dat is wie mit nem Koffer am Flughafen, denn kann man zwar mit Röntgenstrahlen durchleuchten um zu gucken was drin ist, aber wenn du am Inhalt was verändern willst, musst du den Koffer aufmachen.
Wenn du die Datei geschlossen lassen willst, weil sie gleichzeitig von anderen Personen geöffnet sein könnte, dann öffne sie einfach Schreibgeschützt (Workbooks.Open Dateiname, ReadOnly:=True).
Das funktioniert auch, wenn die Datei bereits von jemand anderem zur Bearbeitung geöffnet ist, bzw wenn du sie schreibgeschützt öffnest, kann sie weiterhin von jemand anderem zu Bearabeitung geöffnet werden.
Gruß Daniel

Bild

Betrifft: AW: Werte aus geschlossener Datei kopieren
von: Max
Geschrieben am: 16.09.2015 21:56:02
Hallo Daniel
Vielen Dank für deinen Hinweis!
Gruss
Max

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Werte aus geschlossener Datei kopieren"