Text Vergleich für cracks

Bild

Betrifft: Text Vergleich für cracks
von: Matthias
Geschrieben am: 18.06.2015 17:38:56

Guten Tag,
meine verzweifelte suche brache mich mehr und mehr Richtung vba - ich hoffe ihr habt eine logische Idee für mein Problem.
Ich habe eine Arbeitsmappe mit 3 Blättern.
Blatt 1 beinhaltet das Original in E4:E43
Blatt 2 beinhaltet die Vergleichsdaten E4:E7000
Blatt 3 wäre für den Output
Im Blatt 1 ist in den Zeilen E4:E43 unterschiedlicher einzeiliger Text z.B.:
"Text 01 uerschrift"
"Text 02 Inhalt"
"Text 03 Inhalt"
"Text 04 Inhalt"
Im Blatt 2 ist hundertfach ein Vergleichstext z.B.:
!
"Text 01 uerschrift"
"Text 02 "
"Text 03 Inhalt"
"Text 04 Inhalt"
!
"Text 01 uerschrift"
"Text 02 Inhalt"
"Text 03 "
"Text 04 Inhalt"
!
Toll ist das dieser Vergleichtext immer mit einem Ausrufungszeichen getrent ist und dann ein weiterer beginnt, der von vorn verglicher werden muss.
Im Blatt 3 stehen dann die Zeilen die Abweichungen beinhalteten z.B.:
!
"Text 02 "
!
"Text 03 "
!
Ich kann zwar EINEN Vergleich zwischen den Zeilen machen, aber mir misslingt die Schleifenbildung mit dem "!" als Trennung.
Bislang habe ich vieles ohne vba hinbekommen, aber ich denke hier ist die Welt für mich zu ende.
Wenn ihr einen Vorschlag habt wäre ich echt dankbar!!!
Auch bin ich offen für weiter idee, also wenn der text komplett in einer Zelle stehen würde wäre mir das sogar noch lieber.
Gruß
Matthias

Bild

Betrifft: AW: Text Vergleich für cracks
von: guentherh
Geschrieben am: 19.06.2015 08:45:09
Hallo Mathias,
Mein Ansatz für Tabelle 3 würde folgendes Ergebnis liefern:
!
"Text 02 "
!
"Text 03 "
!
Das ließe sich mit Formel lösen, und ergäbe einen Hinweis, wo der abweichende Text zu finden ist.
Tab3 würde sdann so aussehen, und der 5er-Block von A6 bis A11 könnte einfach nach unten gezogen werden:
=wenn(Tab2!A1="!";"!")
=wenn(Tab2!A2="!";"!";wenn(Tab2!A2=Tab1!A$1;"";Tab2!A2))
=wenn(Tab2!A3="!";"!";wenn(Tab2!A3=Tab1!A$2;"";Tab2!A3))
=wenn(Tab2!A4="!";"!";wenn(Tab2!A4=Tab1!A$3;"";Tab2!A4))
=wenn(Tab2!A5="!";"!";wenn(Tab2!A5=Tab1!A$4;"";Tab2!A5))
=wenn(Tab2!A6="!";"!";wenn(Tab2!A6=Tab1!A$5;"";Tab2!A6))
=wenn(Tab2!A7="!";"!";wenn(Tab2!A7=Tab1!A$1;"";Tab2!A7))
=wenn(Tab2!A8="!";"!";wenn(Tab2!A8=Tab1!A$2;"";Tab2!A8))
=wenn(Tab2!A9="!";"!";wenn(Tab2!A9=Tab1!A$3;"";Tab2!A9))
=wenn(Tab2!A10="!";"!";wenn(Tab2!A10=Tab1!A$4;"";Tab2!A10))
=wenn(Tab2!A11="!";"!";wenn(Tab2!A11=Tab1!A$5;"";Tab2!A11))
Für die Lösung ohne Berücksichtigung der Position würde sich Anbieten: per VBA Zelle in Tab2 anschauen Wenn ! dann in Tab3 ! schreiben in Tab1 an Zeile 1 gehen, in Tab 2 und 3 eins weiter
sonst wenn unterschiedlich zur Zelle in Tab1, dann nach Tab3 schreiben, in allen Tabs um eins weiter
sonst (also wenn gleich) in Tab1 und Tab 2 eins weiter
endewenn
endewenn
für einen verwendbaren VBA-Code erkläre doch was Du genau brauchst.
Gruß,
Günther

