Jump to content

Powershell ISE letzten string suchen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben (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 von Screencore
Geschrieben (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 von Screencore
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...