Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1940to1944
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

Zellen differenziert auslesen

Zellen differenziert auslesen
14.08.2023 14:15:44
Anja
Hallo zusammen,

ich komme gerade nicht weiter und benötige Hilfe. Und zwar: Ist Folgendes in Excel möglich?:

Eine Tabellenzeile enthält mehrere Gruppen mit Zellenfarben. Beispiel: 5 Zellen rot, 2 Zellen blau, 8 Zellen rot, 1 Zelle blau ... Immer nur diese zwei Farben im Wechsel, jedoch mit variierender Anzahl der gleichen Zellinhalte. Am Ende möchte ich das genau so ausgezählt haben, also 5, 2, 8, 1 ...

Wie man auszählen lässt mit Summenbildung ist mir klar, also dass das Programm mir am Ende sagt, wieviele rote und blaue Zellen es insgesamt in der Zeile sind. Aber eben diese Gesamtsumme brauche ich nicht, nur jeweils die der zusammenhängenden Zellen. Geht das irgendwie?

Tausend Dank für Hilfe.

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen differenziert auslesen
14.08.2023 15:01:59
Rudi Maintaire
Hallo,
in ein Modul:
Sub aaa()

Dim c As Long, i, lc As Long, tmp()

lc = Cells(1, Columns.Count).End(xlToLeft).Column
ReDim tmp(lc)
tmp(i) = 1
For c = 2 To lc
If Cells(1, c).Interior.Color > Cells(1, c - 1).Interior.Color Then
i = i + 1
End If
tmp(i) = tmp(i) + 1
Next c
ReDim Preserve tmp(i)
MsgBox Join(tmp, ",")
End Sub


Zählt in Zeile 1
Gruß
Rudi
AW: Zellen differenziert auslesen
14.08.2023 15:17:36
Anja
Lieber Rudi,

ganz herzlichen Dank für deine Antwort. Nur wo bzw. wie gebe ich das Modul ein? Hat das was mit VBA zu tun? Davon hab ich keine Ahnung. Oh je, oh je ...

Liebe Grüße
Anja
Anzeige
AW: Zellen differenziert auslesen
16.08.2023 14:51:00
Anja
... Mich fasziniert, was mit Excel alles möglich ist und ich habe Dank Rudi und meines Sohnes wieder viel hinzugelernt. Drum "spinne" ich jetzt mal mein Vorhaben etwas weiter.

Mit dem obigen Modul habe ich im Grunde mein oberstes Etappenziel erreicht. Die fortführenden Schritte habe ich manuell gelöst, bis zum Endziel waren noch 10 weitere notwendig. Vielleicht (ich möchte aber bitte nicht unverschämt rüberkommen, ist reines Interesse und "Magie" und Neugier) könnte man hiervon zumindest einige noch in dem Modul platzieren? Ich schreibe mal meine Wunschliste auf, wenn ich keine Antwort mehr bekomme, dann geht das völlig in Ordnung.

1. Könnte man die Blöcke auch von rechts nach links auszählen lassen?
2. Könnten die ausgezählten Werte in einzelnen Spalten/nebeneinanderliegenden Zellen platziert werden (statt mit Komma getrennt)?
3. Wenn ja, könnte dann nach jeder Spalte/Zelle eine Leerspalte eingefügt werden?
4. Könnten die Zeilen dann noch gespiegelt werden (erste Zeile als letzte und letzte als erste ...)?

Wie geschrieben, das sind absolute Wunschvorstellungen, ich bin auch bis jetzt absolut happy und bekomme diese Punkte auch manuell auf die Reihe.

Herzliche Grüße
Anja
Anzeige
AW: Zellen differenziert auslesen
16.08.2023 16:23:20
Rudi Maintaire
Hallo,
geht alles.
Function Bloecke(rngB As Range, _

Optional Spiegeln As Boolean = False, _
Optional Einzeln As Boolean = False, _
Optional Luecke As Boolean = False)

Dim c As Long, i As Long, n As Long, lc As Long, tmp(), vntTmp()

