Hallo zusammen,
habe mir folgendes Makro zusammengestrickt. Für einen Profi bestimmt ziemlich chaotisch, für mich ein Wunder das ich so weit überhaupt gekommen bin. Nun habe ich das Problem, daß dieses Makro nur bei einem Schleifendurchlauf funktioniert ("For i = 3 To 3"). Sobald ich "For i = 3 To 4 oder größer" setze, habe ich folgendes Problem: Ich steuere hintereinander verschiedene variable Tabellen an ('Tabelle AUS xyz, 'Tabelle IN xyz, 'Tabelle ind. yyz). Die Tabellennamen sind variabel in Tabellenblatt Kostenstellen hinterlegt. Tabellenblatt ist in beiden Dateien vorh. (abzufragende Datei und Zetraldatei). Bei Tabellen 'Tabelle AUS xyz wird die erste angesteuert in der Zentraldatei, zieht sich aber aus der zuletzt ausgewählten Datei die Werte. Für alle weiteren passiert nichts mehr.
'Tabelle IN xyz, 'Tabelle ind. yyz wird immer korrekt angesteuert. der Fehler ist dementsprechend im obersten Block, nur wo .......? Irgendwas mit dem "i" scheint nicht zu stimmen.
Die Zentraldatei ist leider zu groß zum ins Netz stellen (5,5 MB), aber vielleich weiß trotzdem jemand rat, auch wenn meine Beschreibung vermutlich ziemlich dürftig ist.
Vielen Dank und Gruß
Markus
Sub Abfrage_Vorfertigung()
Dim i As Integer
For i = 3 To 4 'Angabe, wie oft Schleife durchlaufen werden soll
Tabellenname1 = Sheets("Kostenstellen").Cells(27, i) ' abzufragende Datei ("C27")
Tabellenname2 = Sheets("Kostenstellen").Cells(21, 3) ' Zentraldate
Text1 = Sheets("Kostenstellen").Cells(32, i)
Dim j
j = 28 ' gibt die erste Zeile an für Tabellennamen (max bis 28)
Dim x
x = Sheets("Kostenstellen").Range("C31") 'Zellen IN / AUS
'Tabelle AUS
Worksheets("Kostenstellen").Visible = True 'Tabellenblatt sichtbar
Worksheets("Kostenstellen").Select 'Tabellenblatt ausgewählt
Range("B17") = ("Vorfertigung") 'schreibe in Zelle xy Text
Workbooks.Open Filename:=Cells(26, i).Value 'abzufragende Datei ("C26")
Worksheets("Kostenstellen").Visible = True 'Tabellenblatt sichtbar
Worksheets("Kostenstellen").Select 'Tabellenblatt ausgewählt
Sheets(Cells(28, i).Value).Select 'Name Tabelle AUS
Text = x 'Zellen IN / AUS
Range(Text).Select 'markieren Zellen IN / AUS
Selection.Copy 'kopieren
Worksheets("Kostenstellen").Visible = xlVeryHidden
Windows(Tabellenname2).Activate 'Zentraldatei
Worksheets("Kostenstellen").Visible = True
Sheets(Cells(j, 3).Value).Select 'Name Tabelle AUS
Range(Text).Select
ActiveSheet.Paste
Worksheets("Kostenstellen").Visible = xlVeryHidden
'Tabelle IN
Tabellenname1 = Sheets("Kostenstellen").Cells(27, i) ' abzufragende Datei ("C27")
Windows(Tabellenname1).Activate 'abzufragende Datei
Worksheets("Kostenstellen").Visible = True
Worksheets("Kostenstellen").Select
Sheets(Cells(j + 1, i).Value).Select 'Name Tabelle IN ????
Text = x 'Zellen IN / AUS
Range(Text).Select 'markieren Zellen IN / AUS
Selection.Copy 'kopieren
Worksheets("Kostenstellen").Visible = xlVeryHidden
Windows(Tabellenname2).Activate #Zentraldate
Worksheets("Kostenstellen").Visible = True
Worksheets("Kostenstellen").Select
Sheets(Cells(j + 1, i).Value).Select 'Name Tabelle AUS
Range(Text).Select
ActiveSheet.Paste
Worksheets("Kostenstellen").Visible = xlVeryHidden
'Tabelle ind.
Windows(Tabellenname1).Activate 'abzufragende Datei
Worksheets("Kostenstellen").Visible = True
Worksheets("Kostenstellen").Select
Sheets(Cells(j + 2, i).Value).Select 'Name Tabelle ind.
Range(Text1).Select 'markieren Zellen ind.
Selection.Copy 'kopieren
Worksheets("Kostenstellen").Visible = xlVeryHidden
Windows(Tabellenname2).Activate 'Zentraldatei
Worksheets("Kostenstellen").Visible = True
Worksheets("Kostenstellen").Select
Sheets(Cells(j + 2, i).Value).Select 'Name Tabelle ind.
Range(Text1).Select
ActiveSheet.Paste
Worksheets("Kostenstellen").Visible = xlVeryHidden
Application.DisplayAlerts = False
Windows(Tabellenname1).Close (False)
Next
Worksheets("Startfenster").Select
End Sub