Collapse column

Autor Thema: Daten aus geschlossener Datei holen mit VBA  (Gelesen 4789 mal)

Offline rodlof

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2010
Daten aus geschlossener Datei holen mit VBA
« am: März 16, 2016, 13:49:45 Nachmittag »
Guten Tag, liebe Excel-Freunde

Auf der Suche nach einem Makro, das die Daten aus einem riesengrossen File ausliest ohne dieses lange zu öffnen, bin ich bei Alois Eckl fündig georden. Das Makro verwendet die Excel4Makro-Funktion und ist genau das, was ich suche. Allerdings will ich die Daten nicht an derselben Stelle einfügen, sondern mit einem Offset. Ich habe das Makro nun entsprechend abgeändert und es trägt die Daten auch dort ein:
 
Sub Bereich_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, bereich As Range, zelle As Object
Dim relzeile As Integer, relspalte As Integer
 
'** Angaben zur auszulesenden Zelle
pfad = "Q:\G_ZV_SPA_FINANZ\Controlling\!Neuer Master\Test"
datei = "Quelldatei.xlsx"
blatt = "Tabelle1"
Set bereich = Range("A2:B11")
 
relzeile = ActiveCell.Row - bereich.Row
relspalte = ActiveCell.Column - bereich.Column
 
'** Bereich auslesen
For Each zelle In bereich
'** Zellen umwandeln
  zelle = zelle.Address(False, False)
 
  '** Eintragen in Bereich
  ActiveSheet.Cells(zelle.Row, zelle.Column).Offset(relzeile, relspalte).Value = GetValue(pfad, datei, blatt, zelle)
 
Next zelle
 
End Sub


Nun habe ich aber das Problem, dass beim Auslesen die Zeile "zelle = zelle.Address(False, False)" die Adresse der Zelle auch in die entsprechende Zelle in der Zieldatei schreibtr. Beim ursprüngölichen Makros wird dieser Eintrag dann mit dem Wert selber überschrieben, und ist daher nur temporär vorhanden. Mit einem Offset bleiben diese Einträge aber bestehen.

Hat vielleicht jemand eine Idee, wie ich das umgehen könnte? Vielen Dank im Voraus für die Hilfe
 
Freundliche Grüsse aus der Schweiz

rodlof

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline rodlof

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2010
Office 2010: Antw: Daten aus geschlossener Datei holen mit VBA
« Antwort #1 am: März 17, 2016, 10:24:54 Vormittag »
Guten Tag
Ich habe die Lösung des Problems gefunden. Für alle, die hier mit dem gleichen Problem landen, möchte ich sie hier schnell aufzeigen.

Es ist gar nicht nötig, dass die Umwandlung der aktuelen zelladresse in das Blatt geschrieben wird. Ich habe einfach eine neue Variable definiert, die ich der Funktion GetValue mitgebe. Die Lösung sieht so aus:


Sub Bereich_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, bereich As Range, zelle As Object
Dim relzeile As Integer, relspalte As Integer, relzelle as string
 
'** Angaben zur auszulesenden Zelle
pfad = "Q:\G_ZV_SPA_FINANZ\Controlling\!Neuer Master\Test"
datei = "Quelldatei.xlsx"
blatt = "Tabelle1"
Set bereich = Range("A2:B11")
 
relzeile = ActiveCell.Row - bereich.Row
relspalte = ActiveCell.Column - bereich.Column
 
'** Bereich auslesen
For Each zelle In bereich
'** Zellen umwandeln
  relzelle = zelle.Address(False, False)
 
  '** Eintragen in Bereich
  ActiveSheet.Cells(zelle.Row, zelle.Column).Offset(relzeile, relspalte).Value = GetValue(pfad, datei, blatt, relzelle )
 
Next zelle
 
End Sub


Liebe Grüsse aus der Schweiz
rodlof

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.