crank69
Goto Top

Exceltabelle mit Script nach Inhalt suchen

Schönen guten Tag,

ich hoffe das ihr mir helfen könnt, weil ich nicht so wirklich weiß wie ich anfangen soll mit dem Script.
Ich wollte den Script über Powershell schreiben und in einer Excel umgesetzt werden, weil man da die beste Übersicht hat.
Ich weiß auch nicht ob es überhaupt möglich ist es umzusetzen was ich mir vorstelle.

Habe mal zwei Bilder gemacht wie ich es mir vorstelle

So sieht es aus wenn ich es auf mache:

anfang

So soll es aussehen wenn es fertig ist also wenn es möglich ist.
Es würde mich schon helfen wenn ich sie mir nur noch das Land Deutschland anzeigen mit der Farbe wäre nur es Perfekt bei dem Geschlecht.

ende



danke schon mal für eure Ideen oder Vorschläge

Content-Key: 311835

Url: https://administrator.de/contentid/311835

Printed on: April 25, 2024 at 05:04 o'clock

Member: BirdyB
BirdyB Aug 05, 2016 at 08:37:31 (UTC)
Goto Top
Aloah,

Das mit der Farbe machst du in Excel am Besten über die bedingte Formatierung. Die Filterung nach Ländern kannst du einfach über die Datenfunktionen von Excel vornehmen. Wozu also das Skript?

Beste Grüße!


Berthold
Member: colinardo
colinardo Aug 05, 2016 updated at 08:45:18 (UTC)
Goto Top
Hallo @crank68,
warum stellst du deine "Fragen" immer als "Tipps" ein? Tipps sind bei uns Wissensbeiträge/Informationen für andere Teilnehmer und nicht als Tipps von unsererseits zu verstehen face-wink.

Wenn es Powershell sein soll erreichst du das gewünschte folgendermaßen:
# Quelldatei
$quelle = 'C:\demosheet.xlsx'  

# Excel Objekt
$objExcel = New-Object -Com Excel.Application
# Mappe öffnen
$wb = $objExcel.Workbooks.Open($quelle)
# Excel anzeigen
$objExcel.Visible = $true
$ws = $wb.Sheets.Item(1)
# Autofilter
$ws.Range("B:E").Autofilter(3,"=Deutschland")  
# Format Conditions hinzufügen
$condition = $ws.Range("E:E").FormatConditions.Add(1, 3, "M")  
$condition.Interior.Color = 65280 # Grün
$condition = $ws.Range("E:E").FormatConditions.Add(1, 3, "W")  
$condition.Interior.Color = 255 # Rot
Grüße Uwe
Member: Crank69
Crank69 Aug 05, 2016 at 08:58:58 (UTC)
Goto Top
ok danke für die hilfe
werde es nächstes mal richtig einstellen

grüße

Crank
Member: Biber
Biber Aug 05, 2016 updated at 09:26:11 (UTC)
Goto Top
Moin Crank69,

ich möchte colinardos Antwort nicht unkommentiert gelten lassen als mögliche "Lösung" in einem Forum für Hilfesuchende.

Eine "Bedingte Formatierung" und einen Autofilter über Skript und/oder PowerShell abzufackeln macht vielleicht Sinn in konstruierbaren Beispielszenarien.

Aber für dein Problem bietet Skripten nun wirklich keinerlei Vorteile, siehe auch BirdyBs Kommentar.

@colinardo:
Ich habe zwar bei deiner Einleitung "Wenn es Powershell sein soll dann...folgendermaßen" deine rollenden Augen förmlich gesehen.

Dennoch: bitte sage es den Frischlingen doch deutlich:
Es macht keinen Sinn, ein Auspuffrohr innen rosa-hellgrün kariert zu lackieren.
Auch wenn es rein technisch machbar ist.

Grüße
Biber
[Edit] Ach ja, die beiden "Tipps" von gestern und heute sind jetzt wieder "Fragen".
Apropos "Frage": Gibt es zu diesem bedauernswerte Pariser Mädel, das von seinen Eltern auf den total erotisierenden Namen "Dirk" getauft wurde, noch weitere biografischen Hintergrundberichte?
Diese Stories lassen sich total gut in gewissen Frisör-Zeitschriften verkaufen - so etwas berührt die Menschen... face-smile
Member: Crank69
Crank69 Aug 05, 2016 at 09:25:23 (UTC)
Goto Top
Für mich macht das Script viel sinn und hilft mir sehr, weil ich jeden tag neue Daten kriege und es mehr Informationen sind als die ich hochgeladen habe.
Es war ja nur ein Bsp. und muss es nur noch umschreiben und bei 3000 Daten ist es hilfreich für mich wenn ich meine Sachen eingrenzen kann.

