Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

HILFE: Makro aus Powershell starten

$
0
0

Ich brauche Hilfe bei einem Makro mit Start aus Powershell oder bei der Übersetzung eines Makros nach powershell.


1)
Das Makro ist in einem XLSM-File gespeichert, als:  "mappe1.xlsm"

Dieses Makro soll verschiedene Excel-Dokumente öffnen und editieren, welche in einem Ordner gespeichert sind. Alle Exceldokumente sind dieselben, nur der Name des Excelfile ist anders. 

Die Aufgabe soll sein, dass powershell das Makro (mapp1.xlsm) startet, dann auf dem jeweiligen Exceldokument ausführt, das Dokument wieder schließt und anschließend wird das nächste bearbeitet. 

Das jeweilige Dokument wird anschließend von powershell selbst als PDF exportiert und in einem anderen Ordner gesichert. 

Mein aktuelles Script sieht so aus, funktioniert auch, nur schaffe ich es nicht das Makro zu integrieren.


$labelPDFVerzeichnis.Text= $pfad_allgemein_pdf[System.Windows.Forms.MessageBox]::Show("Die PDF-Dokumente werden im validierten Umfeld abgelegt.","Hinweis:",0)# PDF
	$path = $folder.Self.Path
	$xlFixedFormat ="Microsoft.Office.Interop.Excel.xlFixedFormatType"-as[type]
	$excelFiles =Get-ChildItem-Path $path -include *.xls,*.xlsx -Recurse
	$objExcel =New-Object-ComObject excel.application
	$objExcel.visible = $falseforeach($wb in $excelFiles){foreach($worksheet in $wb.Worksheets){
			$worksheet.PageSetup.Orientation= xlLandscape
			$Header = $Worksheet.cells.item(3, $column).text}
		$wb.Worksheets.PageSetup.Zoom=60
		$filepath =Join-Path-Path $pfad_allgemein_pdf -ChildPath($wb.BaseName+".pdf")
		$workbook = $objExcel.workbooks.open($wb.fullname,3)
		$workbook.Saved= $true"saving $filepath"
		$workbook.ExportAsFixedFormat($xlFixedFormat::xlTypePDF, $filepath)
		$objExcel.Workbooks.close()}[System.Runtime.Interopservices.Marshal]::ReleaseComObject($objExcel)#Ende

Hier ist der Code den ich im Internet gefunden habe und in das obige Script integriert werden soll.

# macro
	$excel =new-object-comobject excel.application
	$excelFiles =Get-ChildItem-Path $folder.Self.Path-Include*.xlsx,*.xlsm -Recurse
	$macrobook = $excel.workbooks.open("E:\Temp\mappe1.xlsm")Foreach($file in $excelFiles){
		$workbook = $excel.workbooks.open($file.fullname)
		$worksheet = $workbook.worksheets.item(1)
		$excel.Application.Run("mappe1.xlsm"("Modul1"))
		$workbook.save()
		$workbook.close()}
	$macrobook.close()
	$excel.quit()

So, wie kann ich beides kombinieren, dass powershell jeweils ein Dokument aus dem Ordner öffnet, formatiert (durch das Makro), schließt und anschließend powershell das Exceldokument nach PDF exportiert, dann das nächste... 

2) Oder gibt es eine Möglichkeit ein Makro nach powershell zu exportieren, dass auch die Exceldokument-Formatierung komplett über powershell läuft ?. 

Hierbei werden jeweils nur Zellen und Zeilen auf automatischen Abstand gesetzt, die Schriftart auf Größe 8 geändert, dazu wird noch eine Kopf-und Fußzeile hinzugefügt.

Danke für jede Hilfe. 


Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>