Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1388to1392
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
Inhaltsverzeichnis

Arrayfelder auf Gleichheit prüfen

Arrayfelder auf Gleichheit prüfen
29.10.2014 12:23:50
Stefanie
Hallo ihr Profis :-)
ich möchte gerne mein Array auf gleiche Inhalte überprüfen.
Also in dem Array wird die Zeile 2 eingelsen. In dieser steht z.B.,
Zeile:      Hund, Katze, Katze, Maus, Hund, usw.
Halsband:          x                     x
Hundefutter:       x                     x

Jetzt möchte ich den Array durchlaufen und sobald der Inhalt (z.B., Hund) doppelt vorkommt sollen diese spalten verbunden werden. Weil die Kreuze beim Hund immer die selben sind.
Ich hab bis jetzt folgenden Quellcode:

-Das hier ist die Zeile wo steht Hund, Katze, etc.
arrayGleich = Range(Cells(2, 8), Cells(2, 200))
For lZeileGleich = 1 To UBound(arrayGleich) 'alle Zeilen
For lSpalteGleich = 1 To UBound(arrayGleich, 2) 'alle Spalten
If arrayGleich(lZeileGleich, lSpalteGleich)   =arrayGleich(lZeileGleich + 1, lSpalteGleich + 1)  _
Then
MsgBox "Gleicher Wert wurde gefunden"
End If
Next lSpalteGleich
Next lZeileGleich
Danke für eure Hilfe!
VG

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arrayfelder auf Gleichheit prüfen
29.10.2014 13:56:04
fcs
Hallo Stefanie,
ich kann zwar in etwa nachvollziehen was du möchtest, aber welchen Sinn soll das machen eine Tabelle durch verbundene Zellen in den Zeilen zu zerfleddern?
Nachfolgend ein Makro das deine Wünsche zufriedenstellen sollte.
Es muss eine weitere innere Schleife eingebaut werden, die die Namen jeweils bis zum Ende vergleicht, um einen doppelten Wert zu finden.
Gruß
Franz
Sub aaTest()
Dim arrayGleich, lZeileGleich, lSpalteGleich, lSpalteGleich2
'Zellbereich von H2 bis zum Ende der Liste nach rechts
arrayGleich = Range(Cells(2, 8), Cells(Cells(Rows.Count, 1).End(xlUp).Row, Cells(2, Columns. _
Count).End(xlToLeft).Column))
For lZeileGleich = 2 To UBound(arrayGleich) 'alle Zeilen
'Spalten abarbeiten
For lSpalteGleich = 1 To UBound(arrayGleich, 2) 'alle Spalten
'Werte mit restlichen Werten in Zeile vergleichen
For lSpalteGleich2 = lSpalteGleich + 1 To UBound(arrayGleich, 2) 'alle Spalten
'Werte in Zeile 1 vergleichen
If arrayGleich(1, lSpalteGleich) = arrayGleich(1, lSpalteGleich2) Then
'Prüfen, ob "x" in beiden Zellen in der Zeile
If arrayGleich(lZeileGleich, lSpalteGleich) = "x" _
And arrayGleich(lZeileGleich, lSpalteGleich2) = "x" Then
MsgBox "Gleicher Wert wurde gefunden"
Application.DisplayAlerts = False
Range(Cells(lZeileGleich + 1, lSpalteGleich + 7), _
Cells(lZeileGleich + 1, lSpalteGleich2 + 7)).Merge
Application.DisplayAlerts = True
Exit For
End If
End If
Next lSpalteGleich2
Next lSpalteGleich
Next lZeileGleich
End Sub

Anzeige
AW: Arrayfelder auf Gleichheit prüfen
03.11.2014 07:48:44
Stefanie
Naja ich hab hier das Beispiel mit den Tieren genannt, da ich mein tatsächliches Beispiel nicht öffentlich machen darf. Aber das hat schon Sinn. Vielleicht auf das Beispeil mit dem Hund bezogen.
Es gibt mehrere Hunde Rassen und deswegen muss ich die Zellen verbinden weil die Rasse in einer weiteren Zelle noch darüber steht.
Jedenfalls muss es leider so sein.
Werde jetzt deine Antwort mal nachvollziehen in Ruhe und Danke dir ganz herzlich!!
Hilft mir sehr weiter!

AW: Arrayfelder auf Gleichheit prüfen
03.11.2014 08:07:29
Stefanie
Funktioniert super ich danke dir !!!!

Ich halte dein Bsp ja für fiktiv, ...
01.11.2014 21:09:52
Luc:-?
…Stefanie,
und dich, nebenbei, für unhöflich, da du bisher (und wohl auch sonst öfter) kein Feedback gegeben hast (bzw gibst).
Solche VerbundZellen sind idR per sé nur sinnvoll, wenn dadurch gleiche Einträge in einer Listen­Spalte nur einmal erscheinen sollen, um die übliche Tabellen­form zu erreichen. Dabei ist es wg möglicher Filterungen besser, die mehrfachen Werte in ihren Zellen zu belassen (eine Verbund­Zelle kann trotzdem erzeugt wdn!).
Da hier aber die Einträge zu den Daten stets gleich sind, dürfte es besser sein, die Duplikate zu entfernen, nicht die betroffenen Zellen zu verbinden. Dies könnte mit dem gleichen Tool-Set erfolgen, mit dem auch gleich­inhaltige Zellen verbunden wdn können, falls diese Zellen aufeinander­folgend in einer Spalte angeordnet sind, was ggf durch Transposition (MTRANS) und Sortierung erreicht wdn kann.
Nähere Infos nur bei bekundetem Interesse!
Gruß, Luc :-?

Anzeige
AW: Ich halte dein Bsp ja für fiktiv, ...
03.11.2014 07:45:42
Stefanie
Ich habe eigentlich fast immer geantwortet. Sorry ich beschäftige mich halt 3 Tage in der Woche damit und komme dann nicht immer gleich zum Antworten.
Die Zellen muss ich verbinden aber vielen Dank für deinen Tipp.

AW: Ich halte dein Bsp ja für fiktiv, ...
03.11.2014 08:12:15
Stefanie
Sorry Luc, hast mir doch so oft geholfen. Ich wollte nicht unhöflich sein!! Bin immer sehr dankbar für deine Hilfe. Werde in Zukunft immer antworten :-))

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige