Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1204to1208
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblätter auslesen

Tabellenblätter auslesen
Koenig
Guten morgen nochmal,
ich habe ein Makro, mit welchem ich aus 26 Tabellen jeweils 12 Zeilen heraus kopiere. Im Moment habe ich es so gemacht, das ich jede Tabellen nacheinander öffne, auslese und schließe. Die Namen der Dateien stehen in der Tabelle wohin die Daten kopiert werden sollen in einem separate Tabellenblatt. Da ich noch ziemlich am Anfang meines VBA wissens stehe habe daher einen Coder der "viel zu lang" und deshalb auch nur sehr schwer zu pflegen ist. In den 26 Tabellen stehen die Informationen immer an der selben stelle, in der Tabelle wo die Daten hin sollen an 12 verschiedenen aber pro Land immer untereinander so wie die Länder ausgelesen werden.
Ich würde gern diesen Code in eine schleife stecken, sodass ich nur einen habe der dann einfach 26 mal durchlaufen wird. Wie könnte so etwas aussehen. Hier ist der Code den ich habe für ein Land:
Application.DisplayAlerts = False
'******Vietnam*****
Windows("Monatsbericht_Vans_auslesen.xls").Activate
Sheets("Schalter").Select
Workbooks.Open Range("d67").Value 'hier steht der Pfad für das Land drinn darunter dann noch 25 Pfade Application.AskToUpdateLinks = False
'**********************
'Order m1
Sheets("expectation").Select
Range("e245:p245").Select ' hier stehen die ersten Daten drinn
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("ce67").Select 'an diese Stelle werden die ersten Daten kopiert für das nächste Land dann in ce68
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
'Order m2
Windows("Vietnam.xls").Activate
Sheets("expectation").Select
Range("e246:p246").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("cr67").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
'Order l1
Windows("Vietnam.xls").Activate
Sheets("expectation").Select
Range("e240:p240").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("de67").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
'Order l2
Windows("Vietnam.xls").Activate
Sheets("expectation").Select
Range("e247:p247").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("dr67").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
'Retail m1
Windows("Vietnam.xls").Activate
Sheets("expectation").Select
Range("e100:p100").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("ee67").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
'Retail m2
Windows("Vietnam.xls").Activate
Sheets("expectation").Select
Range("e101:p101").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("er67").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
'Retail l1
Windows("Vietnam.xls").Activate
Sheets("expectation").Select
Range("e95:p95").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("fe67").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
'Retail l2
Windows("Vietnam.xls").Activate
Sheets("expectation").Select
Range("e102:p102").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("fr67").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
'Group Sale m1
Windows("Vietnam.xls").Activate
Sheets("expectation").Select
Range("e85:p85").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("ge67").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
'Group Sale m2
Windows("Vietnam.xls").Activate
Sheets("expectation").Select
Range("e86:p86").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("gr67").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
'Group Sale l1
Windows("Vietnam.xls").Activate
Sheets("expectation").Select
Range("e80:p80").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("he67").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
'Group Sale l2
Windows("Vietnam.xls").Activate
Sheets("expectation").Select
Range("e87:p87").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Monatsbericht_Vans_auslesen.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Auslese_Datei").Select
Range("hr67").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'*************************
Windows("Vietnam.xls").Activate
ActiveWorkbook.Close
Application.CutCopyMode = False
Wäre super wenn mir da jemand helfen könnte, Das würde mir den Pflege Aufwand sehr erleichtern.
Vielen Dank
Jens

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Tabellenblätter auslesen
23.03.2011 13:10:38
Rudi
Hallo,
das Grundgerüst:
Sub test()
Dim i As Integer, wkbQ As Workbook, wksQ As Worksheet, wksZ As Worksheet
Set wksZ = ThisWorkbook.Sheets("Auslese_Datei")
For i = 67 To 92
Set wkbQ = Workbooks.Open(wksZ.Sheets("Schalter").Cells(i, 4))
Set wksQ = wkbQ.Sheets("expectation")
'hier steht der Pfad für das Land drinn darunter dann noch 25 Pfade Application. _
AskToUpdateLinks = False
'Order m1
wksQ.Range("e245:p245").Copy ' hier stehen die ersten Daten drinn
wksZ.Cells(Rows.Count, "CE").End(xlUp).Offset(1).PasteSpecial xlPasteValues
'Order m2
wksQ.Range("e246:p246").Copy
wksZ.Cells(Rows.Count, "CR").End(xlUp).Offset(1).PasteSpecial xlPasteValues
'Order l1
wksQ.Range("e246:p246").Copy
wksZ.Cells(Rows.Count, "DE").End(xlUp).Offset(1).PasteSpecial xlPasteValues
'und so weiter und so fort
wkbQ.Close
Application.CutCopyMode = False
Next i
End Sub

Gruß
Rudi
Anzeige
AW: Tabellenblätter auslesen
23.03.2011 13:23:37
Koenig
Lieber Rudi,
vielen Dank schon mal, ich werde das ausprobieren und bescheid geben, was daraus geworden ist.
Jens
AW: Tabellenblätter auslesen
23.03.2011 13:44:20
Koenig
Hallo Rudi,
ich habe es mal fertig gebastelt aber bekomme eine Fehlermeldung (Fehler beim kompilieren) in Zeile 5:
Sub test()
Dim i As Integer, wkbQ As Workbook, wksQ As Worksheet, wksZ As Worksheet
Set wksZ = ThisWorkbook.Sheets("Auslese_Datei")
For i = 48 To 73
Set wkbQ = Workbooks.Open(wksQ.Sheets("Schalter").Cells(i, 4))
Set wksQ = wkbQ.Sheets("expectation")
'hier steht der Pfad für das Land drinn darunter dann noch 25 Pfade Application. _
AskToUpdateLinks = False
'**********************
'Order m1
wksQ.Range("e245:p245").Copy ' hier stehen die ersten Daten drinn
wksZ.Cells(Rows.Count, "CE").End(xlUp).Offset(1).PasteSpecial xlPasteValues
wäre nett wenn du da nochmal schauen könntest,
LG Jens
Anzeige
AW: Tabellenblätter auslesen
23.03.2011 13:46:03
Rudi
Hallo,
ja, ist Quatsch.
Set wkbQ = Workbooks.Open(ThisWorkbook.Sheets("Schalter").Cells(i, 4))
Gruß
Rudi
AW: Tabellenblätter auslesen
23.03.2011 14:10:43
Koenig
Lieber Rudi,
vielen Dank, der code läuft fehlerfrei durch, jedoch kommen nicht die Werte die ich erwartet habe, er überschreibt beim zweiten durchlauf die ersten und schreibt ddort aber nicht die werte von der zweiten Datei. noch hab ich nicht herausgefunden, ob das eine Summe oder etwas anderes ist, kannst du bitte nochmal kurz schauen, ob du etwas siehst. Warum muß man denn an der Stelle die Zeilen zählen und setzt nicht einfach i ein (wksZ.Cells(Rows.Count, "CE").End(xlUp).Offset(1).PasteSpecial xlPasteValues
)
Sub test()
Dim i As Integer, wkbQ As Workbook, wksQ As Worksheet, wksZ As Worksheet
Set wksZ = ThisWorkbook.Sheets("Auslese_Datei")
For i = 48 To 49
Application.DisplayAlerts = False
Set wkbQ = Workbooks.Open(ThisWorkbook.Sheets("Schalter").Cells(i, 4))
Set wksQ = wkbQ.Sheets("expectation")
'hier steht der Pfad für das Land drinn darunter dann noch 25 Pfade Application. _
AskToUpdateLinks = False
'Order m1
wksQ.Range("e245:p245").Copy ' hier stehen die ersten Daten drinn
wksZ.Cells(Rows.Count, "CE").End(xlUp).Offset(1).PasteSpecial xlPasteValues
'Order m2
wksQ.Range("e246:p246").Copy
wksZ.Cells(Rows.Count, "CR").End(xlUp).Offset(1).PasteSpecial xlPasteValues
'usw
wkbQ.Close
Application.CutCopyMode = False
Next i
Application.DisplayAlerts = True
End Sub
Vielen Dank Jens
Anzeige
AW: Tabellenblätter auslesen
23.03.2011 14:23:16
Rudi
Hallo,
Warum muß man denn an der Stelle die Zeilen zählen und setzt nicht einfach i ein
(wksZ.Cells(Rows.Count, "CE").End(xlUp).Offset(1).PasteSpecial xlPasteValues)

Muss man nicht. Wenn's passt, dann mach das.
wksZ.Cells(i , "CE").PasteSpecial xlPasteValues
Gruß
Rudi
AW: Tabellenblätter auslesen
23.03.2011 14:42:49
Koenig
Lieber Rudi,
vielen Herzlichen Dank. Damit hab ich heute wieder ne ganze Menge gelernt. Super.
LG Jens

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige