Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

VBA Excel Makro 97 nach 2000





Frage

Hallo, in Version Excel 97 (Win NT) habe ich mehrere Makros geschrieben, die auch prima laufen. Es geht darum, Daten aus einer Datei in eine andere neue Datei zu übertragen. Beispiel: Windows(File1).Activate Range("A1:B1").Select Selection.Copy Windows(File2).Activate Range("A1:B1").Select ActiveSheet.Paste In Excel 2000 funktioniert Windows(File1).Activate nicht. Laufzeitfehler 9: Index außerhalb des gültigen Bereichs. Wer kann mir einen Tip geben? Ich stehe auf der Leitung. Gruß Günter

Antwort 1 von _gau_

Hi,

schreib mal

Application.Windows("File").Activate

[gau]

Antwort 2 von Guenter

Hallo nochmals,

mittlerweile habe ich mein Problem lösen können. Ich habe ein Makro aufgezeichnet, das diese Aktionen, die ich oben beschrieben habe, ausführt.

Dabei wurde der Filename File1 immer mit der Erweiterung .xls angegeben. Das hatte ich nicht gebraucht bei Excel 97. Warum auch immer, ist egal. Hauptsache es läuft jetzt wieder.

Günter

Antwort 3 von Guenter

Hallo [gau] (Steffen),

vielen Dank für Dein Posting, das ich erst gelesen habe, nachdem ich selbst geantwortet hatte.

Application.Windows("File").Activate
würde auch Sinn machen, funktioniert aber nicht bei mir. Hätte mir auch besser gefallen, als immer .xls mit anzugeben. Wie gesagt, mit der Extension läuft es.

Nochmals Danke
Günter

Antwort 4 von _gau_

Ja, stimmt. Ob nun mit Application oder ohne, es geht nur mit Dateierweiterung.
Ich hab das Problem gar nicht so mitbekommen, weil ich sowieso den vollen Dateinamen genommen habe. Wahrscheinlich, weil ich nie so richtig mit Excel97 gearbeitet habe ;-)

Steffen

Antwort 5 von alleNeune

hallo Günter,
versuchs mal mit der Deklaration deiner Dateien, villeicht so, Du musst aber der Kiste sagen, wie deine Dateien und Tabellen heißen. z.B.

Sub Übertragen()
Dim VonDatei, NachDatei As Object
Set VonDatei = Workbooks("DoppelZellenlöschen.XLS").Worksheets("Tabelle2")
Set NachDatei = Workbooks("muster1.XLS").Worksheets("Tabelle 1")

Dann kannst Du schreiben:

NachDatei.Cells(1, 1).Value = VonDatei.Cells(1, 1).Value
NachDatei.Cells(1, 2).Value = VonDatei.Cells(1, 2).Value

genauso kann man schreiben:

Set VonDatei = Workbooks("DoppelZellenlöschen.XLS").Worksheets("Tabelle2").Range("B1:B19")
Set NachDatei = Workbooks("muster1.XLS").Worksheets("Tabelle 1").Range("B1:B19")

NachDatei.Value = VonDatei.Value


End Sub

Die Dateien müssen geöffnet sein, können aber auch ausgeblendet sein, so daß Du sie nicht im Fenster siehst. Das hin und her springen ist nicht nötig und auch nicht schön.

alleNeune

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: