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

Aktualisieren von mehreren Excel-Arbeitsblätter in eine einzigen Excel-Datei mit den entsprechenden CSV-Dateien

$
0
0

Hallo

 

ich habe einen Excel-File mit verschiedenen Arbeitsblätter, deren Inhalt mit einem einzigen Makro regelmäßig aktualisiert wird.

Der Benutzer muss nacheinander jedes Arbeitsblatt anklicken und das Makro auszuführen. Das Makro fragt bei jedem Arbeitsblatt nach der entsprechenden CSV-Datei, das manuell ausgewählt werden muss. Die Auswahl der CSV-Datei muss

 bei jedem Arbeitsblatt bestätigt werden.

 

Ich will folgendes machen:

- den Namen der Arbeitsblätter aus einem csv-file auslesen

- Arbeitsblatt mit dem Namen "Firma1" aktivieren bzw. auswählen -> Macro starten -> Makro fragt nach Datei mit dem Namen "Firma1.csv" -> Macro meldet anschließend Arbeitsblatt mit dem Namen "Firma1" wurde aktualisiert.

- Arbeitsblatt mit dem Namen "Firma2" aktivieren bzw. auswählen -> Macro starten -> Makro fragt nach Datei mit dem Namen "Firma2.csv" -> Macro meldet anschließend Arbeitsblatt mit dem Namen "Firma2" wurde aktualisiert.

- Arbeitsblatt mit dem Namen "Firma3" aktivieren bzw. auswählen -> Macro starten -> Makro fragt nach Datei mit dem Namen "Firma3.csv" -> Macro meldet anschließend Arbeitsblatt mit dem Namen "Firma3" wurde aktualisiert.. Etc ...

 

## Abfrage welche Datei ausgewählt wird

## ideal wäre Wenn

# worksheetname company1 = buchhaltung-company1.csv

# worksheetname company2 = buchhaltung-company2.csv

# worksheetname company3 = buchhaltung-company3.csv

 

# dann Makro ausführen

Wäre toll wenn ich hier Unterstützung bekäme ;-)

Danke

Mein Skript-Entwurf

   # Open Excel file

   $excel = new-object -comobject excel.application

   $filePath = "u:\Test_CompanyAccouting.xlsm"

   $workbook = $excel.Workbooks.Open($FilePath)

   $excel.Visible = $true

   # Get Names of existing Worksheets

 

   $worksheets = Get-ChildItem -Path u:\List_WorksheetsNames.csv | ForEach-Object {$_.name}

   forEach ($Worksheet in $Worksheets)

{

   $WS = $Workbook.Worksheets.Item($Worksheet)

   $WS.Activate()

   $excel.Run("MacroAccounting")

}

   $workbook.save()

   $workbook.close()

   $excel.quit()

   Write-Host "Closed Excel"


Viewing all articles
Browse latest Browse all 2314


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