Thema Datum  Von Nutzer Rating
Antwort
05.09.2008 07:56:49 sabine
NotSolved
05.09.2008 13:54:20 Holger
NotSolved
05.09.2008 15:30:29 Sabine
NotSolved
05.09.2008 19:47:43 Holger
NotSolved
Rot Aw:Aw:Aw:Aw:Farben auslesen und zählen
08.09.2008 11:43:53 sabine
NotSolved
08.09.2008 17:56:39 Holger
NotSolved
15.09.2008 10:05:49 Sabine
NotSolved

Ansicht des Beitrags:
Von:
sabine
Datum:
08.09.2008 11:43:53
Views:
1032
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:Aw:Farben auslesen und zählen
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


Holger schrieb am 05.09.2008 19:47:43:

Hallo Sabine,
deine Spezifikation dessen, was dein Ziel ist, hat sich anscheinend verändert und ist noch unklarer als vorher. Ich finde es aber dennoch gut, dass du wenigstens versuchst, selbst ein Programm zu schreiben.
Schreibe einmal deine genauen Wünsche auf. Dabei geht es z.B. um folgende Fragen:
Wo ist der zu durchsuchende Wertebereich? Wie wird er begrenzt?
Soll nach der Hintergrundfarbe, der Schriftfarbe oder nach einem Text mit den Farbnamen gesucht werden?
In welcher Spalte stehen die "offen" und befinden sich die "offen" in derselben Zeile wie der zu durchsuchende Text? Ist "offen" immer klein geschrieben?
In welcher Zeile steht "TI"? Soll das Makro, wenn irgendwo in Spalte P "TI" steht, gar nicht erst anfangen zu zählen? Oder soll, wenn in einer Zeile "TI" steht, diese Zeile nicht mitgezählt werden? Steht nur "TI" in der Zelle/den Zellen und immer in dieser Form?
In welchen Zellen soll für die einzelnen Farben hochgezählt werden?
Soll, wenn z.B. Hintergrund und Schriftfarbe beide rot sind, die entsprechende Zelle um 2 erhöht werden?
Vielleicht kann ich dir dann weiterhelfen.
Gruß
Holger


Sabine schrieb am 05.09.2008 15:30:29:

Hallo Holger,

erstmal danke für deine schnelle Hilfe. Ich habe mal das Makro so angepasst wie ich es brauche. Leider habe ich bei " If Cells(z.Row, Suchspalte) <> "offen" Then" ein Problem. Kannst du mir sagen, was ich falsch gemacht habe.
Dieses Makro darf nur anfangen zu zählen wenn es vorher in der Spalte p die beiden Buchstaben TI findet.
Eventuell ist dies mein Problem.

Ich hoffe du kannst mir helfen.

danke schonmal.

Gruß sabine

Sub farbenauslesen()

' 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
VBM = Bis2 - 2

' Spalten
' In diesen Zellen stehen jeweils die Informationen über die geprüften Spalten (Start bis End - Spalte)
TabelleMitSpalteninfo = "Werte"
ZelleMitStartspalte = "F65"
ZelleMitEndspalte = "F66"


' Wo stehen die Anzahl der Farben???
TabellemitFarben = "Werte"
anzahlZeilen = Bis - Von + 1
Zelleipgen = "B67"

ipgen = 0

Startspalte = Worksheets(TabelleMitSpalteninfo).Range(ZelleMitStartspalte).Value
EndSpalte = Worksheets(TabelleMitSpalteninfo).Range(ZelleMitEndspalte).Value

MeineRange = Startspalte & Von & ":" & EndSpalte & Bis

' Anzahl der Spalten die geprüft werden sollen
AnzahlSpalten = Worksheets(MeineTabelle).Range(MeineRange).Columns.Count

Worksheets("Werte").Range("I65").Value = AnzahlSpalten

Suchspalte = VBM 'Spalte mit de 'offen'

z = anzahlZeilen

If Cells(z.Row, Suchspalte) <> "offen" Then
ElseIf Left(Worksheets(MeineTabelle).Cells(j, 16).Value, 2) <> "TI" Then
A = z.Interior.ColorIndex
If A = 3 Then ipgen = ipgen + 1
If A = 50 Then ipgen = ipgen + 1
If A = 6 Then igpgen = igpgen
A = z.Font.ColorIndex
If A = 3 Then igpgen = igpgen + 1
If A = 50 Then igpgen = igpgen + 1
If A = 6 Then igpgen = igpgen + 1
End If

End Sub


Holger schrieb am 05.09.2008 13:54:20:

Hallo Sabine,
quick and dirty. Du musst das Makro an deine Gegebenheiten anpassen (Zellbereiche). Es wertet sowohl Text- als auch Hintergrundfarben an. Ob die Indexwerte deinen Farben entsprechen, musst du auch prüfen!
Sub farbenauslesen()
Suchspalte = 4 'Spalte mit de 'offen'
rZ = 1 'Zahlzelle für rot, Zeile
rS = 5
grZ = 2 'Zahlzelle für grün
grS = 5
geZ = 3 'Zahlzelle für gelb
geS = 5
For Each z In Range("A1:C5") 'Dein Suchbereich
If Cells(z.Row, Suchspalte) <> "offen" Then
a = z.Interior.ColorIndex
If a = 3 Then Cells(rZ, rS) = Cells(rZ, rS) + 1
If a = 4 Then Cells(grZ, grS) = Cells(grZ, grS) + 1
If a = 6 Then Cells(geZ, geS) = Cells(geZ, geS) + 1
a = z.Font.ColorIndex
If a = 3 Then Cells(rZ, rS) = Cells(rZ, rS) + 1
If a = 4 Then Cells(grZ, grS) = Cells(grZ, grS) + 1
If a = 6 Then Cells(geZ, geS) = Cells(geZ, geS) + 1
End If
Next
end sub
Gruß
Holger


sabine schrieb am 05.09.2008 07:56:49:

Hallo zusammen ,
habe folgendes Problem.
Ich möchte mit VBA in einem Zellbereich, rot grün oder gelb auslesen, wenn diese Farben vorhanden sind, soll in einer anderen Spalte geprüft werden, ob dort nicht "offen" steht. Zeilen auf die diese Kriterien zu treffen, sollen gezählt und in einer Zelle ausgegeben werden.

Ich bin um schnelle Hilfe dankbar.

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
05.09.2008 07:56:49 sabine
NotSolved
05.09.2008 13:54:20 Holger
NotSolved
05.09.2008 15:30:29 Sabine
NotSolved
05.09.2008 19:47:43 Holger
NotSolved
Rot Aw:Aw:Aw:Aw:Farben auslesen und zählen
08.09.2008 11:43:53 sabine
NotSolved
08.09.2008 17:56:39 Holger
NotSolved
15.09.2008 10:05:49 Sabine
NotSolved