Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1304to1308
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
Inhaltsverzeichnis

GetValue abfangen?

GetValue abfangen?
17.03.2013 17:19:20
Michael
Hallo,
ich importiere aus einer geschlossenen Arbeitsmappe bestimmte Zellwerte, das funktioniert tadellos. Allerdings kommt am Ende immer die Fehlermeldung.
"Laufzeitfehler '1004' Anwendungs- oder Objektdefinierter Fehler"
Was kann ich ändern? Ich entnehme Daten ausschließlich im Datenbereich von A1:L30 aus der alten Mappe. Die neue Mappe ist genauso strukturiert wie die alte.
Bin für jeden Hinweis dankbar.
Gruß
Michael
Hier der Code
Option Explicit
Sub TestGetValue()
Dim strFile As String, strPath As String, strWBook As String, strSheet As String
Dim strCell() As String, strRef As String, strRange() As String
Dim lngIndex As Long, lngCell As Long, rng As Range
strFile = Application.GetOpenFilename("Excel Dateien (*.xls; *.xlsm)," & _
"*.xls; *.xlsm", 1, "Datei zum Datenimport auswählen")
If strFile = "Falsch" Then Exit Sub
strPath = Left(strFile, InStrRev(strFile, "\"))
strWBook = Right(strFile, Len(strFile) - Len(strPath))
strRef = "pers. Angaben!C3:C5,C7:C9,C12,C14,C16,C18,C20,C22,D23,C26;pers. Angaben!F3:F5,F7:F9,F12,F14,F16,F18,F20,F22,G23,F26"
'Tabellenname!Zelladresse(n) - Anpassen!
'Tabellen getrennt durch ; - Zellen(bereiche) getrennt durch ,
'Beispiel "Tabelle1!A1:A10,C1:C10;Tabelle2!C5,C7"
strRange = Split(strRef, ";")
For lngIndex = 0 To UBound(strRange)
strSheet = Left(strRange(lngIndex), InStr(1, strRange(lngIndex), "!") - 1)
strCell = Split(Mid(strRange(lngIndex), InStr(1, strRange(lngIndex), "!") + 1), ",")
For lngCell = 0 To UBound(strCell)
For Each rng In Range(strCell(lngCell))
ThisWorkbook.Sheets(strSheet).Range(rng.Address) = _
GetValue(strPath, strWBook, strSheet, rng.Address)
Next
Next
Next
End Sub 'Diese Funktion wird vom obigen Makro benötigt!
Private Function GetValue(path As String, file As String, _
sheet As String, ref As String)
' 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(, , xlR1C1)
' Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: GetValue abfangen?
18.03.2013 11:31:05
Klaus
Hi Michael,
warum sollen wir das nachbauen, lad doch bitte eine Musterdatei hoch.
Ist das immer noch das gleiche Thema wie hier?
https://www.herber.de/forum/messages/1304123.html
Grüße,
Klaus M.vdT.

RE: AW: GetValue abfangen?
18.03.2013 12:59:11
Michael
Hallo Klaus,
erst mal Danke für die Rückmeldung. Ja es handelt sich im Prinzip um das gleiche Problem.
Ich möchte aus "alten" Arbeitsmappen bestimmte Zellwerte von verschiedenen Blättern importieren.
Hintergrund ist, dass wir für Kunden bestimmte Berechnungen gemacht haben, die jetzt aktualisiert werden sollen. Die Daten der Kunden haben sich nicht verändert, aber die Ergebnisse sind z.B. auf Grund des höheren Alters anders. In der neuen Version der Datei sind die anderen gesetzlichen Änderungen berücksichtigt.
Wie gesagt der Import funktioniert beim ersten Blatt, bricht dann aber mit Laufzeitfehler ab.
Im VBA-Editor wird beim debuggen die folgende Zeile markiert:
ThisWorkbook.Sheets(strSheet).Range(rng.Address) = _
GetValue(strPath, strWBook, strSheet, rng.Address)
Ich würde dir sehr gerne meine beiden Dateien per mail zukommen lassen, öffentlich möchte ich sie nicht machen, da ich sehr viel Zeit und Nerven investiert habe.
Es wäre nett wenn du mir diese Möglichkeit bieten würdest.
Mit freundlichen Grüßen
Michael

Anzeige
RE: AW: GetValue abfangen?
18.03.2013 13:24:25
Klaus
Ich würde dir sehr gerne meine beiden Dateien per mail zukommen lassen, öffentlich möchte ich sie nicht machen, da ich sehr viel Zeit und Nerven investiert habe.
Es wäre nett wenn du mir diese Möglichkeit bieten würdest.

Hallo Michael,
da hast du bei mir keine Chance.
Erstens veröffentliche ich hier nicht meine Mailadresse, weil ich in panischer Angst vor Spam-Robotern lebe.
Zweitens ist dieses Forum eine Community *1) in der man voneinander und miteinander lernt. Wenn dein Problem hier im Forum gelöst wird, bleibt es für den nächsten fragenden mit einem ähnlichem Problem über die Recherche findbar.
Drittens kennst du MICH doch gar nicht. Vielleicht bin ich ein nigerianischer Milliardär, der aus Hobby geheime Excel-Dateien abgrast um sie dann auf seine Facebook Seite zu stellen?
Also, mach öffentlich und dir wird geholfen, oder investier noch mehr Zeit und nerven. Sensible Daten wie Kreditkartennummern, Klarnamen+Adresse oder Umsatzergebnisse anonymisierst du vorher natürlich.
Grüße,
Klaus M.vdT.
*1) blödes Denglisch ... was ist denn das deutsche Wort für Community in diesem Kontext? Kommune ist falsch, oder?

Anzeige
RE: AW: GetValue abfangen?
18.03.2013 13:32:43
Michael
Hallo Klaus,
danke für die eindeutige und klare Antwort.
Dann werde ich deinem Rat folgen und noch mehr Zeit und Nerven investieren.
Man wird ja schließlich nicht dümmer.
Schönen Tag noch
Michael

Nee, ursprgl 'Freutsch', ...
18.03.2013 15:54:56
Luc:-?
…Klaus! ;-)
Gehst du zum Ursprung, kommst du auch auf kommunal und das hat ja etwas mit Gemeinde zu tun, nur dass hier auch Gemeinschaft passen würde…
Gruß Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige