Thema Datum  Von Nutzer Rating
Antwort
Rot Farben auslesen und bestimmte Kriterien zählen
17.09.2008 16:07:19 Sabine
NotSolved
18.09.2008 16:03:20 Sabine
NotSolved
20.09.2008 12:13:16 Holger
NotSolved
21.09.2008 10:15:36 Holger
NotSolved

Ansicht des Beitrags:
Von:
Sabine
Datum:
17.09.2008 16:07:19
Views:
3074
Rating: Antwort:
  Ja
Thema:
Farben auslesen und bestimmte Kriterien zählen
Hallo Holger,

erstmal danke für deine Hilfe. Klappt schon einigermassen,habe nun nur noch ein Problem. Ich will, das der Button mit dem ich das ganze aktiviere im Blatt Namens Werte liegt, dann soll in MeineTabelle gesucht werden, dies habe ich vorher definiert und dann der Wert wieder in Werte in B67 ausgegeben werden.
Momentan sieht mein Makro so aus.
Ich hoffe du kannst mir noch einen letzten Abschließenden Tip geben. Bin dir echt dankbar. Gruß Sabine

Sub VBMauslesen()
'Welche Tabelle soll verwendet werden?
MeineTabelle = Worksheets(1).Name

' Zeile
Von = 4 'Start Teil (Zeile)
Bis = Worksheets(MeineTabelle).UsedRange.Rows.Count

Bis2 = Worksheets(MeineTabelle).UsedRange.Columns.Count
Stat = Bis2 - 2

Sheets(MeineTabelle).Activate

Ber = InputBox("Anfangsspalte:Endspalte" + vbCrLf + vbCrLf + "Beispiel: D:AC", "Suchbereich")
a = "abcdefghijklmnopqrstuvwxyz:"

ZelleVBM = "B66"
VBM = 0 ' Startwert

For I = 1 To Cells(Rows.Count, 16).End(xlUp).Row
If Left(Worksheets(MeineTabelle).Range("P" & I), 2) = "TI" Then Exit For
Exit Sub
End If

For I = 1 To Len(A)
j = InStr(Ber, ":")
Set r = Range(Ber)
sc = r.Column 'erste Spalte
ec = r.Columns.Count + r.Column - 1 'letzte Spalte
oc = Stat 'Offenspalte
For I = 1 To Cells(Rows.Count, oc).End(xlUp).Row
If Cells(I, oc) = "offen" Then
For j = sc To ec
A = Cells(I, j).Interior.ColorIndex
If A = 3 Or A = 50 Or A = 6 Then 'tatsächliche Farbindizees einsetzen
B = B + 1
Exit For 'Wenn weggelassen, werden Zellen gezählt, so Zeilen
End If
Next j
End If
Next I
B = Worksheets("Werte").Range(ZelleVBM).Value

Call FarbigeFelderZaehlen
End Sub



Holger schrieb am 08.09.2008 17:56:39:

Hallo sabine,
ich gehe davon aus, dass
1. die Spalte mit den "offen" die drittletzte des Bereichs sein soll, der durchsucht wird. Sonst musst du die Zeile "oc = ec - 2 'Offenspalte" so anpassen, dass in oc dann die Spaltennummer steht.
2. Zeilen, in denen die Hintergrundfarben mindestens einmal auftreten, als Ganzes und für alle Farben zusammen gezählt werden sollen. Ob die Colorindizees in Zeile "If a = 3 Or a = 4 Or a = 6 Then 'tatsächliche Farbindizees einsetzen" stimmen, musst du prüfen und ggf. anpassen. Grün könnte auch 43 sein. Du kannst eine Zelle mit der Hintergrundfarbe markieren und folgendes Makro laufenlassen, um den Index anzeigen zu lassen:
Sub Farbindex_anzeigen()
MsgBox Selection.Interior.ColorIndex
End Sub
3. das Ergebnis (Summe aller Zeilen mit entsprechenden Hintergrundfarben) in die erste freie Zelle der Spalte A ausgegeben werden soll. Ansonsten die Zeile "Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1) = b"
anpassen.
Wenn du Zellen zählen willst, lässt du Zeile "Exit For 'Wenn weggelassen, werden Zellen gezählt, so Zeilen" weg oder setzt einen Apostroph vorweg.

Sub Farbenauslesen()
For i = 1 To Cells(Rows.Count, 16).End(xlUp).Row
If Left(Cells(i, 16), 2) = "TI" Then Exit For
Next i
If i > Cells(Rows.Count, 16).End(xlUp).Row Then
MsgBox ("Kein TI gefunden!")
Exit Sub
End If
Ber = InputBox("Anfangsspalte:Endspalte" + vbCrLf + vbCrLf + "Beispiel: D:AC", "Suchbereich")
a = "abcdefghijklmnopqrstuvwxyz:"
For i = 1 To Len(a)
If InStr(a, Mid(LCase(Ber), i, 1)) = 0 Then
MsgBox "Falsches Eingabeformat!"
Exit Sub
End If
Next i
j = InStr(Ber, ":")
If j = 0 Then MsgBox "Falsches Eingabeformat!": Exit Sub
Set r = Range(Ber)
sc = r.Column 'erste Spalte
ec = r.Columns.Count + r.Column - 1 'letzte Spalte
oc = ec - 2 'Offenspalte
For i = 1 To Cells(Rows.Count, oc).End(xlUp).Row
If Cells(i, oc) = "offen" Then
For j = sc To ec
a = Cells(i, j).Interior.ColorIndex
If a = 3 Or a = 4 Or a = 6 Then 'tatsächliche Farbindizees einsetzen
b = b + 1
Exit For 'Wenn weggelassen, werden Zellen gezählt, so Zeilen
End If
Next j
End If
Next i
Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1) = b
End Sub

Gruß
Holger


sabine schrieb am 08.09.2008 11:43:53:

Hallo Holger,

also:
In Spalte 16 können verschiedene Buchstaben und Zahlenkombinationen stehen, wenn in einer die ersten beiden Buchstaben TI sind, dann soll das Makro anfangen zu zählen.
Dann soll das Makro in einem Bereich, durchlaufen und schauen, ob die hintergrundfarbe,gelb,rot oder grün vorhanden ist. Diesen Bereich soll man über zwei Spalten (Startspalte/Endspalte) eingeben können.
Wenn diese Hintergrundfarbe vorhanden ist, dann sollen in der 3. letzten Spalte geprüft werden, ob nicht das Wort offen enthalten ist. Wenn etwas anderes als offen in dieser Spalte zählt, darf diese Zeile gezählt werden.
Dies für alle benutzten Zeilen wiederholen und dann die Summe in einer Zeile ausgegeben werden.

offen wird immer kleingeschrieben, TI immer groß.

Ich hoffe das war jetzt verständlich.

Besten Dank schon mal.
Gruß
Sabine



Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Farben auslesen und bestimmte Kriterien zählen
17.09.2008 16:07:19 Sabine
NotSolved
18.09.2008 16:03:20 Sabine
NotSolved
20.09.2008 12:13:16 Holger
NotSolved
21.09.2008 10:15:36 Holger
NotSolved