Bild

Betrifft: AW: Text Vergleich für cracks
von: Matthias
Geschrieben am: 19.06.2015 09:58:34
Hallo und danke für die erste Hilfe, ich glaube ich werde mal detailierter was das Beispiel angeht.
Ich gaube auch das es per "knopfdruck" gestaret werden müsste, da man die daten in Tabelle 1 und Tabell 2 ab und an ändert.
Hier ein Beispieltext der Vorlage:
switchport
switchport access vlan 2
switchport mode access
switchport voice vlan 5
switchport port-security
switchport port-security maximum 10
switchport port-security aging time 99
switchport port-security violation
switchport port-security aging type inactivity
no logging event link-status
no snmp trap link-status
speed auto 10 100
mac access-group IP-only in
no cdp enable
spanning-tree guard root
Und hier der ist-stand gegen den ich checken möchte:
!
interface FastEthernet4/20
switchport
switchport access vlan 2
switchport mode access
switchport voice vlan 5
switchport port-security
switchport port-security maximum 10
switchport port-security aging time 99
switchport port-security violation
switchport port-security aging type inactivity
service-policy output autoqos-voip-policy
qos trust cos
no snmp trap link-status
auto qos voip trust
tx-queue 3
priority high
shape percent 33
mac access-group IP-only in
no cdp enable
spanning-tree guard root
!
interface FastEthernet4/21
switchport
switchport access vlan 999
switchport mode access
switchport voice vlan 5
switchport port-security
switchport port-security maximum 10
switchport port-security aging time 99
switchport port-security violation
switchport port-security aging type inactivity
service-policy output autoqos-voip-policy
qos trust cos
no snmp trap link-status
auto qos voip trust
tx-queue 3
priority high
shape percent 33
mac access-group IP-only in
no cdp enable
spanning-tree guard root
!
.
.
.
!
(und weitere 250x)
Im Output geht es darum, die dinge welche nicht in der Vorlage sind zu erkennen.
Damit ergibt sich auch für mich ein Konfigurations-hilfe oder sagen wir einfach eine kleinere Konfiguration, da viele Zeilen wegfallen (wenn sie schon in der Vorlage sind)
Danke und Gruß!
Matthias

Bild

Betrifft: AW: Text Vergleich für cracks
von: Rudi Maintaire
Geschrieben am: 19.06.2015 10:14:51
Hallo,
du möchtest also aus dem Iststand alles rauswerfen, das in der Vorlage enthalten ist?
Motto:

switchport 
switchport access vlan 2 
switchport mode access 
switchport voice vlan 5 
switchport port-security 
switchport port-security maximum 10 
switchport port-security aging time 99 
switchport port-security violation 
switchport port-security aging type inactivity 
no logging event link-status 
no snmp trap link-status 
speed auto 10 100 
mac access-group IP-only in 
no cdp enable 
spanning-tree guard root 
  
  
  
! 
interface FastEthernet4/20bleibt
switchportraus
switchport access vlan 2raus
switchport mode accessraus
switchport voice vlan 5raus
switchport port-securityraus
switchport port-security maximum 10raus
switchport port-security aging time 99raus
switchport port-security violationraus
switchport port-security aging type inactivityraus
service-policy output autoqos-voip-policybleibt
qos trust cosbleibt
no snmp trap link-statusraus
auto qos voip trustbleibt
tx-queue 3bleibt
priority highbleibt
shape percent 33bleibt
mac access-group IP-only inraus
no cdp enableraus
spanning-tree guard rootraus

