Screencore 0 Geschrieben 19. September 2016 Melden Teilen Geschrieben 19. September 2016 (bearbeitet) Hallo Helfer/innen, Ich brauche ein Script in Powershell. Das soll es können; Excel Tabelle: Name Gruppe Franz G1 Fabian G2 Lukas G1 Richard G2 Rafael G3 Script: # Excel File Open $File = "C:\Users\fagr\Desktop\Teamliste.xlsx" $ExcelInput = New-Object -ComObject Excel.Application $ExcelInput.visible = $true $Workbook = $ExcelInput.workbooks.open($file) $Worksheets = $Workbooks.worksheets $Worksheet = $Workbook.Worksheets.Item(1) $SheetInput = $WorkBook.ActiveSheet $CellsInput=$SheetInput.Cells dann brauche ich eine Eingabe die soll so aussehene: Gruppe: wenn ich jetzt bei Gruppe: G1 eingebe soll Franz, Lukas ausgegeben werden. Kann das wer? Wär mega :D bearbeitet 19. September 2016 von Screencore Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 19. September 2016 Melden Teilen Geschrieben 19. September 2016 Wie weit bist Du denn schon mit deinem Script? Zeig doch mal was Du schon hast. Oder war das schon alles? Zitieren Link zu diesem Kommentar
Screencore 0 Geschrieben 19. September 2016 Autor Melden Teilen Geschrieben 19. September 2016 (bearbeitet) # Excel File Open $File = "C:\Users\fagr\Desktop\Teamliste.xlsx" $ExcelInput = New-Object -ComObject Excel.Application $ExcelInput.visible = $true $Workbook = $ExcelInput.workbooks.open($file) $Worksheets = $Workbooks.worksheets $Worksheet = $Workbook.Worksheets.Item(1) $SheetInput = $WorkBook.ActiveSheet $CellsInput=$SheetInput.Cells #Range $RangeG2 = $SheetInput.Range("B1:B100") #User input $eingabe = Read-Host "Gruppe" #Search free row $lastrow = $RangeG2.find($SearchString).row #Find the last Team for($i = $lastrow; $i -gt 1; $i--){ $RangeGruppe2 = $SheetInput.Range("B100:B"+$i) $findlastGroup = $RangeGruppe2.find($eingabe).row } for($j = 1; $j -le $findlastGroup; $j++){ $RangeGruppe = $SheetInput.Range("B"+$j+":B100") $findrow = $RangeGruppe.find($eingabe).row $NextRowCopy = $CellsInput.Item($findrow, 1).value2 Write-Host "In $eingabe sind die Mitglieder: $NextRowCopy" $j=$findrow $j += 1 } #Excel File Close $ExcelInput.Application.DisplayAlerts = $False $Workbook.SaveAs($File) $ExcelInput.Application.DisplayAlerts = $True $ExcelInput.Quit() $ExcelInputProcesses = Get-Process Excel $ExcelInputProcesses | ForEach {Stop-Process ($_.Id)} das ist das script, jedoch geht es wenn ich G1 eingebe :D alles perfekt JEDOCH wenn ich dann G2 eingebe gibt er mir nur 1nen user an nicht den zweiten.. :( danke habe schon eine lösung :D bearbeitet 19. September 2016 von Screencore Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.