grüße
Crank
Member: colinardo
colinardo Aug 05, 2016 updated at 09:41:35 (UTC)
Goto Top
Yepp, ich bin zwar ein Powershell-Freak aber die Kombination Powershell und Excel COM-Automation ist das lahmste der Welt und absolut nur in Ausnahmefällen zu empfehlen. Wenn Excel automatisiert werden soll dann entweder direkt nativ mit VBA/VBS oder einer richtigen Sprache wie C#/vb.net.

@Crank69 Ich empfehle dir daher das ganze eher mit VBS abzufackeln, ist um den Faktor 100 schneller.

@Biber Ich habe es mittlerweile meistens aufgeben den TOs was zu empfehlen, die hören meist sowieso nicht darauf ("ich will das aber so, menno"), und es beantwortet dann meistens nicht die Frage im Titel, und um die geht es ja meist wenn jemand fremdes diesen Thread liest, so gesehen sind sie dann zumindest noch einigermaßen nützlich.

Also lassen wir ihm seine Entscheidung, ist sein Bier face-wink Prost und ein schönes Wochenende wenn's soweit ist!

Grüße Uwe
Member: BirdyB
BirdyB Aug 05, 2016 at 10:16:57 (UTC)
Goto Top
@colinardo:
Hättest du ergäzend noch einen Tipp, wie man die ganzen Funktionen von COM/ActiveX-Objects herausfindet? Ich hatte mich mal durch den OLEViewer geklickt, bin damit aber nicht wirklich weitergekommen...

Danke und Gruß!


Berthold
Member: colinardo
colinardo Aug 05, 2016 updated at 10:36:03 (UTC)
Goto Top
Zitat von @BirdyB:

@colinardo:
Hättest du ergäzend noch einen Tipp, wie man die ganzen Funktionen von COM/ActiveX-Objects herausfindet? Ich hatte mich mal durch den OLEViewer geklickt, bin damit aber nicht wirklich weitergekommen...
Ja, direkt in der Anwendung die du fern steuern willst face-wink Die hat entweder eine Doku dazu (die meisten Ofice/Adobe/etc.), aber Oleview ist da auch ganz nützlich wenn man weiß wie man es handhaben muss.

Wenn du es einfacher haben willst VBSEdit bietet für die meisten Controls nach dem Einbinden ein Explorer-Interface mit den veröffentlichten Object-Membern.

Grüße Uwe
Member: colinardo
colinardo Aug 05, 2016 updated at 11:15:05 (UTC)
Goto Top
@BirdyB
Du kannst dir aber auch in der Powershell behelfen, indem du das Objekt erzeugst und dir die Member mit Get-Member anzeigen lässt.
Das geht mit fast allen Objekten bis auf ein paar Ausnahmen.

Beispiel:
New-Object -Com Wscript.Shell | gm * -Force 
Ausgabe:
Name                     MemberType            
----                     ----------            
pstypenames              CodeProperty          
psadapted                MemberSet             
psbase                   MemberSet             
psextended               MemberSet             
psobject                 MemberSet             
AppActivate              Method                
CreateShortcut           Method                
Exec                     Method                
ExpandEnvironmentStrings Method                
LogEvent                 Method                
Popup                    Method                
RegDelete                Method                
RegRead                  Method                
RegWrite                 Method                
Run                      Method                
SendKeys                 Method                
Environment              ParameterizedProperty 
CurrentDirectory         Property              
SpecialFolders           Property              

Eine Liste der verfügbaren COM-Objekte und deren Namen kannst du dir ebenfalls mit Powershell generieren lassen:
gci HKLM:\Software\Classes -ErrorAction SilentlyContinue | ?{$_.PSChildName -match '^\w+\.\w+$' -and (Test-Path -Path "$($_.PSPath)\CLSID")} | select -ExpandProperty PSChildName  
Natürlich sind davon nicht unbedingt alle direkt nutzbar, und es gibt auch Objekte deren Funktion man sich selbst per Reverse-Engineering erklären muss.
Member: BirdyB
BirdyB Aug 05, 2016 at 11:26:24 (UTC)
Goto Top
@colinardo:

Das ist großartig. Vielen Dank dafür!
Member: colinardo
Solution colinardo Aug 05, 2016 updated at 11:32:39 (UTC)
Goto Top
Zitat von @BirdyB:

@colinardo:
Das ist großartig. Vielen Dank dafür!
Man hilft gerne, kein Ursache face-smile

An den TO:
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, bevor hier noch ein paar andere kommen und weitere Fragen stellen face-wink. Merci.