Projektanfrage

Projektanfrage über Web Formular   per Online-Formular 
Projektanfrage über E-Mail  Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Projektanfrage per Telefon  +49 (0)151 / 164 55 914
Projektanfrage weitere Informationen  weitere Informationen 

Sie benötigen Hilfe oder Unter-stützung? Nutzen Sie für Ihre Anfrage unser Online-Formular, senden Sie uns eine Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! oder rufen Sie uns einfach an.

   
      Referenzen 

 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   
     Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   

Projektanfrage

 Sie benötigen eine Auftragsprogrammierung?
 Oder suchen Unterstützung bei der Lösungs-
 findung?

  Nutzen Sie unser Anfrageformular

  Jetzt anrufen unter 0151 / 164 55 914

 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! Projektanfrage per Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! senden

  Weitere Informationen

sitepanel question2

P
R
O
J
E
K
T
A
N
F
R
A
G
E
   

Daten aus geschlossener Arbeitsmappe über Zellverknüpfungen auslesen

Daten können aus geschlossenen Arbeitsmappen auf verschiedene Arten ausgelesen werden. 

In einem Artikel habe ich vor einiger Zeit eine Möglichkeit vorgestellt, um Daten direkt aus einer geschlossenen Arbeitsmappe auszulesen. Dabei werden die Daten direkt als Werte von der geschlossenen Quell-Datei in die geöffnete Zieldatei übertragen. Weiter Infos dazu finden Sie in diesem Beitrag: Daten aus geschlossener Arbeitsmappe auslesen

In diesem Beitrag zeigen wir Ihnen eine  Ihnen einen etwas anderen Ansatz.
Das Auslesen der Werte aus der geschlossenen Arbeitsmappe erfolgt in diesem Beispiel über Formeln, also über Zellbezüge zu der geschlossenen Arbeitsmappe. Dabei wird zunächst die Formel zu der angegebenen Zelle bzw. Zellbereich erstellt und im nächsten Schritt in einen Wert umgewandelt. 

Variante 1: Verwendung der Formeln zum Auslesen der Werte

In dieser ersten Variante werden die Daten aus der geschlossenen Arbeitsmappe über Formelbezüge ausgelesen und entsprechend in der Zieldatei dargestellt. Die Formeln werden dabei direkt per VBA erzeugt.
Dieser Ansatz bietet den Vorteil, dass die Werte in der Zieldatei automatisch aktualisiert werden, wenn sich die Daten in der Quelldatei ändern. 

Hier der entsprechende VBA-Code, welcher in einem Code-Modul zu erfassen ist:

Const strSheetQ As String = "Tabelle1" '** Diese Tabelle wird ausgelesen"
Const strSheetZ As String = "Tabelle1" '** Die Tabelle in dieser Datei, in welche die Daten übertragen werden
Const strRange As String = "A1:A4" '** Der Bereich wird ausgelesen
Const strFile As String = "F:\Excel\Beispiele\geschlossene Mappe2.xlsx" '** Pfad und Datei

Public Sub DatenHolen()
  '** Daten aus geschlossener Datei per Zell-Verknüpfung auslesen und Formel zur externen Datei erzeugen
  With ThisWorkbook.Worksheets(strSheetZ)
    '** Eintragen der Formel
    .Range(strRange).Formula = "='" & Mid(strFile, 1, InStrRev(strFile, "\")) & "[" & _
    Mid(strFile, InStrRev(strFile, "\") + 1) & "]" & strSheetQ & "'!" & strRange
  End With

End Sub


Damit die richtigen Werte ausgelesen werden, müssen im ersten Schritt die Angeben zu der Quell- sowie der Zieldatei und dem auszulesenden Zellbereich hinter den Const-Variablen angegeben werden.



Variante 2: Umwandeln der Formel-Inhalte in unveränderliche Werte

In der zweiten Variante wird genau der gleiche Ansatz verwendet, nur werden die Formeln in einem zweiten Schritt in fixe Werte umgewandelt. Dies hat zur Folge, dass sich Änderungen in der Quelldatei nicht automatisch in der Zieldatei auswirken. Eine Aktualisierung der Werte in der Zieldatei wird erst durchgeführt, wenn der untenstehende VBA-Code erneut ausgeführt wird.

Dieser Code ist absolut identisch mit dem Code aus Variante 1, nur dass eine VBA-Zeile zusätzlich vorhanden ist, welche die über die eingefügten Formel ausgelesene Daten in fixe Werte umwandelt. 

Const strSheetQ As String = "Tabelle1" '** Diese Tabelle wird ausgelesen"
Const strSheetZ As String = "Tabelle1" '** Die Tabelle in dieser Datei, in welche die Daten übertragen werden
Const strRange As String = "A1:A4" '** Der Bereich wird ausgelesen
Const strFile As String = "F:\Excel\Beispiele\geschlossene Mappe2.xlsx" '** Pfad und Datei

Public Sub DatenHolen()
  '** Daten aus geschlossener Datei per Zell-Verknüpfung auslesen und Formel zur externen Datei erzeugen
  With ThisWorkbook.Worksheets(strSheetZ)
    '** Eintragen der Formel
    .Range(strRange).Formula = "='" & Mid(strFile, 1, InStrRev(strFile, "\")) & "[" & _
    Mid(strFile, InStrRev(strFile, "\") + 1) & "]" & strSheetQ & "'!" & strRange
  End With

  '** Umwandeln der Formel in fixe Werte
  .Range(strRange).Value = .Range(strRange).Value

End Sub



   

Relevante Artikel

  • Dateiname und Pfad in Fußzeile einfügen

      Die Datei muss dazu aber mindestens 1 mal gespeichert worden sein, sonst kann der Pfad ja nicht bekannt sein. Also die Datei zuerst speichern und anschließend das Makro ausführen.   Sub...

  • Dialogfenster "Speichern unter" per VBA aufrufen

    Möchten Sie per VBA den Dialog "Speichern unter" aufrufen und dabei den Speicherpfad und den Dateinamen vorgeben? Folgendes Makro erledigt dies für Sie. In diesem Beispiel wird der Pfad "C:\Temp"...

  • Tabellenblätter alphabetisch sortieren

    Dieser VBA-Code sortiert die Tabellenblätter einer Arbeitsmappe in alphabetischer Reihenfolge wahlweise aufsteigend oder absteigend. Um die Sortierreihenfolge zu ändern müssen Sie nur die Variable...

  • Datenexport mit beliebigen Trennzeichen

    105041 Mit diesem Makro können Sie beliebige Zellinhalte als Ascii-Datei in eine Text-Datei exportieren.Es kann ein beliebiges Trennzeichen verwendet werden.So sehen die zu exportierenden Daten aus:  ...

  • Umbenennen von Dateien per VBA

    105040   Das folgende Makro benennt Dateien um, indem der alte Dateiname einfach durch den neuen ersetzt wird. Public Sub umbenennen() Name "C:\test\mappe1.csv" As "C:\test\mappe1.txt" End Sub   So wird aus der...

   
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Bestätigung erklären Sie sich mit der Verwendung von Cookies auf Excel-Inside Solutions einverstanden.
Weitere Informationen Ok