Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datenpaare kenntlich machen

Datenpaare kenntlich machen
28.11.2007 12:24:23
VolkerM
Hallo Forum
Ich möchte per VBA Datenpaare, die aus Zahlen und/oder Buchstabenfolgen bestehen können, finden und kenntlich machen.
Mit Datenpaare ist gemeint, dass wenn in Spalte A und Spalte C die jeweiligen Einträge in ihrer Kombination mehr als doppelt vorkommen.
Zur Verdeutlichung:
In mehr als 2 Zeilen werden zum Beispiel in Spalte A: 123 und Spalte C: 567 gefunden.
Nun sollen die gefundenen Datenpaare mit gelber Hintergrundfarbe kenntlich gemacht werden.
Vielen Dank im Voraus
Gruss Volker

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Datenpaare kenntlich machen ohne VBA
28.11.2007 12:34:00
Christian
Hallo Volker,
geht auch ohne VBA mit bed. Formatierung:
Tabelle1

 ABC
1123 567
2124 568
3125 569
4126 570
5127 571
6123 567
7124 568
8125 569
9126 570
10191 213
11124 568
12193 215
13194 216
14195 217
15123 567

Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
A11. / Formel ist =SUMMENPRODUKT(($A$1:$A$15=$A1)*($C$1:$C$15=$C1))>2Abc
B11. / Formel ist =SUMMENPRODUKT(($A$1:$A$15=$A1)*($C$1:$C$15=$C1))>2Abc
C11. / Formel ist =SUMMENPRODUKT(($A$1:$A$15=$A1)*($C$1:$C$15=$C1))>2Abc


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
MfG Christian

Anzeige
AW: Datenpaare kenntlich machen ohne VBA
28.11.2007 12:39:28
VolkerM
Hallo Christian
Danke für die Formel.
Nur ich hätte gern ein Makro.
Gruss Volker

AW: Datenpaare kenntlich machen ohne VBA
28.11.2007 13:49:00
Christian
Hallo Volker,
dann nimm die ganze Prozedur doch mit dem Makro-Rekorder auf (dauert ca. 2 min)!
MfG Christian

AW: Datenpaare kenntlich machen ohne VBA
28.11.2007 16:46:39
VolkerM
Hallo Christian
Es handelt sich um eine sehr große Tabelle mit bis zu 20.000 Zeilen.
Mit der bedingten Formatierung wird die Datei viel zu groß und bedingte Formatierung kann ich nicht weiterverarbeiten.
Trotzdem Danke
Gruss Volker

VBA Beispiel ...
28.11.2007 20:42:52
Matthias
Hallo Volker
Meinst Du so ?
Userbild
Userbild

Anzeige
AW: Datenpaare kenntlich machen ohne VBA
29.11.2007 01:05:05
Daniel
Hi
du hast nur teilweise recht.
wenn alle Zellen die gleiche Bedingte Formatierung haben, wird die Datei nur unwesentlich grösser, weil die bed. Formatierung nur einmal für dem gesamten Bereich gespeichert werden muss.
Weiterverarbeitbar sind die Ergebnisse der Bedingten Formatierung natürlich nicht, da hast du recht.
Ich würde eine Hilfsspalte einfügen und die beiden Werte zu einem Schlüsselbegriff zusammensetzen.
das erleichert die Bearbeitung und du kannst u.U. mit relativ einfachen Formeln (SummeWenn, ZählenWenn) relativ viel erreichen und brauchst nicht die langsamen und komplexen Summenprodukte zu verwenden.
Gruß, Daniel

Anzeige
AW: Datenpaare kenntlich machen ohne VBA
29.11.2007 07:30:00
VolkerM
Hallo Matthias, Daniel
Danke für eure Mühe.
Die Suchdatensätze sind vorher nicht bekannt. Es werden die Datenpaare gesucht, die in ihrer
Kombination häufiger vorkommen.
Das mit der Hilfsspalte ist natürlich richtig und wird vermutlich die Lösung sein, wenn ich
die Datenpaare koppelt, ist viel leichter die Häufigkeit zu erkennen und kenntlich zu machen.
Bei meinen bescheidenen Versuchen hab ich jetzt diesen Code (stammt aus dem Archiv: WernerB).
Sub Test() With Application .ScreenUpdating = False .Calculation = xlCalculationManual End With Cells.Interior.ColorIndex = xlNone Dim tx As String Dim i As Long, j As Long, k As Long, laR As Long laR = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To laR tx = Cells(i, 1).Value & Cells(i, 3).Value For j = i + 1 To laR + 1 If Cells(j, 1).Value & Cells(j, 3).Value = tx Then Cells(i, 1).Interior.ColorIndex = 6 Cells(i, 3).Interior.ColorIndex = 6 ' Cells(i, 12).Value = "XX" End If Next j Next i With Application .ScreenUpdating = True .Calculation = xlCalculationAutomatic .Calculate End With End Sub


Das Makro findet bis auf das letzte Paar alle und ist aber recht langsam (bei 30.000 Zeilen).
Der große Nachteil ist, man die "Anzahl" des Vorkommens nicht variabel einstellen.
Hat jemand noch eine Idee ?
Vielen Dank für eure Mühe.
Gruss Volker

Anzeige
AW: Datenpaare kenntlich machen ohne VBA
29.11.2007 09:50:00
VolkerM
Hallo
Fragestellung hat sich erledigt.
Problem habe ich mit Einfügen einer Hilfsspalte halbwegs zufriedenstellend gelöst.
Wer Interesse daran hat:
(meine Kenntnisse sind jedoch bescheiden)

Private Sub CommandButton65_Click()
Application.ScreenUpdating = False
Workbooks.Add
Range(Cells(1, 1), Cells _
(ListBox7.ListCount, 2)).Value = ListBox7.List
Range("A1").Sort Key1:=Range("B1"), _
Order1:=xlDescending, key2:=Range("A1"), _
order2:=xlDescending
ListBox7.List = Range("A1").CurrentRegion.Value
ActiveWorkbook.Close savechanges:=False
End Sub


Sub UebertragenC()
Dim lRow As Long
Dim i As Long
i = Worksheets("Daten").Cells(Rows.Count, 12).End(xlUp).Row
With Worksheets("CAuswertung")
lRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Worksheets("Daten").Range("L1:L" & i).Copy .Cells(lRow, 1)
End With
Application.CutCopyMode = False
End Sub


Sub HaeufigkeitUebertragenC()
Dim bereich As Range
Dim i As Long
i = Worksheets("CAuswertung").Cells(Rows.Count, 1).End(xlUp).Row
For Each bereich In Sheets("CAuswertung").Range("A1:A" & i)
bereich.Offset(0, 1) = _
Application.WorksheetFunction.CountIf(Sheets("Daten").Range("L:L"), bereich)
Next bereich
End Sub


Sub SetFilterC()
Sheets("CAuswertung").Rows("1:1").Delete
Sheets("CAuswertung").Range("A1").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:= _
Sheets("CAuswertung").Range("B1"), Unique:=True
Sheets("CAuswertung").Columns(1).EntireColumn.Delete
End Sub


Sub Koppeln()
Application.ScreenUpdating = False
Dim z As Long
z = 1
Do While Sheets("Daten").Cells(z, 1) ""
Sheets("Daten").Cells(z, 12) = Sheets("Daten").Cells(z, 1) & " // " & Sheets("Daten").Cells(z, 3)
z = z + 1
Loop
'Sheets("Daten").Cells.Columns.AutoFit
Application.ScreenUpdating = True
End Sub


Dank an Euch.
Gruss Volker

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige