Screencore
-
Gesamte Inhalte
4 -
Registriert seit
-
Letzter Besuch
Beiträge erstellt von Screencore
-
-
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
-
Danke an ALLE, habe es jetzt auf eine andere art umgeschrieben:
$File = "C:\Users\fagr\Desktop\test2.xlsx"
$Excel = New-Object -ComObject Excel.Application
$Excel.visible = $true
$Workbook = $Excel.workbooks.open($file)
$Worksheets = $Workbooks.worksheets
$Worksheet = $Workbook.Worksheets.Item(1)
$SearchString = Read-Host "Suchwort: "
$Range = $Worksheet.Range("B1:B100")
if ($Search = $Range.find($SearchString)){
Write-Host "Gefunden in Zeile" $Search.address($false,$false) "."
}else {
Write-Host "Nicht Gefunden"
}
$ausgabea = "A"+$Range.find($SearchString).row
$ausgabea
Nur jetzt muss ich das erweitern und zwar so:
so soll es aussehen:
Nr. Name:
100 Franz
101 Müller
102
103 Exenbauer
104
Und zwar zeigt er mir an wenn ich Franz suche: Gefunden in Zeile B2 ich hab das jetz mit dem code so gemacht der er mir B4 und A4 ausgibt:
$ausgabea = "A"+$Range.find($SearchString).row
$ausgabea
jetzt soll aber A4 ausgegen werden also 100 statt A4. wie?
-
Hallo :3
Ich bin gerade dabei ein script zu schreiben das in einer excel datei ein wort sucht... doch es klappt nicht
$excel = new-object -comobject excel.application
$excel.visible = $true
$filepath="C:\Users\fagr\Desktop\test.xlsx"
$workbook=$excel.Workbooks.open($filepath)
$worksheet = $workbook.Worksheets.Item(1)
$rowcount = $worksheet.usedRange.Count
$i = 2
while ($worksheet.Cells.Item($i, $c).Text -ne "" ) {
$eingabe = Read-Host "Suchwort: "
$Range = $worksheet.Cells.Item($i, 2)
if($Range.find('$eingabe'))
{
Write-Host "Gefunden"
}else {
Write-Host "Nicht gefunden"
exit
}
}
das ist daweil mein script er gibt immmer "Nicht gefunden" aus....
Kann mir wer helfen?
Powershell ISE letzten string suchen
in Windows Forum — Scripting
Geschrieben · bearbeitet von Screencore
# 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