VBA -Makros




Alle Fragen rund um IT-Anwendungen. SAP, INFOR, Cubes, Makros, Excel, Access, Word, Power Point usw.

VBA -Makros

Beitragvon flohpichl » Mi 3. Jun 2015, 12:08

Fragen zur VBA-Programmierung
Beispiele in Form von VBA-Codes sind willkommen!
flohpichl
Administrator
 
Beiträge: 10
Registriert: Do 21. Mai 2015, 11:56

von Anzeige » Mi 3. Jun 2015, 12:08

Anzeige
 

Re: VBA -Makros

Beitragvon Lydia » Mo 15. Jun 2015, 09:55

Hallo zusammen :-),

ich hätte da schon ein Thema: ich ziehe eine Liste aus dem SAP zu diversen Kostenstellen. Diese Daten kommen in eine Übersichtsdatei für mich, damit ich alle Kostenstellen im Blick habe. An die Bereiche soll aber nur jeweils ihre Kostenstelle geschickt werden. Um aus der Übersichtsdatei ("773090,773095_Plan-Ist 2015.xlsm") die Daten in Einzelberichte (z.B. "250001_Quartalsbericht KT200090.xlsx") zu bekommen habe ich das unten stehenden Makro aufgezeichnet.
Dabei wiederholt sich die Programmierung natürlich pro Kostenstelle (in einigen Berichten werden auch mehrere Kostenstellen dargestellt) und je Quartal, da es pro Quartal eine Auswertung geben soll. Leider bricht das Programm nach ein paar Kostenstellen ab und ist bis dahin auch ziemlich langsam. Kann mir da jemand helfen?

Danke schon mal im voraus
Viele Grüße
Lydia

Sub Einzel()
'
' in Übersichtsdatei Q1-Daten auf 250001 filtern und dann in Einzelbericht 250001 in Details Q1 kopieren
'

'
Windows("773090,773095_Plan-Ist 2015.xlsm").Activate
Sheets("Q1").Select
ActiveSheet.Range("$A$1:$S$99999").AutoFilter Field:=1, Criteria1:="250001"

Columns("A:S").Select
Selection.Copy
Windows("250001_Quartalsbericht KT200090.xlsx").Activate
Sheets("Details Q1").Select
Columns("A:A").Select
ActiveSheet.Paste

Windows("773090,773095_Plan-Ist 2015.xlsm").Activate
Sheets("Q2").Select
ActiveSheet.Range("$A$1:$S$99999").AutoFilter Field:=1, Criteria1:="250001"
Columns("A:S").Select
Selection.Copy
Windows("250001_Quartalsbericht KT200090.xlsx").Activate
Sheets("Details Q2").Select
Columns("A:A").Select
ActiveSheet.Paste[/color][/color]


' in Übersichtsdatei Q1-Daten auf 453010 und 454010 filtern und dann in Einzelbericht in Details Q1 kopieren

Windows("773090,773095_Plan-Ist 2015.xlsm").Activate
ActiveSheet.Range("$A$1:$S$99999").AutoFilter Field:=1, Criteria1:="=453010", _
Operator:=xlOr, Criteria2:="=454010"
Columns("A:S").Select
Selection.Copy
Windows("453010+454010_Quartalsbericht KT200090.xlsx").Activate
Sheets("Details Q1").Select
Columns("A:A").Select
ActiveSheet.Paste

' in Übersichtsdatei Q1-Daten auf 401000 filtern und dann in Einzelbericht 401000 in Details Q1 kopieren

Windows("773090,773095_Plan-Ist 2015.xlsm").Activate
ActiveSheet.Range("$A$1:$S$99999").AutoFilter Field:=1, Criteria1:="401000"
Columns("A:S").Select
Selection.Copy
Windows("401000_Quartalsbericht KT200090.xlsx").Activate
Sheets("Details Q1").Select
Columns("A:A").Select
ActiveSheet.Paste

...

End Sub
Lydia
 

Re: VBA -Makros

Beitragvon martin.mueller » Mo 15. Jun 2015, 14:47

Hallo Lydia,

versuch mal folgendes:

1. Nicht ganze Spalten kopieren , sonder Bereiche. Das sollte die Filterung nicht stören und du kopierst nicht 1 Mio. Zeilen. Also wo immer du kannst ("A:A") --> ("A1:A5000") oder ähnlich.

Code: Alles auswählen
Columns("A1:S25000").Select
Selection.Copy


2. Dann kannst du vorne weg in Code folgendes einfügen.

Code: Alles auswählen
Application.ScreenUpdating = False
Application.Calculation = xlManual


3. Und am Ende wieder an machen

Code: Alles auswählen
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic


Das sind so die ersten Ideen die ich dazu habe.

Viele Grüße

Martin
martin.mueller
 
Beiträge: 7
Registriert: Di 2. Jun 2015, 11:35


TAGS

Zurück zu IT Systeme

Wer ist online?

0 Mitglieder

cron