Jump to content

Excel Script Powershell


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

Recommended Posts

Moin leute ich hoffe das ihr mir helfen könnt.

 

Ich habe 2 Fragen eine geht um Spalten Sortierung und die andere Frage ist den Mappennamen unten links ändern.

 

Ich habe mal Fotos an anhang wie ich es gerne mal haben möchte und hoffe das ihr mir helfen könnt.

Achja fall es entscheiden ist in Spalte B1 ist die Überschrift Prozent habe ich vergessen.

 

 

$condition = $ws.Range("B:B").FormatConditions.Add(1, 3, "100")
$condition.Interior.Color = 65280 # Grün
$condition = $ws.Range("B:B").FormatConditions.Add(1, 3, "[0-50]")
$condition.Interior.Color = 255 # Rot                                      

 für hell orange suche ich noch den Farbcode                               
 

 

 

Danke für eure zeit und Ideen.

 

 

post-72187-0-30106800-1473317822.png

post-72187-0-35168600-1473317832.png

post-72187-0-23061300-1473317842_thumb.png

post-72187-0-64512900-1473317848_thumb.png

Link to comment

Thx klappt super

 

kann man es auch nehmen wenn nach Alphabet sortiert oder ist das rein für Zahlen?

Was glaubst Du? Probier es aus und Du wirst es wissen. Geht schneller als hier auf Antwort warten.

 

Zusätzlicher Hinweis: Einfach in Excel den Makrorecorder starten, Aktionen aufzeichnen und über den Entwicklermodus das soeben erstellte Makro anschauen, hilft ungemein. :)

 

 

habe es mit dem Orange mal getestet und leider kommt dunkel Blau raus und auf vielen Seiten steht auch die gleiche Nr.

 

65535 'Gelb oder 26367.

Link to comment

Hab mal mein script reingestellt vielleicht findet ihr ja den Fehler, weil ich finde nix oder bin blind.

Mein fehler ist das er nicht die beiden Spalten sortiert zuerst die erste nach Zahlen aufsteigend und im Anschluss die 2te Spalte nach dem Alphabet wenn die gleichen Zahlen vorher waren.

 

 

 

# Quelldateien
$quelle = 'D:\Excel\*.csv'

# Zieldatei
$ziel = "D:\Excel\.xlsx"

# Excel Objekt
$objExcel = New-Object -Com Excel.Application

# platzhalter für leere Parameter
$n = [system.Reflection.Missing]::Value

# Neue Mappe öffnen
$wb = $objExcel.Workbooks.Add()

# Excel anzeigen
$objExcel.Visible = $true

# Meldungen abschalten
$objExcel.DisplayAlerts = $false


# Ale CSV-Dateien des Ordners in ein neues Sheet importieren
#initiale Anzahl an sheets speichern
$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()
}


# Excel anzeigen
$ws = $wb.Sheets.Item(4)

# Autofilter
$ws.Range("A:Z").Autofilter(6,"=SRV")
$ws.Range("A:Z").Autofilter(3,"=Abteilung") #CHECK


# Format Conditions hinzufügen
$condition = $ws.Range("P:P").FormatConditions.Add(1, 3, "100")
$condition.Interior.Color = 65280 # Grün
$condition = $ws.Range("P:P").FormatConditions.Add(1, 3, "0-49")
$condition.Interior.Color = 255 # Rot #CHECK
$condition = $ws.Range("P:P").FormatConditions.Add(1, 3, "50-99")
$condition.Interior.Color = 65535 # Gelb


#Spalten Sortieren von kleinsten zum höchsten
Range("A2:N4266").Sort Range("N2"), xlAscending, , , , , , xlNo
Range("A2:N4266").Sort Range("A2"), xlAscending, , , , , , xlNo


#Name Mappe ändern
$ws.Name = "S11"

Link to comment

Ja, das meinte ich. Wird denn auch eine Änderung gespeichert? Sieht man am neueren Datum.

 

Tipp für das Debuggen. Mit der ISE kannst Du mit Hilfe von F11 Zeile für Zeile Code ausführen lassen. In der zweiten Zeile mit F9 einen Haltepunkt setzen, mit F5 bis dorthin, jetzt mit F11 Zeile für Zeile durchlaufen. Gleichzeitig Excel sichtbar schalten und immer schön prüfen was wann passiert.

Link to comment

Das Script ist über ISE geschrieben.

Bei mir ist F5 aufführen und F8 Auswahl ausführen.

 

Wie würdest du den mein Script schreiben oder ändern

 

Und hatte nochmal geschaut zum Sortieren musste ich es etwas umbauen, weil der Link den mir gegeben hast leider nur für Makros ist

 

$ws.Range("A2:N5100").Sort($ws.Range("N2"), $xlAscending)

Edited by Neuling69
Link to comment

Das Script ist über ISE geschrieben.

Bei mir ist F5 aufführen und F8 Auswahl ausführen.

 

Wie würdest du den mein Script schreiben oder ändern

Wenn das eine Frage sein soll, dann fehlt das passende Satzendezeichen. In diesem deinen Fall ein ?-Zeichen.

Ich würde das in VB.Net oder VBA schreiben.

 

Hast Du denn das Script Zeilenweise manuell durchlaufen lassen? Wenn Du natürlich Fehlermeldungen deaktivierst, ist das nicht besonders hilfreich. Du kopierst dir Code von irgendwo in dein Script ohne ihn zu verstehen, so kommt mir das vor.

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...