Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro: Automatisches filtern
#1
Hallo,

ich habe da ein Anliegen wobei ich im Moment an meine Grenzen stoße.

Und zwar geht es um eine Auswertung aus einer Auslesesoftware, die mir eine Inventarliste in Excel auflistet.
Siehe Bild "Grundstruktur".

Ich habe diese Grundstruktur bereits mit einer Makro bearbeitet das die Bezeichnungen der einzelnen Geräte separat stehen und diese sortiert sind. 
Siehe Bild "Gefiltert". Dieses Bild ist nach einer anderen Spalte sortiert daher nicht wundern.

Nun möchte ich zum Beispiel die Bezeichnungen die in Spalte H stehen nach Fehler korrigiert haben. Dies kann ich ja ganz leicht über die Filter raussuchen.
Siehe Bild "Filter".

Jetzt komm ich aber zu meinem Problem. Wenn nun ein Fehler sich eingeschlichen hat ob es nun selbst verschrieben ist oder noch aus alten Daten würde ich diese gerne aussortiert haben, das man diese korrigieren kann.
Zum Beispiel so: Siehe Bild "raus filtern".
Dort wurde die Bezeichnung der Kaltgeräteleitung auf zwei verschiedene Varianten geschrieben. Da ich mich gerne nur auf eine Schreibweise einigen möchte und dies auf einfach ordentlicher aussieht wenn alles gleich geschrieben ist, würde ich gerne einen davon rausfiltern lassen. Zum Beispiel "Kaltgeräteleitung", da wir keine ä, ö und ü´s benutzen.

Wie kann ich dies mit einem Makro automatisieren, da ich die Korrektur Arbeiten für mein Team gerne vereinfachen möchte, sowie die Fehlerrate gering halten möchte und den Zeitaufwand gering halten möchte.

Gibt es dazu eine Möglichkeit, und wenn ja könnte mir dabei wer helfen ?

Mit freundlichen Grüßen
Daniel


Angehängte Dateien Thumbnail(s)
               
Antworten Top
#2
(01.02.2018, 09:31)D_Number_1 schrieb: Ich habe diese Grundstruktur bereits mit einer Makro bearbeitet das die Bezeichnungen der einzelnen Geräte separat stehen und diese sortiert sind.

Hallo Daniel,
dann erweitere genau dieses Makro und rufe darin mit der soeben extrahierten Gerätebezeichnung eine 'Cleaner'-Funktion auf.
Z.Bsp. so etwas:
Code:
Private Function CleanString(sText As String) As String
   sText = Replace(sText, "ü", "ue")
   sText = Replace(sText, "ö", "oe")
   sText = Replace(sText, "ä", "ae")
   sText = Replace(sText, "Ü", "Ue")
   sText = Replace(sText, "Ö", "Oe")
   sText = Replace(sText, "Ä", "Ae")
   sText = Replace(sText, "ß", "ss")
   
   CleanString = sText
End Function

Gruß Carsten
Antworten Top
#3
Danke für die schnelle Antwort.
Das hilft mir aufjedenfall schon mal weiter.

Hab aber eine Sache vergessen zu erwähnen und zwar brauche ich die Zeile wo die falsche Bezeichnung bzw auch die falsche Schreibweise steht, da man sich auch mal verschreiben kann zum Beispiel Kaltgraeteleitung. Da ich diese Anhand der ID in der Auslesesoftware auch korrigieren muss.
Antworten Top
#4
*grrr*          ;)

Woran sollte man denn evtl. Schreibfehler erkennen können?
Hast Du eine Referenztabelle mit den ID's und deren korrekter Bezeichnung?
Wenn ja, dann kann man sich das CleanString-Gehampel gleich ersparen, dort die richtige Bezeichnung ziehen und in einer zusätzlichen Spalte (oder wo auch immer) auf den Fehler hinweisen.

Ein konstruktiver Vorschlag ist aber ohne Beispielmappe eine einzige Rätselei ...


Gruß Carsten
Antworten Top
#5
Also im Bild "Grundstruktur" sieht man ja bei den Bezeichnungen eine 8-stellige ID. 
Nach der Trennung steht diese ja nur noch alleine dort mit in der Spalte daneben stehende Bezeichnung des Gerätes.
Wenn nur ein Gerät falsch geschrieben ist müssen wir diese Anhand der ID in der Auslesesoftware suchen und dort korrigieren.
Diese Excel Tabelle ist für uns nur eine große Hilfe um dies etwas schneller durchführen zu können und nicht alle ID´s durchgehen zu müssen von ca 10.000 Stück ::D

Also ich würde natürlich noch eine Excel Datei vorbereiten wo alle richtige Schreibweisen drin wäre, die würde ungefähr so aussehen. Siehe Bild "Schreibweise" Ist jetzt nur die erste Vorlage. Die ID´s wechseln sich ständig zu jedem Projekt, da jeder Kunde seine eigenen ID´s besitzt.


Das am Ende das ungefähr so aussieht das mir nur noch die angezeigt werden mit der ID die falsch sind.
Siehe Bild "Endsicht"

Wie gesagt ich versuche es für mein Team so einfach wie möglich zu halten, da bei größeren Dateien die ganze Überprüfung auch mal über einen längeren Zeitraum gehen kann und somit könnte man einfach Aufwand und Nerven sparen :D


Angehängte Dateien Thumbnail(s)
       
Antworten Top
#6
Bilder sind wirklich eine schöne Sache.
Ich liebe Bilder.
Bilder sind hilfreich.

Außer bei Hilfen in Excel.


Wenn die ID-Nummern sich bei jedem Kunde ändern, dann benötigt man eine Liste pro Kunde. 
Wo auch immer die herkommt oder wie auch immer diese erstellt wird.
Ansonsten müsste man sich auch mal den Gesamtprozess anschauen.

Wenn ich Deine Beschreibung so lese, dann könnte man diese Liste in einem extra Sheet erzeugen und auch per Makro erweitern und die zugehörige Bezeichnung per SVerweis in der von Dir beschriebenen Haupttabelle anzeigen lassen.
Wie auch immer ... Rätselei ... Bilderrätsel ...


Gruß Carsten
Antworten Top
#7
Hallöchen,

hier mal ein Ansatz, der Dir die Zeilennummern der geänderten Zellen im Bereich A1:A10 ausgibt. Kannst dort zum Test mal ein paar Worte mit den Umlauten und auch ohne eingeben.
In der Funktion müsstest Du noch ByVal ergänzen:
Private Function CleanString(ByVal sText As String) As String


Code:
Sub GeAendert()
'Variablendeklaration
'Variant-Array, Long, String
Dim arrAA, iCnt&, strTmp$, strRow$
'Daten in Array holen
arrAA = Range("A1:A10")
'Schleife ueber alle Elemente des Array
For iCnt = 1 To UBound(arrAA)
'Umlaute ersetzen und temporaer uebernehmen
strTmp = CleanString(arrAA(iCnt, 1))
  'wenn temporaerer String unterschiedlich lang ist, dann
  If Len(arrAA(iCnt, 1)) <> Len(strTmp) Then
    'Zeilennummer merken
    strRow = strRow & iCnt & ";"
    'in Array uebernehmen
    arrAA(iCnt, 1) = strTmp
  'Ende wenn temporaerer String unterschiedlich lang ist, dann
  End If
'Ende Schleife ueber alle Elemente des Array
Next
'Array in Bereich einfuegen
Range("A1:A10") = arrAA
'Zeilennummern ausgeben
MsgBox strRow
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste