Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Formel soll 2 Bedingungen errechnen, wer kann helfen?





Frage

Hallo, möchte in der Zelle N3 die Anzahl eines Textes (½) in schwarzer Schrift berechnen. Die zu berechnenden Zellen sind C3 bis I3. Wer kann helfen? Gruß Werner [*][sup][i] *Threadedit* 23:23:21, 14.07.2008 Admininfo: Führ bitte einen Thread nicht fort indem du Weitere eröffnest, und vermeide Mehrfachanfragen. Die Datenbank und User werden es dir danken. Siehe [u][url=https://supportnet.de/faqsthread/840]FAQ 2, #3[/url][/u].[/i][/sup]

Antwort 1 von Saarbauer

Hallo,

da deine Beschribung des Problems nicht eindeutig ist , nur ein Vorschlag

=Länge(C3)+Länge(D3).....

sonst ist eine genauere Erläuterung erforderlich

Gruß

Helmut

Antwort 2 von lorf55

Hallo miteinander,
wenn ich das hier und https://supportnet.de/threads/2127935 richtig verstehe möchtest du, Werner, dass als Zählkriterium nicht nur das Symbol "½" bzw. "1", sondern auch die Schriftfarbe dieses Wertes benutzt wird.
Also ich behaupte mal, das geht nicht ohne VBA.
Oder doch?

Gruß
lorf

Antwort 3 von Piroska

Hallo lorf,

genau so ist es.

Wer kann mir eine solche VBA erstellen????

Windows XP
Excel 2007

In den Zellen C3, F3, I3 steht "½" , mit der Schriftfarbe schwarz.
In Zelle D3, steht "1" , mit der Schriftfarbe schwarz.
In Zelle E3, steht "1" , mit der Schriftfarbe rot
In den Zellen G3, H3 steht "½" , mit der Schriftfarbe rot.

In Zelle N3 soll die Summe (in schwarzer Schrift stehenden Symbole "½") der Zellen C3:I3 stehen.
In Zelle N4 soll die Summe (in schwarzer Schrift stehenden "1") der Zellen C3:I3 stehen.
In Zelle O3 soll die Summe (in roter Schrift stehenden Symbole "½") der Zellen C3:I3 stehen.
In Zelle O4 soll die Summe (in roter Schrift stehenden "1") der Zellen C3:I3 stehen.

Also in Zelle N3 müste die Summe 3 sein,
in Zelle N4 die Summe 1,
in Zelle O3 die Summe 2
und in Zelle O4 die Summe 1

Antwort 4 von coros

Hallo Piroska,

nachfolgendes Makro sollte das machen, was Du Dir vorgestellt hast.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

 Option Explicit

Sub ZÄHLEN()
Dim rng As Range
Dim iSum1 As Variant
Dim iSum2 As Variant
Dim iSum3 As Variant
Dim iSum4 As Variant
For Each rng In Range("A3:M3")
    If rng.Text = "1/2" And rng.Font.ColorIndex = 1 Then iSum1 = iSum1 + 1
    If rng.Text = "1" And rng.Font.ColorIndex = 1 Then iSum2 = iSum2 + 1
    If rng.Text = "1/2" And rng.Font.ColorIndex = 3 Then iSum3 = iSum3 + 1
    If rng.Text = "1" And rng.Font.ColorIndex = 3 Then iSum4 = iSum4 + 1
Next
Range("N3") = iSum1
Range("N4") = iSum2
Range("O3") = iSum3
Range("O4") = iSum4
End Sub


Hier wird in den Zellen A3 bis M3 nach den Kriterien gesucht. Wenn gefunden, wird die entsprechende Variable um den Wert 1 erhöht. Am Ende werden in den Zellen N3/ 4 und O3/ 4 das Ergebnis ausgegeben.

Ich hoffe, Du meintest das so.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von Piroska

Hallo Oliver,

das Prinzip wird schon richtig sein, nur möchte ich in den Zellen C3:I3 nach den genannten Kriterien ((½ in schwarzer-),(½ in roter-), (1 in schwarzer-) und 1 in roter Schriftfarbe)),suchen. Die Ergebnisse sollen dan in den Zellen (N3,N4,O3 undO4), wie zuvor beschrieben, erscheinen.
Die nächsten Zellen Reihe wäre dann C5:I5 = Ergebnisse in N5, N6, O5, O6.
Die nächsten Zellen Reihe wäre dann C7:I7 = Ergebnisse in N7, N8, O7, O8.
Die nächsten Zellen Reihe wäre dann C9:I9 = Ergebnisse in N9, N10, O9, O10.
u.s.w
bis zur Zellenreihe C31:I31 = Ergebnisse in N31, N32, O31, O32.
Dann habe ich noch das Problem mit dem Button erstellen.
Habe in Deiner Anleitung nachgesehen, leider ist es dort für Excel 2003 ausgelegt, ich brauche aber eine Anleitung für Excel 2007 (Windows XP).

