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

ZÄHLENWENN Problem in VBA

ZÄHLENWENN Problem in VBA
30.03.2007 15:05:00
Andreas
Hallo,
ich habe ein Problem und zwar folgendes:
Ich habe ein Makro dass verschiedene Zeilen durchsucht und dabei die Zellinhalte vergleicht. Stimmt ein Wert überein, merkt es sich diese Zelle und fügt es zu einem Range hinzu.
Dieser wird nachher in einen String umgewandelt und dann in eine Excel-Formel hinzugefügt. Allerdings kann es vorkommen dass die Range verschiedene Zeilen beinhaltet. Hier ist dann der Knackpunkt, dass ZÄHLENWENN ja nicht mehrere Bedingungen verarbeiten kann. Wie kann ich das anders lösen? Hat jemand eine Idee?
Vielen Dank schonmal im Vorraus
Andreas
hier das Makro:

Sub test()
Worksheets("Auswertung").Activate
Dim KW As Integer
Dim bigrange As Range
Dim bigrangeA1 As String
For i = 1 To 53
KW = i
Set bigrange = Nothing
For j = 2 To 32
Set s = Worksheets("1. Quartal")
s.Activate
If s.Cells(4, j).Value = KW Then
If bigrange Is Nothing Then
Set bigrange = s.Range(s.Cells(6, j), s.Cells(6, j))
Else
Set bigrange = Application.Union(bigrange, _
s.Range(s.Cells(6, j), s.Cells(6, j)))
End If
ElseIf s.Cells(34, j).Value = KW Then
If bigrange Is Nothing Then
Set bigrange = s.Range(s.Cells(36, j), s.Cells(36, j))
Else
Set bigrange = Application.Union(bigrange, _
s.Range(s.Cells(36, j), s.Cells(36, j)))
End If
'ElseIf s.Cells(64, j).Value = KW Then
'ElseIf...
'ElseIf...
End If
Next
bigrangeA1 = bigrange.Address(False, True, xlA1, True)
Worksheets("Auswertung").Cells(4, i + 10).FormulaLocal = _
"=ZÄHLENWENN(" & bigrangeA1 & ";Init!$F$3)"
Next
End Sub


Um das fette gehts

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

Betreff
Datum
Anwender
Anzeige
AW: ZÄHLENWENN Problem in VBA
30.03.2007 15:51:35
Mag
Hallo,
Ansatz für zwei Bereiche:
=ZÄHLENWENN(A2:D2;">"&$E$2)+ZÄHLENWENN(C5:C6;">"&$E$2)
Gruss
AW: ZÄHLENWENN Problem in VBA
30.03.2007 16:02:00
Mag
...
aber warum erst Range bilden und dann mit Tabellenfunktion auswerten unter VBA?
Besser: Range für Range auszählen
Ansatz:
Dim rng as Range
Set Bereich=...
For each rng in Bereich
If Bedingung=Wahr then x=x+1
next
Gruss
AW: ZÄHLENWENN Problem in VBA
30.03.2007 16:09:00
Andreas
weil ich 20x52 Zellen habe die ich dann beschreiben müsste.
Dann würde .FillDown nicht mehr funktionieren und das wäre mit einer ganzen Menge Mehraufwand verbunden.
Außerdem ändern sich die Daten laufend und die Tabelle soll trotzdem aktuell sein. Und wenn ich bei Worksheet_Activate das Makro ausführen lasse dauert das eine Weile (3 Schleifen mit jeweils 20-50 Durchläufen)
Wenn ich das mit der Tabellenfunktion machen würde wäre das halt elegant. Einmal Makro ausführen (hier: im Jahr) und es bleibt alles aktuell.
Anzeige
AW: ZÄHLENWENN Problem in VBA
30.03.2007 17:35:33
Mag
...
Aber es geht doch so:
Dein zusammengefasster Bereich MyRng ==>
For each rng in MyRng
If Bedingung=Wahr then x=x+1
next
Gruss
AW: ZÄHLENWENN Problem in VBA
30.03.2007 17:39:00
Mag
...
Aber es geht doch so:
Dein zusammengefasster Bereich MyRng ==>
For each rng in MyRng
If rng.value next
Gruss

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige