Autor
|
Thema: Zellen vergleichen und fehlende Punkte anzeigen (1690 mal gelesen)
|
CAD_N Mitglied Bautechniker
Beiträge: 140 Registriert: 18.09.2003
|
erstellt am: 07. Dez. 2007 08:58 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe die Beiträge mit Zellen vergleichen gelesen, besser ich habe es versucht zu verstehen. doch damit bin ich nicht zurecht gekommen. Mein Problem ist wie folgt. Ich möchte Spalte A&B mit Spalte D vergleichen, dann sollte in Spalte D einiges fehlen, das was fehlt sollte mir irgendwo angzeigt werden. Ist das möglich? Vielen Dank Norbert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 07. Dez. 2007 09:15 <-- editieren / zitieren --> Unities abgeben: Nur für CAD_N
|
CAD_N Mitglied Bautechniker
Beiträge: 140 Registriert: 18.09.2003
|
erstellt am: 07. Dez. 2007 09:37 <-- editieren / zitieren --> Unities abgeben:
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 07. Dez. 2007 09:55 <-- editieren / zitieren --> Unities abgeben: Nur für CAD_N
Moin, moin, nicht ganz so schnell, aber auch schmutzig ;-) : Code: Option Explicit Public Sub Vergleich() Dim arQuelle() 'As String Dim arZiel() 'As String Dim a As Integer, b As Integer Dim LZA As Integer, LZB As Integer, LZD As Integer, LZ As Integer 'letzte belegte Zeile SpalteA LZA = Sheets(1).Columns(1).Find("*", [A1], , , xlByRows, xlPrevious).Row 'letzte belegte Zeile SpalteB LZB = Sheets(1).Columns(2).Find("*", [B1], , , xlByRows, xlPrevious).Row 'letzte belegte Zeile SpalteD LZD = Sheets(1).Columns(4).Find("*", [D1], , , xlByRows, xlPrevious).Row 'Blatt muß aktiviert sein, sonst keine arrayZuweisung möglich If LZA > LZB Then LZ = LZA Else LZ = LZB Sheets(1).Activate 'alle Daten in ein array schreiben arQuelle = Sheets(1).Range(Cells(1, 1), Cells(LZ, 2)).Value 'Stop arZiel = Sheets(1).Range(Cells(1, 4), Cells(LZD, 4)).Value 'Spalte A und B alle belegten Zellen einfärben Sheets(1).Range(Cells(1, 1), Cells(LZ, 2)).Interior.ColorIndex = 3 'Spalte A prüfen: wenn Eintrag vorhanden, dann Farbe raus For b = 1 To UBound(arZiel, 1) For a = 1 To UBound(arQuelle, 1) 'falls Groß/Kleinschreibung unbedeutend ist sollte die Abfrage auf 'If UCase(arQuelle(a, 1)) = UCase(arZiel(b, 1)) Then 'geändert werden If arQuelle(a, 1) = arZiel(b, 1) Then Sheets(1).Cells(a, 1).Interior.ColorIndex = xlColorIndexNone End If Next a Next b 'SpalteB prüfen For b = 1 To UBound(arZiel, 1) For a = 1 To UBound(arQuelle, 2) If arQuelle(a, 2) = arZiel(b, 1) Then Sheets(1).Cells(a, 2).Interior.ColorIndex = xlColorIndexNone End If Next a Next b End Sub
Als Modul einfügen. Makro färbt alle belegten Zellen in Spalte A und B rot ein und löscht die Farbe bei vorh. Einträgen wieder raus -> was rot bleibt, fehlt in Spalte D. Ich hoffe, so war es gemeint.------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD_N Mitglied Bautechniker
Beiträge: 140 Registriert: 18.09.2003
|
erstellt am: 07. Dez. 2007 10:12 <-- editieren / zitieren --> Unities abgeben:
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 07. Dez. 2007 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für CAD_N
Zitat: Original erstellt von CAD_N: Hallo runkelruebe,das schaut sehr schön aus, doch gibt es die rot angelegten Felder in D. CU Norbert
hmmm, was genau meinst Du? Es soll die roten in D geben? Denn rot werden sie durch
Code: Sheets(1).Range(Cells(1, 1), Cells(LZ, 2)).Interior.ColorIndex = 3
also von Spalte 1-2. wieder unfarbig durch:
Code: Sheets(1).Cells(a, 1).Interior.ColorIndex = xlColorIndexNone '(SpalteA)bzw. Sheets(1).Cells(a, 2).Interior.ColorIndex = xlColorIndexNone '(SpalteB)
hab's grade nochmal hier aus dem thread kopiert und in einer neuen Mappe getestet... Ich habe den code aber kommentiert, fühl Dich frei, ihn an Deine Bedürfnisse anzupassen ;-) ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD_N Mitglied Bautechniker
Beiträge: 140 Registriert: 18.09.2003
|
erstellt am: 07. Dez. 2007 11:02 <-- editieren / zitieren --> Unities abgeben:
Hallo runkelruebe, ist nicht genauso wie ich mri das gedacht habe, allerdings bin ich trotzdem sehr begeistert. Denn ich habe in den Zahlen eine Unstimmigkeit gefunden, mal sehen ob es daran lag. Vielen Dank Norbert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 07. Dez. 2007 13:07 <-- editieren / zitieren --> Unities abgeben: Nur für CAD_N
Zitat: Original erstellt von CAD_N: Ich möchte Spalte A&B mit Spalte D vergleichen, dann sollte in Spalte D einiges fehlen, das was fehlt sollte mir irgendwo angzeigt werden. Ist das möglich?
schreibe in Zelle irgendwo =ZÄHLENWENN(A:B;D1) und kopiere es runter. Ergebnis = wie oft Zellwert xx in Spalte A:B vorkommt. Über bedingte Formatierung in D1 =ZÄHLENWENN(A:B;D1)=0 und mittels Format übertragen auf die restlichen Zellen in Spalte D anwendet, lässt sich obige Formel als optisches Hilfsmittel verwenden, sofern man eine Farbvergabe definiert. Muss aber auch sagen, das mir die Aufgabenstellung nicht wirklich klar ist ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|