ZelleFormel
B20=WENN(ZÄHLENWENN($A$1:$A$15;A20);"raus";"bleibt")

Gruß
Rudi

Bild

Betrifft: AW: Text Vergleich für cracks
von: Matthias
Geschrieben am: 19.06.2015 10:58:45
Naja nicht ganz, eher nach dem Schema wie ich es in der xls per Hand dargestellt habe.
Ich hoffe es wird dadurch verständlicher.
https://www.herber.de/bbs/user/98303.xlsx
Danke!

Bild

Betrifft: AW: Text Vergleich für cracks
von: Rudi Maintaire
Geschrieben am: 19.06.2015 11:10:42
Hallo,
für dein Beispiel:
C3: =WENN(ZÄHLENWENN($A$3:$A$14;B3);"!";B3)
und runter kopieren.
Gruß
Rudi

Bild

Betrifft: AW: Text Vergleich für cracks
von: Matthias
Geschrieben am: 19.06.2015 11:26:39
Super! Genau das geht in die richtige Richtung.
Nur wenn ich jetzt neue Zeilen in die Spalte IST-Stand kopiere kann es sein, das dies länger oder kürzer ist. Je nach dem wieviele ich vergleiche.
Wenn die "=WENN(ZÄHLENWENN($A$3:$A$14;B3);"!";B3)" nicht mehr in der Spalte Ausgabe steht, bleibt diese leer. Wenn es weniger Zeilen zum vergleichen gibt, steht eine "0" in der Spalte Ausgabe.
Kann man dies eingrenzen?
Wäre es möglich den Vorlagentext und auch den Ist-Stand in nur eine Zelle zu kopieren? So das das durchsuchen die einzelnen Zeilen in einer Zelle durchläuft?.
Riesendank und Gruß
Matthias

Bild

Betrifft: nicht in einer Zelle. owT
von: Rudi Maintaire
Geschrieben am: 19.06.2015 13:32:13


Bild

Betrifft: AW: nicht in einer Zelle. owT
von: Matthias
Geschrieben am: 19.06.2015 13:39:37
OK, verstehe - ist es möglich bereiche festzulegen/einzuschränken?

Bild

Betrifft: AW: nicht in einer Zelle. owT
von: guentherh
Geschrieben am: 19.06.2015 14:23:09
Hallo Matthias,
freilich kann man über Makro die Zahl der Einträge für den Vergleich automatisch anpassen.
Der Aufwand für die Programmierung steht aber nicht im Verhältnis zum angepassten Verlängern durch Ziehen mit der Maus, oder?
Gruß,
Günther

Bild

Betrifft: AW: nicht in einer Zelle. owT
von: Matthias
Geschrieben am: 19.06.2015 14:34:13
Das ist richtig, wenn Grundlegend derjenige mit der Maus ziehen kann.
Ich wollte die Tabelle aber "sperren" so das nicht viel falsch gemacht werden kann.
Hast du eine Idee für die eingrenzung der Felder?
Danke trotzdem!
Matthias

Bild

Betrifft: AW: nicht in einer Zelle. owT
von: guentherh
Geschrieben am: 22.06.2015 08:10:50
Zwei Möglichkeiten sehe ich:
Du kannst die Formel erweitern


=WENN(B3<>"";WENN(ZÄHLENWENN($A$3:$A$14;B3);"!";B3);"")

und diese Formel so weit runterziehen, dass es reicht bis Du zum nächsten Mal Hand an die Datei legst.
oder ein Makro schreiben, das jedesmal wenn irgendwas in der Datei geändert wird, nachschaut ob eine Zeile hinzugekommen ist, und dann die Formel nach unten auffüllt.
Gruß,
Günther

Bild

Betrifft: AW: nicht in einer Zelle. owT
von: Matthias
Geschrieben am: 22.06.2015 10:18:56
So geht es natürlich auch :)
Danke!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Text Vergleich für cracks"