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!

Recommended Posts

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

Edited by Screencore
Link to comment

# 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

Edited by Screencore
Link to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...