Mit der von mir erstellten Tabelle wollte ich Excel 2007 einmal ausprobieren, die Tabelle ist aber so komplex geworden, daß ich sie nicht noch einmal in Excel 2003 gestallten möchte.

Dann habe ich mir noch Dein Addin "Symbolleistenvergleich Excel 2003=>2007" heruntergeladen, will ich ihn starten, gibt er mir den Fehler: Laufzeitfehler(53) an.

Probleme, Probleme, Probleme...........................................

Gruß
Werner

Antwort 6 von meinTipp

Hallo Werner,
ich habe das ganze mal als Funktion geschrieben (getestet mit XL2003).
Kopiere diesen Code mal in ein normales Modul.
Option Explicit

Function ZähleWennString_mit_Farbe(SuchRange As Range, SuchChar As String, SuchFarbe As Integer) As Long
Dim rg As Range
For Each rg In SuchRange
    If rg.Value = SuchChar And rg.Font.ColorIndex = SuchFarbe Then
        ZähleWennString_mit_Farbe = ZähleWennString_mit_Farbe + 1
    End If
Next rg
End Function

Sub zeige_SuchFarbe()
MsgBox "Colorindex der Zeichenfarbe " & Selection.Font.ColorIndex
End Sub


Zitat:
In Zelle N3 soll die Summe (in schwarzer Schrift stehenden Symbole "½") der Zellen C3:I3 stehen.

Dann in Zelle N3 =ZähleWennString_mit_Farbe(C3:I3;"½";-4105)
Die gesuchte Zellfarbe ermittelst du mit Sub zeige_SuchFarbe().
Selektiere die Zelle von der du die Farbe der Schrift haben möchtest und rufe zeige_SuchFarbe() auf.
Zitat:
In Zelle O4 soll die Summe (in roter Schrift stehenden "1") der Zellen C3:I3 stehen.

Wenn dein Rot den Wert 3 hat, dann in Zelle O4 =ZähleWennString_mit_Farbe(C3:I3;"1";3)

Gruss Rolf

Antwort 7 von Piroska

Hallo Rolf,

das klappt alles prima, vielen Dank für Deine Mühe, hast mir eine große Last genommen.

Ein kleiner Haken ist noch dabei, ich muß die Zellen immer kopieren, um sie dann an anderer Stelle wieder einfügen.
Gehe ich aber auf eine Zelle z.B. mit einer roten 1 und wechel dann mit Schriftfarbe schwarz, färbt sich die 1 schwarz, aber es wird nicht gezählt.
Vielleicht hast Du noch eine Idee!
Ansonsten muß ich halt die Zellen immer kopieren, was den Nachteil hat, daß die Zellen verschiedene Rahmen haben, und somit mit kopiert werden, dann muß ich die Zellen Rahmenmäßig nacharbeiten.

Vielen Dank nochmal!

Gruß
Werner

Antwort 8 von meinTipp

Hallo Werner,
ergänze mal die Funktion mit Application.Volatile
Function ZähleWennString_mit_Farbe(SuchRange As Range, SuchChar As String, SuchFarbe As Integer) As Long
Dim rg As Range
Application.Volatile
For Each rg In SuchRange
    If rg.Value = SuchChar And rg.Font.ColorIndex = SuchFarbe Then
        ZähleWennString_mit_Farbe = ZähleWennString_mit_Farbe + 1
    End If
Next rg
End Function

Da aber die Farbänderung kein Ereignis auslöst (auch kein Calculation), so musst du nach einer Farbänderung das Calculation-Ereignis per Hand (Taste F9) auslösen.

Gruss Rolf

Antwort 9 von Piroska

Hallo Rolf,

jetzt ist alles perfect.

Ich bedanke mich recht herzlich bei Dir.

Gruß
Werner

Antwort 10 von corosOhneCockies

Hallo Werner,

sorry, dass ich erst jetzt auf Deine Frage antworte, aber ich war vorher verhindert. Aber wie ich sehe, hast Du ja eine Lösung bekommen.

Zu dem AddIn: Lade Dir das AddIn nochmal herunter, ich habe den Fehler behoben.
Noch eine kurze Frage zu dem Fehler: Ist das Betriebssystem auf Deinem PC Windows Vista? Wenn ja (ich gehe stark davon aus), kannst Du mal bitte in dem Ordner „Programme“ irgend eine Datei mit der rechten Maustaste anklicken, in dem Menü dann „Eigenschaften“ auswählen und im Registerreiter „Allgemein“ in der Zeile „Ort“ nachsehen, ob Dort bei Dir C:\Programme\....“ oder „C:\Program Files\...“ steht? Ich gehe stark davon aus, dass dort anders als bei Vista üblich „C:\Programme\“ steht.
Wenn Du mir dazu eine kurze Info zukommen lassen kannst, wäre ich Dir dankbar.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: