AW: Frage zu ThisWorkbook / activeWorkbook
28.08.2008 17:25:00
Thomas3
Hallo Chris,
Siehe Unten
Lieben Dank für jeden Hinweis
Thomas
Sub daten_übertragen()
Dim masterdatei As String
'Bildschirm einfrieren
Application.ScreenUpdating = False
'anzahl zeilen zählen
lzeileTW = Sheets("Arbeits_Tabelle").Cells(Rows.Count, 1).End(xlUp).Row
'Bereich zum Sortieren festlegen
Range(Cells(13, 1), Cells(lzeileTW, 20)).Select
'nach den markierten Änderungzeilen sortieren
Selection.Sort Key1:=Range("T14"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'übrige Zeilen löschen
lzeileTW_20 = Sheets("Arbeits_Tabelle").Cells(Rows.Count, 20).End(xlUp).Row
anzahl_zeilen_mit_x = lzeileTW_20 - 13
Range(Cells(14 + anzahl_zeilen_mit_x, 1), Cells(lzeileTW, 20)).Select
Selection.Clear
'Zeilen mit X kopieren
Range(Cells(14, 1), Cells(13 + anzahl_zeilen_mit_x, 17)).Select
Selection.Copy
'Dateiname Masterdatei festlegen
pfad = ThisWorkbook.Worksheets("Arbeits_Tabelle").Cells(8, 3).Value & "\"
datei = ThisWorkbook.Worksheets("Arbeits_Tabelle").Cells(9, 3).Value
masterdatei = pfad & datei
'
Function starten zum schauen, ob Masterdatei offen
iOpen = TestOpen(masterdatei)
neuer_versuch:
Select Case iOpen
'Fall 1 : Datei ist verfügbar
Case 0: GoTo weiter
'Fall 2 : Datei bereits offen
Case 1: GoTo neuer_versuch
End Select
weiter:
'Masterdatei öffnen
Workbooks.Open Filename:=masterdatei
Sheets("Liste").Activate
'letzte beschriebene Zeile definieren
lzeileAW = Sheets("Liste").Cells(Rows.Count, 1).End(xlUp).Row
Cells(lzeileAW + 1, 1).Select
'Bereich einfügen
ActiveSheet.Paste
'Daten sortieren
lzeileAW = Sheets("Liste").Cells(Rows.Count, 1).End(xlUp).Row
Range("A1").Select
Application.CutCopyMode = False
Range(Cells(1, 1), Cells(lzeileAW, 17)).Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:= _
Range("A2"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
'kopierte Zeilen löschen
ThisWorkbook.Sheets("Arbeits_Tabelle").Activate
Range(Cells(14, 1), Cells(13 + anzahl_zeilen_mit_x, 20)).Select
Selection.Clear
'gesamte neue Liste kopieren
ActiveWorkbooks(masterdatei).Activate ---------- Laufzeitfehler 9
Range(Cells(2, 1), Cells(lzeileAW, 17)).Copy
ThisWorkbook.Worksheets("Arbeits_Tabelle").Activate
Cells(14, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'um die geöffnete Auslesedatei schließen zu können
'Dateinamen definieren
suche1 = ThisWorkbook.Sheets("Zu Beginn").Cells(12, 2).Value
Workbooks(suche1).Activate
Application.CutCopyMode = False
ActiveWorkbook.Close savechanges:=True
'Bildschirm auftauen
Application.ScreenUpdating = True
End Sub