AW: Daten aus anderer Datei auslesen und eintragen
25.01.2010 07:54:50
fcs
Hallo Bernd,
muss die Quelldatei unbedingt geschlossen bleiben? Das macht alles doch ziemlich kompliziert.
Mit dem existierenden Makro gibt es verschiedene Probleme die bereinigt werden müssen:
- im Blatt "MA-Liste ist die Spalte A als Text formatiert. Da funktioniert das eintragen der Formeln nicht. Zellformat muss hier "Standard" sein.
- im Makro müssen alle Teile, die die ursprünglich vorhandene Summenberechnung durchfüren gelöscht werden.
- die Formel zur Werte-Übertragung muss angepasst werden.
- zum Schluss müssen Formeln durch Werte ersetzt werden.
Gruß
Franz
die Prozedur zum Werte holen muss etwa wie folgt aussehen (ohne Funktionsgarantie)
'Werte einlesen
Private Sub GetValues(BlattName As String, Bereich As Range)
'Summieren der Zell-Inhalte aus mehreren Dateien, _
dabei ist der Tabellenblatt-Name identisch mit dem aktiven Blatt
'BlattName = Name des Blatts aus dem Werte eingelesen werden sollen
'Bereich = Zellen-Bereich in dem Summen berechnet werden sollen
Dim Zelle As Range
Dim sFormel As String
Dim iI As Integer
On Error GoTo Fehler
'Datei-Auswahl-Liste in Listbox abarbeiten
With Me.ListBox1
Bereich.ClearContents
For iI = 0 To .ListCount - 1
If .Selected(iI) = True Then
'einzutragende Formel für Bereich ermitteln und einfügen
'"='C:\Users\Public\Test\01\[Data03.xls]Daten'!R7C3:R23C11"
sFormel = "='" & Me.txtDir & Application.PathSeparator _
& "[" & .List(iI, 0) & "]" _
& Me.txtTab & "'!" & "R[0]C[0]"
Bereich.FormulaR1C1 = sFormel
Bereich.Calculate
End If
Next
'Formeln durch Werte ersetzen
Bereich.Value = Bereich.Value
End With
Fehler:
With Err
If .Number <> 0 Then
MsgBox sFormel
MsgBox "Fehler-Nr.:" & .Number & vbLf & .Description
End If
End With
Set Zelle = Nothing
End Sub