Powershell excel
Hallo Leute,
ich habe in meinem Script leider 3 Probleme und hoffe das ihr mir helfen könnt.
würde ich in meinen Augen das schwerste Problem anfange.
Ich will gerne wie unten in dem 2ten Bild zusehen die Dateien die am aktuellsten im Ordner sind gerne oben haben und das er dann auch nur die ersten 4 Dateien nimmt. Laut einer anderen Person soll es bei ihm funktionieren mit dem Script aber bei mir leider nicht und hoffe ihr habt ne Idee an was es liegen könnte.
Excel CSV-Dateien in separate Sheets importieren
$initcount = [int]$wb.Worksheets.Count
gci $quelle -File | sort CreationTime -Descending | select -First 4 | %{
$ws = $wb.Worksheets.Add($n,$wb.Worksheets.Item($wb.Worksheets.Count),$n,$n)
$qt = $ws.QueryTables.Add("TEXT;$($_.Fullname)",$ws.Range("A1"))
$qt.Name = "Import"
$qt.FieldNames = $true
$qt.AdjustColumnWidth = $true
$qt.TextFilePlatform = 1252
$qt.TextFileStartRow = 1
$qt.TextFileParseType = 1
$qt.TextFileSemicolonDelimiter = $true
$qt.Refresh($false)
$qt.Delete()
}
Mein anderes Problem ist das ich gerne 2 Spalten sortieren möchte, zuerst Spalte N2 und dann C2, sodass er wenn die erste Spalte sortiert ist danach die 2te Spalte nimmt ohne das die erste Spalte verändert wird
$ws.Range("A2:N5100").Sort($ws.Range("N2"), $xlAscending) >$null
$ws.Range("A2:N5100").Sort($ws.Range("C2"), $xlAscending) >$null
Mein letztes Problem ist würde gerne, die Bereiche farblich machen mit 100 klappt es aber leider nicht 0 bis 49 in rot und 50 bis 99 in gelb. Ich habe es auch mit klammern probiert, aber nix klappt.
$condition = $ws.Range("N:N").FormatConditions.Add(1, 3, "100")
$condition.Interior.Color = 65280 # Grün
$condition = $ws.Range("N:N").FormatConditions.Add(1, 3, "0:49")
$condition.Interior.Color = 255 # Rot
$condition = $ws.Range("N:N").FormatConditions.Add(1, 3, "50:99")
$condition.Interior.Color = 65535 #Gelb
Danke schon mal für die Zeit und hoffe ihr könnt mir helfen und versteht meine Probleme und es soll leider alles in Powershell sein.
ich habe in meinem Script leider 3 Probleme und hoffe das ihr mir helfen könnt.
würde ich in meinen Augen das schwerste Problem anfange.
Ich will gerne wie unten in dem 2ten Bild zusehen die Dateien die am aktuellsten im Ordner sind gerne oben haben und das er dann auch nur die ersten 4 Dateien nimmt. Laut einer anderen Person soll es bei ihm funktionieren mit dem Script aber bei mir leider nicht und hoffe ihr habt ne Idee an was es liegen könnte.
Excel CSV-Dateien in separate Sheets importieren
- Quelldateien
- Zieldatei
- Excel Objekt
- platzhalter für leere Parameter
- Neue Mappe öffnen
- Excel anzeigen
- Meldungen abschalten
- Ale CSV-Dateien des Ordners in ein neues Sheet importieren
$initcount = [int]$wb.Worksheets.Count
gci $quelle -File | sort CreationTime -Descending | select -First 4 | %{
$ws = $wb.Worksheets.Add($n,$wb.Worksheets.Item($wb.Worksheets.Count),$n,$n)
$qt = $ws.QueryTables.Add("TEXT;$($_.Fullname)",$ws.Range("A1"))
$qt.Name = "Import"
$qt.FieldNames = $true
$qt.AdjustColumnWidth = $true
$qt.TextFilePlatform = 1252
$qt.TextFileStartRow = 1
$qt.TextFileParseType = 1
$qt.TextFileSemicolonDelimiter = $true
$qt.Refresh($false)
$qt.Delete()
}
Mein anderes Problem ist das ich gerne 2 Spalten sortieren möchte, zuerst Spalte N2 und dann C2, sodass er wenn die erste Spalte sortiert ist danach die 2te Spalte nimmt ohne das die erste Spalte verändert wird
$ws.Range("A2:N5100").Sort($ws.Range("N2"), $xlAscending) >$null
$ws.Range("A2:N5100").Sort($ws.Range("C2"), $xlAscending) >$null
Mein letztes Problem ist würde gerne, die Bereiche farblich machen mit 100 klappt es aber leider nicht 0 bis 49 in rot und 50 bis 99 in gelb. Ich habe es auch mit klammern probiert, aber nix klappt.
$condition = $ws.Range("N:N").FormatConditions.Add(1, 3, "100")
$condition.Interior.Color = 65280 # Grün
$condition = $ws.Range("N:N").FormatConditions.Add(1, 3, "0:49")
$condition.Interior.Color = 255 # Rot
$condition = $ws.Range("N:N").FormatConditions.Add(1, 3, "50:99")
$condition.Interior.Color = 65535 #Gelb
Danke schon mal für die Zeit und hoffe ihr könnt mir helfen und versteht meine Probleme und es soll leider alles in Powershell sein.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 315320
Url: https://administrator.de/contentid/315320
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
6 Kommentare
Neuester Kommentar
gci $quelle -File
-File parameter only works PS 3.0 and above.mit dem Script aber bei mir leider nicht
Error message?Mein anderes Problem ist das ich gerne 2 Spalten sortieren möchte, zuerst Spalte N2 und dann C2, sodass er wenn die erste Spalte sortiert ist danach die 2te Spalte nimmt ohne das die erste Spalte verändert wird
Mein letztes Problem ist würde gerne, die Bereiche farblich machen mit 100 klappt es aber leider nicht 0 bis 49 in rot und 50 bis 99 in gelb. Ich habe es auch mit klammern probiert, aber nix klappt.
Open Excel, start macro recording press ALT+F11 and you will see the code you only have to modify a bit to work in powershell Mein letztes Problem ist würde gerne, die Bereiche farblich machen mit 100 klappt es aber leider nicht 0 bis 49 in rot und 50 bis 99 in gelb. Ich habe es auch mit klammern probiert, aber nix klappt.
NOOO, i said this will help you how to transfer it to powershell code !!!! You don't want to learn anything ??
No Problem, use
this is the same working under PS 2.0
Leider habe ich nur PS 1.0 kann man da was machen oder einstellen das es Funktioniert.
you dont have PS 1.0 you have 2.0!No Problem, use
gci $quelle | ?{!$_.PSIsContainer} | sort CreationTime -Descending | select -First 4
mein Chef will es in Powershell haben.
And why should we do your work ?? Oh lord ...
Sortieren:
FormatCondition:
$ws.Sort.SortFields.Clear()
$ws.Sort.SortFields.Add($ws.Range("A2:A5100"),0,1,$n,0)
$ws.Sort.SortFields.Add($ws.Range("C2:C5100"),0,1,$n,0)
$ws.Sort.SetRange($ws.Range("A1:N5100"))
$ws.Sort.Header = 1
$ws.Sort.Apply()
FormatCondition:
$condition = $ws.Range("N:N").FormatConditions.Add(1,3,100)
$condition.Interior.Color = 65280
$condition = $ws.Range("N:N").FormatConditions.Add(1,7,50)
$condition.Interior.Color = 65535
$condition = $ws.Range("N:N").FormatConditions.Add(1,6,50)
$condition.Interior.Color = 255