Hilfe!!! Daten aus einem WS in ein anderes kopiere
25.11.2003 08:32:09
Helmut
ich habe wieder ein kleines Problem, bei dem ich mächtig anstehe.
Ich habe eine Excel-Datei, in der ich am ersten Tabellenblatt einige Buttons habe, um Macros auszuführen.
Ein Macro davon sucht im zweiten Tabellenblatt dieser Excel-Datei in einer Spalte nach dem Eintrag "0A Ergebnis". Wenn dieser Eintrag gefunden wurde, soll eine andere Excel-Datei geöffnet werden und aus der ersten Datei ein Wert aus einer Zelle in die neu geöffnete Datei in eine bestimmte Zelle kopiert werden.
Danach soll die neu geöffnete Datei gespeichert und geschlossen werden.
(Später sollen noch andere "Case"-Abfragen für solche Kopiervorgänge eingebaut werden)
Dazu habe ich ein Macro "manuell" aufgezeichnet und angepasst, aber es kommt nur bis zum Kopiervorgang des Wertes aus der ersten Datei.
Die 2. Datei wird zwar geöffnet, aber mehr schon nicht.
Fehlermeldung:
Laufzeitfehler '9'
Index außerhalb des gültigen Bereichs
Meine Syntax ist folgende:
(der Debugger bleibt in der Zeile stehen, die ich mit 2 Rufzeichen am Anfang markiert habe!! Die Variablen KST, Jahr und Monat sind global gesetzt und bekannt; die Datei wird ja auch geöffnet)
Mit der Variablen m zähle ich die Anzahl der "belegten" Zeilen in der Spalte.
Private Sub CommandButton3_Click()
' Wenn in Spalte F (Auftragsarten AA) die verschiedenen Auftragsarten "XY Ergebnis" stehen, zugehörige Werte
' der Spalten I (6) (Std.) und M (13) (Kosten) kopieren und in Periodenarbeitsmappe einfügen
Dim m As Integer
Dim n As Integer
m = 1
Sheets("ETODATE").Activate
Sheets("ETODATE").Range("F2").Select
While IsEmpty(ActiveCell.Value) = False
ActiveCell.Offset(1, 0).Select
m = m + 1
Wend
For n = 2 To m
Select Case Sheets("ETODATE").Cells(n, 6)
Case "0A Ergebnis"
Workbooks.Open FileName:="H:\20031124\" & KST & "_" & Jahr & "_" & Monat & ".xls"
Windows("E-Todate.xls").Activate
Sheets("ETODATE").Range("I" & n & "").Copy
!! Windows(" " & KST & "_" & Jahr & "_" & Monat & ".xls").Activate
Sheets("Tabelle1").Range("C4").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Close SaveChanges:=True
End Select
Next n
End Sub
Was mache ich hier falsch?? Beim Kompilieren kommt keine Fehlermeldung! Schafft VBA den Fensterwechsel für den Kopiervorgang nicht? Gehört vor ..Windows("....) noch eine genauere Angabe? Auch für die Range-Auswahl davor mußte ich das aufgezeichnete Macro anpassen indem ich den Sheetnamen vor den Range gesetzt habe (Sheets("ETODATE").Range("I" & n & "").Select)!)
Bei Windows() finde ich aber keinen geeignete Angabe "davor"!?
Bitte euch um Hilfe und eventuelle genaue Scriptangabe, denn ich bin noch recht Anfänger und mache Learning by Doing, aber hier weiß ich nach Stunden des Ausprobierens auch nicht weiter!
Danke im Voraus!
LG
Helmut