Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
868to872
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
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA+MsgBox

VBA+MsgBox
08.05.2007 14:49:00
Oli
Hallo,
ich möchte in einer Tabelle ,in welcher, zeilen verschiedene Farben haben, die jeweiligen Farben mit Hilfe eines Makro´s zählen. Die richtigen Zahlen sollen dann in einer MSgBox dargestellt werden.
Geht das überhaupt. Die Farbe bezieht sich auf die Schriftfarbe.
z.B. Zeilen 1,3 und 5 sind Rot. 2 und 4 Grün. Dann soll in der Box stehen Rot=3 und Grün=2.
Vielen Dank für eure Bemühungen.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA+MsgBox
08.05.2007 15:34:18
Reinhard
Hallo Oli,
ggf. mußt Du unten "Selection" durch Deinen Bereich ersetzen, sonst sollte das aber gehen.

Sub FarbenZählen()
For Each a In Selection
If a.Font.ColorIndex = 10 Then grün = grün + 1
If a.Font.ColorIndex = 3 Then rot = rot + 1
Next a
erg = MsgBox("Rot ist    " & rot & " mal vertreten" & Chr(13) & _
"Grün ist  " & grün & " mal vertreten." & Chr(13) & _
"", vbInformation, "Häufigkeit von Farben")
End Sub


Gruß Reinhard

AW: VBA+MsgBox
08.05.2007 15:51:00
Peter
Hallo Oli,
standardmäßig hast du 56 Farben, die müsstest du alle definieren um sie der Farbe zuzuordnen.
Ich ordne sie nur dem Farb-Index zu, ohne zu wissen, welche Farbe sich dahinter verbirgt.
Aber schau einmal:


Option Explicit
Public Sub Farben_zaehlen()
Dim lZeile            As Long
Dim aFarbe(1 To 56)   As Variant
Dim aAnzahl(1 To 56)  As Variant
Dim iIndex            As Integer
Dim sText             As String
   For lZeile = 1 To Range("A65536").End(xlUp).Row
      If Range("A" & lZeile).Font.ColorIndex <> 0 Then
         If iIndex = 0 Then
            aFarbe(1) = Range("A" & lZeile).Font.ColorIndex
            aAnzahl(1) = 1
            iIndex = 1
          Else
            For iIndex = 1 To 56
               If aFarbe(iIndex) = Range("A" & lZeile).Font.ColorIndex Then
                  aAnzahl(iIndex) = aAnzahl(iIndex) + 1
                  Exit For
               ElseIf aFarbe(iIndex) = "" Then
                  aFarbe(iIndex) = Range("A" & lZeile).Font.ColorIndex
                  aAnzahl(iIndex) = 1
                  Exit For
               End If
            Next iIndex
         End If
      End If
   Next lZeile
   For iIndex = 1 To 56
      If aFarbe(iIndex) <> "" Then
         sText = sText & aFarbe(iIndex) & " " & aAnzahl(iIndex) & vbCrLf
       Else
         Exit For
      End If
   Next iIndex
   MsgBox sText
End Sub


Gruß Peter

Anzeige
AW: VBA+MsgBox
08.05.2007 16:36:35
Oli
Sorry Peter,
aber das verstehe ich überhaupt nicht!
Gruß
oli

AW: VBA+MsgBox
08.05.2007 16:43:33
Oli
Hi Reinhard,
hatte soweit geklappt nur zählt er die Farben nicht zusammen. Ich habe mal dir mal meine Datei zur Verfügung gestellt. Sind jetzt ingesamt 6 Farben (Standart Schwarz) mit einbezogen. Könntest Du noch mal gucken. Ehrlich gesagt weis ich auch nicht genau, wie ich die Selection ersezten soll.
Danke!!!!

AW: VBA+MsgBox
08.05.2007 16:46:28
Oli
Sry,
der Code fehlte noch!!

Die Datei https://www.herber.de/bbs/user/42348.xls wurde aus Datenschutzgründen gelöscht


Anzeige
AW: VBA+MsgBox
10.05.2007 08:49:00
Oli
Hallo Peter,
Super lieben Dank.
Echt Klasse!
Gruß Oli

113 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige