Inputbox: Probleme mit Erkennung Zellbezug
22.04.2009 16:21:10
Andreas
ich habe das Problem, daß ich eine Masterdatei mit einer Reihe an Werten in Spalte A habe, die in ein zu bestimmendes Feld einer anderen Datei eingetragen werden müssen und in dieser anderen Datei dann Berechnungen durchgeführt werden und ich die Ergebniswerte einer anderen Zelle dort zurück in meine Masterdatei bringen möchte.
Die Zellen für das Eintragen der Werte und Auslesen des Ergebnisses möchte ich über eine Inputbox machen, leider gibt es hier Fehler:
Wenn ich das Skript starte und die Masterdatei ist aktiviert, dann kommt bei der Zeile set Startselect... ein Rückgabewert für Startselect von 'leer', aktiviere ich aber die zweite Datei und starte das Skript, geht alles und ich bekomme die Zelladresse in Startselect als Range-Objekt eingetragen.
Kann es sein, daß "Workbooks(Dir(importfileabfrage)).Activate" doch nicht wirklich umschaltet und die Inbox etwas aus der Masterdatei erwartet?
Sub Calculate()
masterfile = ActiveWorkbook.Name
importfileabfrage = Application.GetOpenFilename("Excel-Tabelle (*.xls), *.xls")
For Each Datei In Workbooks
If Datei.Name = Dir(importfileabfrage) Then GoTo weiter
Next
Workbooks.Open Filename:=importfileabfrage
weiter:
Workbooks(Dir(importfileabfrage)).Activate
Set Startselect = Application.InputBox _
(Prompt:="Bitte eine einzelne Zelle auf einem Tabellenblatt " & _
"als Eingabefeld markieren...", _
Title:="Eingabefeld", Type:=8)
Sx = Startselect.Column
Sy = Startselect.Row
WSimportstart = ActiveCell.Worksheet.Name
Set Ergebnisselect = Application.InputBox _
(Prompt:="Bitte eine einzelne Zelle auf einem Tabellenblatt " & _
"als Ergebnisfeld markieren...", _
Title:="Ergebnisfeld", Type:=8)
Ex = Ergebnisselect.Column
Ey = Ergebnisselect.Row
WSimporterg = ActiveCell.Worksheet.Name
Workbooks(masterfile).Activate
Application.ScreenUpdating = False
Worksheets("Daten").Activate
a = 2
While Cells(a, 1) ""
Eingabewert = Cells(a, 1)
Workbooks(Dir(importfileabfrage)).Activate
Worksheets(WSimportstart).Activate
Cells(Sy, Sx) = Eingabewert
Workbooks(Dir(importfileabfrage)).Activate
Worksheets(WSimporterg).Activate
Ergebnis = Cells(Ey, Ex)
Workbooks(masterfile).Activate
Cells(a, reihe) = Ergebnis
a = a + 1
Wend
Application.ScreenUpdating = True
End Sub