Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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

Anzeige

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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige