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

Makro Einträge zählen, mit Bedingungen

Makro Einträge zählen, mit Bedingungen
Thomas
Hallo,
ich möchte folgendes per Makro zählen:
Es steht in den Zellen ab Reihe 4 (bis 58) in
Spalte A .........Spalte E
ABC.................Nein...................zählen ja.................Zähler =1
ABC.................Ja.......................zählen nein.............Zähler =1
XYZ..................Nein...................zählen ja.................Zähler =2
GFD..................Ja.......................zählen nein.............Zähler=2
XYZ..................Nein...................zählen nein..............Zähler=2
Es soll nur gezählt werden, wenn in der Spalte E ein "Nein" steht,
dabei dürfen die Doppelten in Spalte A nur einmal berücksichtigt werden.
Das Ergebnis hier sollte sein: 2
Diesen Wert möchte ich dann als Variable in einem bestehenden Makro weiterführen.
Schon mal vielen Dank
Grüße
Thomas

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro Einträge zählen, mit Bedingungen
30.07.2009 10:58:10
Bowl
So müssts gehn, vlt nicht die eleganteste Lösung aber klappt zumindestens:
Sub Zählen()
For x = 5 To 58
If Cells(x, 5).Value = "Nein" Then
i = i + 1
Cells(x, 7).Value = "Zähler =" & i
End If
Next x
End Sub
Für 7 nur halt die richtige Spalte angeben...
Grüße
AW: Makro Einträge zählen, mit Bedingungen
30.07.2009 10:59:29
Bowl
Hälfte überlesen, entschuldigung
kommt aber noch ;)
Grüße
AW: Makro Einträge zählen, mit Bedingungen
31.07.2009 08:41:01
Tino
Hallo,
hier mal noch eine Version mit einer Funktion.
kommt als Code in ein Modul
Option Explicit 
 
Function Count_A_E_Nein(strSH As String, Optional booMatchCase As Boolean = True) As Long 
Dim oDic As Object 
Dim myAr 
Dim A As Long 
Dim Bereich As Range 
Application.Volatile 
 
With Sheets(strSH) 
 Set Bereich = .Range("A4", .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 4)) 
 
    If Intersect(Bereich, .Rows("1:3")) Is Nothing Then 
        myAr = Bereich 
        Set oDic = CreateObject("Scripting.Dictionary") 
         
        If booMatchCase Then 
            For A = 1 To Ubound(myAr) 
             If myAr(A, 5) = "NEIN" Then 
              oDic(myAr(A, 1) & myAr(A, 5)) = 0 
             End If 
            Next A 
        Else 
            For A = 1 To Ubound(myAr) 
             If LCase(myAr(A, 5)) = "nein" Then 
              oDic(LCase(myAr(A, 1)) & LCase(myAr(A, 5))) = 0 
             End If 
            Next A 
        End If 
     
        Count_A_E_Nein = oDic.Count 
    End If 
 
End With 
Set Bereich = Nothing 
End Function 
 
Sub Beispiel() 
Dim Ergebnis As Long 
 
'Verwendung der Funktion 
'1. Parameter Tabelle wo gesucht werden soll 
'2. Parameter optional Groß und Kleinschreibung beachten 
 
'Beipiel Groß und klein Schreibweise beacheten 
Ergebnis = Count_A_E_Nein("Tabelle2") 
 
'Beipiel Groß und klein Schreibweise nicht beacheten 
Ergebnis = Count_A_E_Nein("Tabelle2", False) 
 
 
End Sub 
Du kannst es aber auch als Formel in Excel verwenden.
 ABCDE
12    
2     
3     
4ABC   NEIN
5ABC   NEIN
6XYZ   NEIN
7GFD   JA
8XYZ   NEIN

Formeln der Tabelle
ZelleFormel
A1=Count_A_E_Nein("Tabelle2")

Gruß Tino
Anzeige
AW: Makro Einträge zählen, mit Bedingungen
03.08.2009 07:31:43
Thomas
Hallo Tino,
vielen Dank für deine Mühe.
Testen kann ich es leider erst in ca. 3 Wo. - ich hab Urlaub.
Ich hatte gehofft, es gibt eine einfachere Lösung, die ich in ein bestehendes Makro einbauen kann.
(Das bestehende Makro liest eine Reihe von Daten aus Excel-Dateien aus und füllt damit eine Tabelle.)
Gruß
Thomas
ist doch einfach einzubauen...
03.08.2009 09:20:13
Tino
Hallo,
die Funktion in ein Modul und in deinem Code wie im Beispiel einbauen.
Gruß Tino

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige