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 Auftragsformular

  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 auslesen

Um Daten per VBA aus einer anderen Arbeitsmappe auszulesen, muss diese im Normalfall zunächst geöffnet werden um anschließend auf die einzelnen Zellinhalte zugreifen zu können.

 

Es geht aber auch anders. Die folgenden VBA-Beispiele zeigen, wie über einen Trick diese Beschränkung umgangen werden kann. Verwendet wird dazu eine Excel4Macro-Funktion, die nach wie vor in allen Excel-Versionen zur Verfügung steht.


Zentraler Bestandteil ist eine Function, welche die Daten aus der geschlossenen Arbeitsmappe ausliest. Dieser Funktion werden dazu einfach der Pfad, der Dateiname, das Tabellenblatt und die Zelle übergeben, die aus der geschlossenen Tabelle ausgelesen werden soll.

 

Listing 1 zeigt die Auslese-Function.

Private Function GetValue(pfad, datei, blatt, zelle)
'** Daten aus geschlossener Arbeitsmappe auslesen

'*** Dimensionierung der Variablen
Dim arg As String

'Sicherstellen, dass das datei vorhanden ist
If Right(pfad, 1) <> "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = "datei Not Found"
Exit Function
End If

'** Das Argument erstellen
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(zelle).Range("A1").Address(, , xlR1C1)

'** Auslesen über Excel4Macro
GetValue = ExecuteExcel4Macro(arg)

End Function

 

Um einen einzelnen Wert aus einer angegebenen Zelle auszulesen, verwenden Sie folgendes Makro.

Sub Zelle_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, zelle As String

'** Angaben zur auszulesenden Zelle
pfad = "F:\Excel\Beispiele"
datei = "geschlossene Mappe2.xls"
blatt = "Tabelle1"
bezug = "A2"

'** Eintragen in Zelle
ActiveCell.Value = GetValue(pfad, datei, blatt, bezug)

End Sub

Im Beispiel wird aus der Datei "geschlossene Mappe2.xls" die Zelle A2 aus dem Tabellenblatt "Tabelle1" ausgelesen und in die aktuell selektierte Zelle eingetragen.

Wenn ganze Bereiche aus der geschlossenen Arbeitsmappe ausgelesen werden sollen, dann verwenden Sie einfach folgenden VBA-Code.

Sub Bereich_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, bereich As Range, zelle As Object

'** Angaben zur auszulesenden Zelle
pfad = "F:\Excel\Beispiele"
datei = "geschlossene Mappe2.xls"
blatt = "Tabelle1"
Set bereich = Range("A1:B10")

'** Bereich auslesen
For Each zelle In bereich
  
  '** Zellen umwandeln
  zelle = zelle.Address(False, False)
  
  '** Eintragen in Bereich
  ActiveSheet.Cells(zelle.Row, zelle.Column).Value = GetValue(pfad, datei, blatt, zelle)
Next zelle

End Sub

In diesem Beispiel wird der Zellbereich A1 bis B10 der geschlossenen Tabelle ausgelesen und in das aktuelle Tabellenblatt im gleichen Zellbereich eingetragen.

Die Beispieldatei mit dem VBA-Code können Sie über den folgenden Link herunterladen.

 

   

Relevante Artikel

  • 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...

  • Arbeitsmappe aus Dateiliste öffnen

    103008 In Excel werden Wahlweise bis zu 9 der zuletzt geöffneten Arbeitsmappen unter dem Menüpunkt 'Datei' angezeigt. Möchten Sie aus dieser Auswahlliste eine Datei öffnen, dann hilft Ihnen dieses...

  • Dateien eines beliebigen Verzeichnisses auflisten (Inhaltsverzeichnis)

    105043 Dieses Makro listet alle Dateien des angegebenen Verzeichnisses ab der aktiven Zelle auf.Sub DateinamenAuflisten()'Dateinamen in einem bestimmten Verzeichnis auflisten'Die Angabe des...

  • 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"...