Collapse column

Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - rodlof

Seiten: [1]
1
Excel / Office 2010: Antw: Daten aus geschlossener Datei holen mit VBA
« 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

2
Excel / 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

Seiten: [1]