Set rngB = rngB.Resize(1)
lc = rngB.Cells.Count
ReDim tmp(lc)
tmp(i) = 1
For c = 2 To lc
If rngB(c).Interior.Color > rngB(c - 1).Interior.Color Then
i = i + 1
End If
tmp(i) = tmp(i) + 1
Next c
ReDim Preserve tmp(i)
Bloecke = Join(tmp, ", ")

If Spiegeln Then
ReDim vntTmp(i)
For i = UBound(tmp) To 0 Step -1
vntTmp(n) = tmp(i)
n = n + 1
Next i
tmp = vntTmp
Bloecke = Join(tmp, ", ")
End If

If Einzeln Then
If Luecke Then
ReDim vntTmp(UBound(tmp) * 2)
For i = 0 To UBound(tmp)
vntTmp((i) * 2) = tmp(i)
Next i
For i = 1 To UBound(vntTmp) Step 2
vntTmp(i) = ""
Next i
Bloecke = vntTmp
Else
ReDim vntTmp(UBound(tmp))
For i = 0 To UBound(tmp)
vntTmp(i) = tmp(i)
Next i
Bloecke = vntTmp
End If
End If

End Function


mit , getrennt: =Bloecke(A1:P1)
mit , getrennt und gespiegelt: =Bloecke(A1:P1;1)
Einzelzellen: =Bloecke(A1:P1;;1)
Einzelzellen mit Lücke: =Bloecke(A1:P1;;1;1)
Einzelzellen mit Lücke, gespiegelt: =Bloecke(A1:P1;1;1;1)

Gruß
Rudi
Anzeige
AW: Zellen differenziert auslesen
16.08.2023 18:14:19
Anja
OMG, Rudi, du müsstest meine Augen gerade sehen :-)

Du bist unglaublich, 2 Tage hier und ich lerne sooo viel. Also gut, ich versuche mich dann mal an meiner Datei. Aber wenn du sagst, das geht alles, dann geht alles. Ach, was bin ich gerade aufgeregt ... Ich melde mich nochmal, wenn ich es hinbekommen habe. Aber jetzt ein weiteres Mal DANKE.

Liebe Grüße
Anja
AW: Zellen differenziert auslesen
14.08.2023 21:27:37
Rudi Maintaire
Hallo,
machen wir das besser mit einer benutzerdefinierten Funktion.

Drücke Alt+F11
Einfügen - Modul

In das sich öffnende Fenster diesen Code:
Function Bloecke(rngB As Range)

Dim c As Long, i As Long, lc As Long, tmp()
Set rngB = rngB.Resize(1)
lc = rngB.Cells.Count
ReDim tmp(lc)
tmp(i) = 1
For c = 2 To lc
If rngB(c).Interior.Color > rngB(c - 1).Interior.Color Then
i = i + 1
End If
tmp(i) = tmp(i) + 1
Next c
ReDim Preserve tmp(i)
Bloecke = Join(tmp, ",")
End Function

In der Tabelle dann z.B. =Bloecke(A1:P1)

Gruß
Rudi
Anzeige
AW: Zellen differenziert auslesen
15.08.2023 11:48:35
Anja
Lieber Rudi,

du bist großartig. Ich sitze gerade am PC und versuche das mal umzusetzen. Mein Sohn hatte mir gestern zwar mal "auf die Schnelle" das mit dem Modul und VBA erklärt, aber alles konnte ich mir mit Sicherheit nicht merken.

Herzliche Grüße und nochmals ein riesengroßes DANKE
Anja
AW: Zellen differenziert auslesen
16.08.2023 10:10:06
Anja
Lieber Rudi,

DANKE, DANKE, DANKE ... Dein Modul funktioniert genau so, wie ich es benötige. Damit hast du mir einen riesengroße Freude bereitet und künftig eine Menge Zeitersparnis und Stress. Ich kann dir gar nicht genug danken. Super, dass es solche Foren und Menschen wie dich gibt.

Herzliche Grüße
Anja
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige