Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA+MsgBox

Forumthread: 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.

Anzeige

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

Anzeige
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!!!!

Anzeige
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


AW: VBA+MsgBox
09.05.2007 22:29:38
Peter
Hallo Oli,
hier ist deine Mappe mit zwei Makros zum Farben zählen.
https://www.herber.de/bbs/user/42388.xls
Gruß Peter

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

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige