Hallo Leute,
ich benötige mal Eure fachmännische Hilfe zur folgender Ausgangssituation:
Excel-Datei A: Diese Datei wird mir einmal im Monat aus SAP bereit gestellt. Sie umfaßt insg. immer 48 Spalten und eine variable Anzahl an Zeilen. Von diesen 48 Spalten werden jedoch nur 18 Spalten benötigt. Die Anordnung der Spalten ist immer gleich.
Excel Datei B: In dieser Datei gibt es 12 Tabellenblätter (Januar bis Dezember). Auf jedem Blatt ist die selbe Grundtabelle. Zeile 1 beinhaltet die Spaltenüberschriften. Ab Zeile zwei kommen die Daten. Ab Spalte 19 kommen verschiedene Spalten mit div. umfangreichen Berechnungen.
Jetzt zu meinem Anliegen. Ich suche eine Möglichkeit, um per "Knopfdruck" (also Makro) aus der Datei B heraus, die Datei A aufzurufen, die nicht benötigten Spalten zu entfernen und anschließend in die übrigen Daten (abzüglich der ersten Zeile, da dies die Überschriften sind) in meine Datei B wieder einzufügen. Der Bereich, in den die Daten in Datei B eingefügt werden ist fest definiert: Von A2:R65000.
Hat irgend jemand eine Idee? Ich wäre Euch da echt dankbar!
Gruß
Ciesto
edit: Ich habe mal noch ein wenig gegoogelt und habe nun folgenden Code:
Private Sub CommandButton1_Click()
x = Application.GetOpenFilename()
If x = False Then Exit Sub
Set xlWB = Workbooks.Open(x)
Sheets("Daten").Select
Range("B:B,D:D,E:E,M:M,N:N,O:O,P:P,Q:Q,R:R,S:S,T:T,U:U,X:X,Y:Y,Z:Z,AA:AA,AB:AB,AC:AC,AF:BI").Select
Selection.Delete Shift:=xlToLeft
Range("A2:M1000").Select
Selection.Copy
Windows("Verrechnete Aufarbeitungen von 01.2011 bis 12.2011.XLS").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Allerdings kommt immer ein Laufzeitfehle '1004' Anwendungs- oder Objektdefinierter Fehler
Hallo,
ZitatAllerdings kommt immer ein Laufzeitfehle '1004' Anwendungs- oder Objektdefinierter Fehler
...und in welcher Zeile passiert das?
Setz mal einen Haltepunkt aufs Ereignis und fahre den Code mit F8 schrittweise durch
Bei folgender Zeile passiert es:
Sheets("Daten").Select
Versuch mal
ActiveWorkbook.Sheets("Daten").Select
der fehler liegt sicher daran, dass das Blatt nicht richtig angesprochen wird.
Sheet allein geht nur wenn der Code in Excel läuft.
Zitat von: database am Februar 27, 2011, 14:35:57
Versuch mal
ActiveWorkbook.Sheets("Daten").Select
der fehler liegt sicher daran, dass das Blatt nicht richtig angesprochen wird.
Sheet allein geht nur wenn der Code in Excel läuft.
Nun erschein folgender Fehler:
'Laufzeitfehler 1004'
Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden.
Hallo,
entsteht der Fehler in der gleichen Zeile oder beim Auswählen der Spalten?
Beim Auswählen der Spalten .
Versuch dann da mal:
ActiveSheet.Range("B:B,D:D,E:E,M:M,N:N,O:O,P:P,Q:Q,R:R,S:S,T:T,U:U,X:X,Y:Y,Z:Z,AA:AA,AB:AB,AC:AC,AF:BI").Select
Danke database!
Jetzt hat's geklappt. Supi...!
edit: Für alle, die es interessiert, hier mal der komplette Code, so wie ich ihn jetzt verwende:
Private Sub CommandButton1_Click()
x = Application.GetOpenFilename()
If x = False Then Exit Sub
Set xlWB = Workbooks.Open(x)
ActiveWorkbook.Sheets("Daten").Select
ActiveSheet.Range("B:B,C:C,D:D,E:E,M:M,N:N,O:O,P:P,Q:Q,R:R,S:S,T:T,U:U,X:X,Y:Y,Z:Z,AA:AA,AB:AB,AC:AC,AF:BI").Select
Selection.Delete Shift:=xlToLeft
ActiveSheet.Range("A2:L1000").Select
Selection.Copy
Windows("Verrechnete Aufarbeitungen von 01.2011 bis 12.2011.XLS").Activate
ActiveWorkbook.Sheets("Januar 2011").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub