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!

Empfohlene Beiträge

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

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

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

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

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)

bearbeitet von Neuling69
Link zu diesem Kommentar

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