Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Werte aus geschlossener Mappe holen

Werte aus geschlossener Mappe holen
27.01.2007 19:04:30
Wolfgang
Hallo,
ich habe im Internet ein Makro gefunden, daß mir von einer geschlossenen Mappe von A1 bis A15 die Werte in eine Mappe ebenfalls von A1 bis A15 schreibt.
Leider reichen meine minimalen VBA-Kenntnisse nicht aus dieses Makro so umzuprogrammieren, daß mir die Werte von C2 bis M8 aus der geschlossenen Mappe in eine Mappe ebenfalls von C2 bis M8 geschrieben werden.
Ich hoffe auf Hilfe.
Vielen Dank
Wolfgang
Sub TestGetValue()
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim i As Integer
a = "C:\Dokumente und Einstellungen\Wolfgang\Eigene Dateien\Excel-Tabellen"
b = "test.xls"
c = "Tabelle1"
d = "A"
'Schreibt die Werte in die angegebene Tabelle in A1 - A15
For i = 1 To 15
Worksheets("Tabelle1").Range("A" & i) = GetValue(a, b, c, d & i)
If Worksheets("Tabelle1").Range("A" & i) = 0 Then Worksheets("Tabelle1").Range("A" & i) = ""
Next i
End Sub

Private Function GetValue(path, file, sheet, ref)
' Retrieves a value from a closed workbook
Dim arg As String
' Make sure the file exists
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
' Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlUp)
GetValue = ExecuteExcel4Macro(arg)
End Function

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus geschlossener Mappe holen
27.01.2007 20:10:02
fcs
Hallo Wolfgang,
mit folgenden Anpassungen werden die Werte für einen beliebigen Zellbereich aus einer Datei ausgelesen.
Die Prüfung für die Nullwerte hab ich angepasst, damit auch Zellen mit Textinhalten ausgelesen werden können.
Gruß
Franz

Sub TestGetValue()
Dim a As String
Dim b As String
Dim c As String
Dim Zelle As Range, wks As Worksheet, Bereich As String
Set wks = Worksheets("Tabelle1") 'Tabelle in der die Werte eingefügt werden sollen
a = "C:\Dokumente und Einstellungen\Wolfgang\Eigene Dateien\Excel-Tabellen"
b = "test.xls"
c = "Tabelle1"
Bereich = "C2:M8" 'auszulesender/auszufüllender Zellbereich
'Schreibt die Werte in die angegebene Tabelle in den Bereich
For Each Zelle In wks.Range(Bereich)
Zelle.Value = GetValue(a, b, c, Zelle.Address)
'Nullwerte nicht übernehmen
If IsNumeric(Zelle.Value) Then
If Zelle.Value = 0 Then Zelle.ClearContents
End If
Next Zelle
End Sub

Anzeige
AW: Werte aus geschlossener Mappe holen
27.01.2007 21:53:41
Wolfgang
Hallo Franz,
vielen Dank für Deine Hilfe, es funktioniert perfekt.
Der Sinn meines Versuches war aus 2 geschlossenen Mappen "test" und "test1" Werte einzulesen und diese im Tabellenblatt zu addieren. Das klappt Deiner Hilfe jetzt auch wie ich es wollte.
Leider gibt es eine Schwierigkeit. Die Werte aus Tabelle "test" und die Werte in der Addition haben den gleichen Bereich, also C2 bis M8.
Leider hat eine Tabelle "test1" jeweils 5 Zeilen mehr, es sollte als C2 von "test" mit C7 von "test1" addiert werden,Ergebnis in C2, D2 von "test" mit D7 von "test1", Ergebnis in D2, usw.
Meine Versuche sehen wie folgt aus, addieren aber leider den gleichen jeweiligen Bereich.
Auf nochmalige Hilfe hofft
Wolfgang

Sub TestGetValue()
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim Zelle As Range, wks As Worksheet, Bereich As String, BereichPlus As String
Set wks = Worksheets("Tabelle1") 'Tabelle in der die Werte eingefügt werden sollen
a = "C:\Dokumente und Einstellungen\Wolfgang\Eigene Dateien\Excel-Tabellen"
b = "test.xls"
c = "Tabelle1"
d = "test1.xls" '''BereichPlus = "C7:M13"
Bereich = "C2:M8" 'auszulesender/auszufüllender Zellbereich
'Schreibt die Werte in die angegebene Tabelle in den Bereich
For Each Zelle In wks.Range(Bereich)
Zelle.Value = GetValue(a, b, c, Zelle.Address) + GetValue(a, d, c, Zelle.Address)
'Nullwerte nicht übernehmen
If IsNumeric(Zelle.Value) Then
If Zelle.Value = 0 Then Zelle.ClearContents
End If
Next Zelle
End Sub

Anzeige
AW: Werte aus geschlossener Mappe holen
27.01.2007 22:30:50
fcs
Hallo Wolfgang,
passe folgende Zeile an:

Zelle.Value = GetValue(a, b, c, Zelle.Address) + GetValue(a, d, c, Zelle.Offset(5, 0).Address)

Durch den Offset verschiebt sich der Bereich aus dem die Werte gelesen werden um 5 Zeilen nach unten, relativ zur Position von Zelle.
Gruß
Franz
Vielen Dank
27.01.2007 22:40:32
Wolfgang
Hallo Franz,
wünsche dir noch einen schönen Abend und nochmals vielen Dank.
Gruß
Wolfgang

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige