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

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
Link zu diesem Kommentar

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...