Technical support and scripting issues
Moderators: Dorian (MJT support), JRL
-
fakerr
- Newbie
- Posts: 3
- Joined: Tue Aug 17, 2010 12:09 pm
Post
by fakerr » Tue Aug 17, 2010 12:14 pm
Hi guys,
first, sorry for my bad english. I have some question for my Script. I have to modify a Macro but i dont know how to do that.
Code: Select all
VBSTART
Sub AB_Liste_Pivot
Dim xlApp, xlBook, Sourcebook, AB_Book, pf, RowVon, RowBis, Gebiet, Worksheet
Dim xlQuelle, xlDaten, KW, Jahr, FSO, folder
Jahr = DatePart("yyyy",Date,2,2) '** das aktuelle Jahr ermitteln
KW = DatePart("ww",Date,2,2) '** die aktuelle Kalenderwoche ermitteln
Set xlApp = CreateObject("Excel.Application") '** Excel als Anwendung deklarieren
xlApp.visible = true
Set FSO = CreateObject("Scripting.FileSystemObject") '** FileSystemObject deklarieren
Set folder = FSO.CreateFolder("C:\AB-Listen-Projekt\AB-Listen\" & "KW " & KW & "." & Jahr)
strPathVorlage = "C:\AB-Listen-Projekt\AB-Liste-Vorlage.xls" '** Pfad zur AB-Vorlage Datei
strPathQuelle = "C:\AB-Listen-Projekt\AUFB02" '** Pfad zur oxaion Quelldatei
Set AB_Book = xlApp.Workbooks.open(strPathVorlage) '** Vorlage öffnen
Set SourceBook = xlApp.Workbooks.open(strPathQuelle)
Set xlQuelle = SourceBook.Worksheets(1)
RowVon=2
Gebiet = xlQuelle.Cells(RowVon, 11)
xlQuelle.columns("T:U").numberformat="#,##0.00"
xlQuelle.columns("K:K").numberformat="000"
xlQuelle.Range("D:D").Replace " ", ""
xlQuelle.Range("X:X").Replace " ", ""
Set r = xlQuelle.UsedRange 'stellt die Anzahl der benutzten Zeilen fest
xlApp.ScreenUpdating = False
For Row = 2 To r.Rows.Count + 1 '--- loopt durch die gesamte Tabelle
If xlQuelle.Cells(Row, 11) <> Gebiet Then
RowBis = Row - 1
Von = "A" & RowVon
Bis = "X" & RowBis
Set AB_Book = xlApp.Workbooks.open(strPathVorlage) 'Vorlage öffnen
xlApp.ActiveWorkbook.SaveAs(folder & "\AB-Liste - Gebiet " & Gebiet & ".xls")
Set xlGebiet = xlApp.Workbooks("AB-Liste - Gebiet " & Gebiet & ".xls")
xlQuelle.Activate
xlQuelle.Range("A" & RowVon, "Y" & RowBis).Copy
xlGebiet.Activate
Set xlDaten = xlGebiet.Worksheets("Daten")
xlDaten.Activate
xlDaten.Range("A2").Select
xlDaten.Paste
Set xlPivot = xlGebiet.Worksheets("ABs nach Kunde")
xlPivot.Activate
xlPivot.Range("B4").Select
xlPivot.PivotTables("PivotTable1").pivotCache.Refresh
xlPivot.PivotTables("PivotTable1").PivotFields("Kundenname").CurrentPage = "(Alle)"
xlPivot.PivotTables("PivotTable1").PivotFields("Kundenname").PivotItems("(Leer)").Visible = False
'xlPivot.ShowPivotTableFieldList = False
xlGebiet.Close True
xlQuelle.Activate
Gebiet = xlQuelle.Cells(Row, 11)
RowVon = RowBis + 1
If xlQuelle.Cells(RowVon, 11) = "" Then Exit For
End If
Next
xlApp.ScreenUpdating = True
SourceBook.Close False
xlApp.quit
Set xlApp = Nothing
End Sub
VBEND
Thats the Script. It makes Round about 20 Files from 1 File. Now i have to modify it. The Script have to Upload the Files automaticly to our Sharepoint.
Someone know how to modify it? Pls help me! If you want to have more Informations just ask!
Best regards!
-
adroege
- Automation Wizard
- Posts: 438
- Joined: Tue Dec 07, 2004 7:39 pm
Post
by adroege » Tue Aug 17, 2010 1:32 pm
The Script have to Upload the Files automaticly to our Sharepoint.
If I understand you correctly, then it seems you just have to FTP the files to your sharepoint server?
Check out the FTP commands..... ie. FTPPutFile, etc.
-
fakerr
- Newbie
- Posts: 3
- Joined: Tue Aug 17, 2010 12:09 pm
Post
by fakerr » Wed Aug 18, 2010 6:08 am
Ok sorry i forgot to write that its such more.
I have to Upload the "Gebiete 1-20" to our Sharepoint. There are folders like "Gebiet 1" "Gebiet 2" ...
Here is my try:
Code: Select all
Sub AB_Liste_Pivot
Dim xlApp, xlBook, Sourcebook, AB_Book, pf, RowVon, RowBis, Gebiet, Worksheet
Dim xlQuelle, xlDaten, KW, Jahr, FSO, folder
Jahr = DatePart("yyyy",Date,2,2) '** das aktuelle Jahr ermitteln
KW = DatePart("ww",Date,2,2) '** die aktuelle Kalenderwoche ermitteln
Set xlApp = CreateObject("Excel.Application") '** Excel als Anwendung deklarieren
xlApp.visible = true
Set FSO = CreateObject("Scripting.FileSystemObject") '** FileSystemObject deklarieren
Set folder01 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G01\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder02 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G02\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder03 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G03\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder04 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G04\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder05 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G05\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder06 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G06\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder07 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G07\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder09 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G09\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder13 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G13\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder14 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G14\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder16 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G16\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder18 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G18\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder19 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G19\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
Set folder20 = FSO.CreateFolder("\\laborintranet\vertrieb\ProduktKundeGebiet\Gebiete\G20\Auswertungen\AB-Listen\2010\" & "KW " & KW & "." & Jahr)
strPathVorlage = "C:\AB-Listen-Projekt\AB-Liste-Vorlage.xls" '** Pfad zur AB-Vorlage Datei
strPathQuelle = "C:\AB-Listen-Projekt\AUFB02" '** Pfad zur oxaion Quelldatei
Set AB_Book = xlApp.Workbooks.open(strPathVorlage) '** Vorlage öffnen
Set SourceBook = xlApp.Workbooks.open(strPathQuelle)
Set xlQuelle = SourceBook.Worksheets(1)
RowVon=2
Gebiet = xlQuelle.Cells(RowVon, 11)
xlQuelle.columns("T:U").numberformat="#,##0.00"
xlQuelle.columns("K:K").numberformat="000"
xlQuelle.Range("D:D").Replace " ", ""
xlQuelle.Range("X:X").Replace " ", ""
Set r = xlQuelle.UsedRange 'stellt die Anzahl der benutzten Zeilen fest
xlApp.ScreenUpdating = False
For Row = 2 To r.Rows.Count + 1 '--- loopt durch die gesamte Tabelle
If xlQuelle.Cells(Row, 11) <Gebiet>AB_Liste_Pivot
But my next Problem is: When there isnt one "Gebiet" for example "Gebiet 3" is missing or there is a "Gebiet" that i havent declared, i get an error and the Program stop.
If there is any other Way, pls reply me.
Thank you!
-
adroege
- Automation Wizard
- Posts: 438
- Joined: Tue Dec 07, 2004 7:39 pm
Post
by adroege » Wed Aug 18, 2010 11:07 am
i get an error and the Program stop.
The following "on error resume next" statement will make the program keep going.
Code: Select all
Sub AB_Liste_Pivot
On Error Resume Next
' the rest of your code continues here