Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
VBA-Problem bei meinem EXCEL-Tool
#1
Hallo,

nach längerer (Google-)Recherche habe ich für mein Problem noch keine Lösung gefunden. Jetzt habe ich mit meinen bescheidenen VBA-Kenntnissen einen Code entwickelt, der meine erwarteten Ergebnisse bringt.
ABER: die Formel muss ich für sehr viele Zeilen erweitern, weswegen ich eine Optimierung benötige, aber alle meine Versuche sind gescheitert.

[Bild: vghg1y.jpg]

(Zeile 1 = "RangeA"; Zeile 2 ist 1, 2, 3, 4, ...)

Es geht darum, dass die Werte von Range A mit den Werten mit Range B wie folgt verglichen werden:
Zeile 2 mit Zeile 2
Zeile 2 mit Zeile 3
Zeile 2 mit Zeile 4
usw....
--> das Ergebnis kommt in Spalte V ab Zeile 2

dann
Zeile 3 mit Zeile 2
Zeile 3 mit Zeile 3
Zeile 3 mit Zeile 4
usw....
--> das Ergebnis kommt in Spalte W ab Zeile 2

Dafür habe ich diesen Code:

[Bild: 15gcsxs.jpg]

und hier zum kopieren:

Sub zählen1()
'Zählen Zeile 2 aus Range A mit Zeilen aus Range B
Worksheets(4).Cells(2, 22) = Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("O2")) _
+ _
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("P2")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("Q2")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("R2")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("S2")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("T2"))

Worksheets(4).Cells(3, 22) = Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("O3")) _
+ _
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("P3")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("Q3")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("R3")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("S3")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("T3"))

Worksheets(4).Cells(4, 22) = Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("O4")) _
+ _
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("P4")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("Q4")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("R4")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("S4")) + _
_
Application.WorksheetFunction.CountIf(Range("A2:L2"), Range("T4"))

'Zählen Zeile 3 aus Range A mit Zeilen aus Range B
Worksheets(4).Cells(2, 23) = Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("O2")) _
+ _
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("P2")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("Q2")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("R2")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("S2")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("T2"))

Worksheets(4).Cells(3, 23) = Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("O3")) _
+ _
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("P3")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("Q3")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("R3")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("S3")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("T3"))

Worksheets(4).Cells(4, 23) = Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("O4")) _
+ _
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("P4")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("Q4")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("R4")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("S4")) + _
_
Application.WorksheetFunction.CountIf(Range("A3:L3"), Range("T2"))
End Sub

Und diesen müsste ich jetzt für die vielen Zeilen nach unten fortschreiben; aber da gibts bestimmt eine andere, bessere Lösung.

Der Einfachheit halber, habe ich Range A und Range B in der gleichen Tabelle; in der Endfassung ist dann Range B in einer anderen Tabelle wie Range A. Aber das müsste dann anpassbar sein.

Besten Dank für eine Hilfe. Nachdem ich hier diesen eigenen Bereich entdeckt habe, finde ich hier ja vielleicht einen Experten Smile
Zitieren

#2
Hallo Meisterkeks, Wink

zum Verständnis für mich bitte noch ein paar ergänzende Informationen :

1. Ich denke mal, daß sich die Vergleiche mit der Zeile 4 bis zur Zeile n fortsetzen ?

2. Die Ergebnisse dann in den Spalten ab X eingetragen werden sollen ?

3. In der Tabelle nach rechts also n - Spalten hinzugegügt werden ?

4. Wieviel Zeilen umfaßt der Bereich von Range A - - also wie groß ist n ?


Beste Grüße

Peter K.
.
Zitieren

#3
Zitat:Original von Peter K.
Hallo Meisterkeks, Wink

zum Verständnis für mich bitte noch ein paar ergänzende Informationen :

1. Ich denke mal, daß sich die Vergleiche mit der Zeile 4 bis zur Zeile n fortsetzen ?
JA bis Zeile 201 (derzeit)

2. Die Ergebnisse dann in den Spalten ab X eingetragen werden sollen ?
JA, beginnend ab V 200 Spalten

3. In der Tabelle nach rechts also n - Spalten hinzugegügt werden ?
Ja, siehe 2.

4. Wieviel Zeilen umfaßt der Bereich von Range A - - also wie groß ist n ?
siehe 1.: bis Zeile 201 derzeit


Beste Grüße

Peter K.
.

Antworten eingefügt; die Range B hat derzeit 5.350 Zeilen
Zitieren

#4
Hallo Meisterkeks, Wink

Bitte mal die 201 Zeilen von Range A als TEXT hier reinsetzen.

Ebenso die ersten 201 Zeilen von Range B

Zum rauskopieren.


Zum eigentlichen Problem :

Ich wollte das mit

SUMMENPRODUKT(ZÄHLENWENN($A2:$L2;$O$2:$T$2))

verkürzen und als Application.WorksheetFunction.

nach VBA umsetzen.

Da mault VBA aber immer : Nicht als Option zugelassen.


Irgendwo im Netz habe ich gelesen, daß Microsoft selbst nicht weiß,

warum das nicht geht.

Das scheint schon länger so zu sein.


Bleibt also nur die gute alte FOR - NEXT - Schleife

mit Deinem Abfragebandwurm.


Schon mal damit probiert ?

Beste Grüße

Peter K.
.
Zitieren

#5
Range A:

1 2 3 4 5 6 9 14 15 23 26 30
1 2 3 4 7 12 13 26 27 28 31 34
1 2 3 4 8 10 11 16 18 19 25 35
1 2 3 4 17 20 21 22 24 29 32 33
1 2 11 12 14 16 20 23 24 25 27 32
1 4 8 13 16 17 21 22 24 26 30 35
1 5 6 7 10 18 20 24 26 28 30 32
1 5 6 8 12 19 22 27 29 30 33 35
1 5 6 11 13 16 17 21 25 30 31 34
1 7 8 12 14 17 19 21 23 26 28 35
1 7 9 11 15 16 22 25 26 28 29 33
1 8 9 13 15 19 20 24 31 32 34 35
1 9 10 12 15 17 18 21 27 30 32 34
1 9 10 13 14 18 22 23 29 31 33 34
2 3 5 7 11 17 23 25 31 32 33 35
2 4 5 7 11 12 13 15 19 21 22 32
2 5 8 10 15 20 23 25 26 27 29 31
2 5 14 15 16 17 18 24 28 33 34 35
2 6 7 8 10 12 13 14 17 24 25 33
2 6 11 14 17 19 20 23 26 28 29 34
2 6 14 16 18 21 22 26 27 31 32 35
2 7 9 12 13 16 18 20 23 29 30 35
2 8 9 10 21 22 23 25 28 30 32 34
2 9 11 17 19 23 24 26 27 30 31 33
3 5 8 11 13 18 21 23 24 27 28 29
3 5 10 12 16 17 19 20 22 23 26 34
3 6 7 9 10 16 19 20 21 24 29 31
3 6 8 9 11 12 18 24 26 32 33 34
3 6 9 13 17 19 20 22 25 27 28 35
3 7 8 11 14 15 17 18 20 22 30 31
3 10 13 14 15 16 19 27 28 30 32 33
3 12 14 15 21 24 25 26 29 30 34 35
4 5 7 8 9 14 16 17 27 29 32 34
4 5 9 10 11 13 14 20 21 26 33 35
4 5 9 12 14 18 19 22 24 25 28 31
4 6 7 10 11 15 22 23 24 27 34 35
4 6 8 12 15 16 20 21 23 28 31 33
4 6 13 15 17 18 19 23 25 26 29 32
4 7 12 18 19 20 21 25 27 30 33 34
4 10 11 12 16 17 28 29 30 31 32 35
1 2 3 4 5 6 9 14 15 23 26 30
1 2 3 4 7 12 13 26 27 28 31 34
1 2 3 4 8 10 11 16 18 19 25 35
1 2 3 4 17 20 21 22 24 29 32 33
1 2 11 12 14 16 20 23 24 25 27 32
1 4 8 13 16 17 21 22 24 26 30 35
1 5 6 7 10 18 20 24 26 28 30 32
1 5 6 8 12 19 22 27 29 30 33 35
1 5 6 11 13 16 17 21 25 30 31 34
1 7 8 12 14 17 19 21 23 26 28 35
1 7 9 11 15 16 22 25 26 28 29 33
1 8 9 13 15 19 20 24 31 32 34 35
1 9 10 12 15 17 18 21 27 30 32 34
1 9 10 13 14 18 22 23 29 31 33 34
2 3 5 7 11 17 23 25 31 32 33 35
2 4 5 7 11 12 13 15 19 21 22 32
2 5 8 10 15 20 23 25 26 27 29 31
2 5 14 15 16 17 18 24 28 33 34 35
2 6 7 8 10 12 13 14 17 24 25 33
2 6 11 14 17 19 20 23 26 28 29 34
2 6 14 16 18 21 22 26 27 31 32 35
2 7 9 12 13 16 18 20 23 29 30 35
2 8 9 10 21 22 23 25 28 30 32 34
2 9 11 17 19 23 24 26 27 30 31 33
3 5 8 11 13 18 21 23 24 27 28 29
3 5 10 12 16 17 19 20 22 23 26 34
3 6 7 9 10 16 19 20 21 24 29 31
3 6 8 9 11 12 18 24 26 32 33 34
3 6 9 13 17 19 20 22 25 27 28 35
3 7 8 11 14 15 17 18 20 22 30 31
3 10 13 14 15 16 19 27 28 30 32 33
3 12 14 15 21 24 25 26 29 30 34 35
4 5 7 8 9 14 16 17 27 29 32 34
4 5 9 10 11 13 14 20 21 26 33 35
4 5 9 12 14 18 19 22 24 25 28 31
4 6 7 10 11 15 22 23 24 27 34 35
4 6 8 12 15 16 20 21 23 28 31 33
4 6 13 15 17 18 19 23 25 26 29 32
4 7 12 18 19 20 21 25 27 30 33 34
4 10 11 12 16 17 28 29 30 31 32 35
1 2 3 4 5 6 9 14 15 23 26 30
1 2 3 4 7 12 13 26 27 28 31 34
1 2 3 4 8 10 11 16 18 19 25 35
1 2 3 4 17 20 21 22 24 29 32 33
1 2 11 12 14 16 20 23 24 25 27 32
1 4 8 13 16 17 21 22 24 26 30 35
1 5 6 7 10 18 20 24 26 28 30 32
1 5 6 8 12 19 22 27 29 30 33 35
1 5 6 11 13 16 17 21 25 30 31 34
1 7 8 12 14 17 19 21 23 26 28 35
1 7 9 11 15 16 22 25 26 28 29 33
1 8 9 13 15 19 20 24 31 32 34 35
1 9 10 12 15 17 18 21 27 30 32 34
1 9 10 13 14 18 22 23 29 31 33 34
2 3 5 7 11 17 23 25 31 32 33 35
2 4 5 7 11 12 13 15 19 21 22 32
2 5 8 10 15 20 23 25 26 27 29 31
2 5 14 15 16 17 18 24 28 33 34 35
2 6 7 8 10 12 13 14 17 24 25 33
2 6 11 14 17 19 20 23 26 28 29 34
2 6 14 16 18 21 22 26 27 31 32 35
2 7 9 12 13 16 18 20 23 29 30 35
2 8 9 10 21 22 23 25 28 30 32 34
2 9 11 17 19 23 24 26 27 30 31 33
3 5 8 11 13 18 21 23 24 27 28 29
3 5 10 12 16 17 19 20 22 23 26 34
3 6 7 9 10 16 19 20 21 24 29 31
3 6 8 9 11 12 18 24 26 32 33 34
3 6 9 13 17 19 20 22 25 27 28 35
3 7 8 11 14 15 17 18 20 22 30 31
3 10 13 14 15 16 19 27 28 30 32 33
3 12 14 15 21 24 25 26 29 30 34 35
4 5 7 8 9 14 16 17 27 29 32 34
4 5 9 10 11 13 14 20 21 26 33 35
4 5 9 12 14 18 19 22 24 25 28 31
4 6 7 10 11 15 22 23 24 27 34 35
4 6 8 12 15 16 20 21 23 28 31 33
4 6 13 15 17 18 19 23 25 26 29 32
4 7 12 18 19 20 21 25 27 30 33 34
4 10 11 12 16 17 28 29 30 31 32 35
1 2 3 4 5 6 9 14 15 23 26 30
1 2 3 4 7 12 13 26 27 28 31 34
1 2 3 4 8 10 11 16 18 19 25 35
1 2 3 4 17 20 21 22 24 29 32 33
1 2 11 12 14 16 20 23 24 25 27 32
1 4 8 13 16 17 21 22 24 26 30 35
1 5 6 7 10 18 20 24 26 28 30 32
1 5 6 8 12 19 22 27 29 30 33 35
1 5 6 11 13 16 17 21 25 30 31 34
1 7 8 12 14 17 19 21 23 26 28 35
1 7 9 11 15 16 22 25 26 28 29 33
1 8 9 13 15 19 20 24 31 32 34 35
1 9 10 12 15 17 18 21 27 30 32 34
1 9 10 13 14 18 22 23 29 31 33 34
2 3 5 7 11 17 23 25 31 32 33 35
2 4 5 7 11 12 13 15 19 21 22 32
2 5 8 10 15 20 23 25 26 27 29 31
2 5 14 15 16 17 18 24 28 33 34 35
2 6 7 8 10 12 13 14 17 24 25 33
2 6 11 14 17 19 20 23 26 28 29 34
2 6 14 16 18 21 22 26 27 31 32 35
2 7 9 12 13 16 18 20 23 29 30 35
2 8 9 10 21 22 23 25 28 30 32 34
2 9 11 17 19 23 24 26 27 30 31 33
3 5 8 11 13 18 21 23 24 27 28 29
3 5 10 12 16 17 19 20 22 23 26 34
3 6 7 9 10 16 19 20 21 24 29 31
3 6 8 9 11 12 18 24 26 32 33 34
3 6 9 13 17 19 20 22 25 27 28 35
3 7 8 11 14 15 17 18 20 22 30 31
3 10 13 14 15 16 19 27 28 30 32 33
3 12 14 15 21 24 25 26 29 30 34 35
4 5 7 8 9 14 16 17 27 29 32 34
4 5 9 10 11 13 14 20 21 26 33 35
4 5 9 12 14 18 19 22 24 25 28 31
4 6 7 10 11 15 22 23 24 27 34 35
4 6 8 12 15 16 20 21 23 28 31 33
4 6 13 15 17 18 19 23 25 26 29 32
4 7 12 18 19 20 21 25 27 30 33 34
4 10 11 12 16 17 28 29 30 31 32 35
1 2 3 4 5 6 9 14 15 23 26 30
1 2 3 4 7 12 13 26 27 28 31 34
1 2 3 4 8 10 11 16 18 19 25 35
1 2 3 4 17 20 21 22 24 29 32 33
1 2 11 12 14 16 20 23 24 25 27 32
1 4 8 13 16 17 21 22 24 26 30 35
1 5 6 7 10 18 20 24 26 28 30 32
1 5 6 8 12 19 22 27 29 30 33 35
1 5 6 11 13 16 17 21 25 30 31 34
1 7 8 12 14 17 19 21 23 26 28 35
1 7 9 11 15 16 22 25 26 28 29 33
1 8 9 13 15 19 20 24 31 32 34 35
1 9 10 12 15 17 18 21 27 30 32 34
1 9 10 13 14 18 22 23 29 31 33 34
2 3 5 7 11 17 23 25 31 32 33 35
2 4 5 7 11 12 13 15 19 21 22 32
2 5 8 10 15 20 23 25 26 27 29 31
2 5 14 15 16 17 18 24 28 33 34 35
2 6 7 8 10 12 13 14 17 24 25 33
2 6 11 14 17 19 20 23 26 28 29 34
2 6 14 16 18 21 22 26 27 31 32 35
2 7 9 12 13 16 18 20 23 29 30 35
2 8 9 10 21 22 23 25 28 30 32 34
2 9 11 17 19 23 24 26 27 30 31 33
3 5 8 11 13 18 21 23 24 27 28 29
3 5 10 12 16 17 19 20 22 23 26 34
3 6 7 9 10 16 19 20 21 24 29 31
3 6 8 9 11 12 18 24 26 32 33 34
3 6 9 13 17 19 20 22 25 27 28 35
3 7 8 11 14 15 17 18 20 22 30 31
3 10 13 14 15 16 19 27 28 30 32 33
3 12 14 15 21 24 25 26 29 30 34 35
4 5 7 8 9 14 16 17 27 29 32 34
4 5 9 10 11 13 14 20 21 26 33 35
4 5 9 12 14 18 19 22 24 25 28 31
4 6 7 10 11 15 22 23 24 27 34 35
4 6 8 12 15 16 20 21 23 28 31 33
4 6 13 15 17 18 19 23 25 26 29 32
4 7 12 18 19 20 21 25 27 30 33 34
4 10 11 12 16 17 28 29 30 31 32 35


Range B:
31 16 13 28 15 9
2 13 19 42 41 31
36 33 14 16 35 11
8 3 29 9 18 26
15 16 44 1 9 23
48 45 26 46 11 31
1 9 30 24 22 32
15 21 19 16 29 17
39 34 6 5 17 31
19 11 45 40 2 38
39 26 19 18 6 29
12 18 33 29 25 37
20 31 38 19 36 45
29 23 35 3 7 37
15 23 43 38 47 4
4 34 3 5 14 49
2 20 1 37 21 29
5 43 14 32 45 20
40 20 42 25 27 22
31 47 48 25 8 17
9 42 48 40 43 39
33 41 28 22 27 36
14 24 49 33 15 7
45 42 22 43 37 48
30 41 49 29 4 40
48 13 20 41 33 8
10 12 28 45 26 22
12 45 1 26 25 14
12 13 4 3 24 20
34 44 25 48 6 2
28 19 46 41 32 43
26 48 47 33 43 45
4 32 42 22 19 5
47 10 25 9 30 22
7 47 43 39 15 3
17 36 48 39 44 3
17 42 40 4 25 33
45 35 12 14 22 39
28 9 3 33 41 32
41 36 14 22 46 7
28 6 36 8 14 32
26 32 28 39 29 2
32 44 31 24 40 48
10 24 34 27 15 31
24 41 14 19 31 40
8 39 27 10 49 13
23 4 49 34 21 17
16 43 23 35 21 15
22 29 30 49 12 20
22 29 13 44 4 23
32 18 38 5 25 33
43 34 27 13 48 35
14 4 38 25 30 7
11 43 6 19 10 12
31 39 37 28 12 24
45 48 46 11 22 27
46 41 23 25 32 42
19 22 3 29 25 45
17 48 33 18 7 8
4 16 12 31 19 3
38 24 20 12 30 45
25 22 29 5 14 38
5 48 29 31 6 18
8 47 35 24 41 49
19 9 10 3 18 24
30 15 47 41 20 4
36 13 33 19 14 42
27 14 1 47 20 46
22 18 5 13 4 3
34 12 23 24 32 26
46 5 47 45 1 8
42 40 8 36 47 20
15 8 27 49 11 42
20 10 30 13 39 38
10 35 14 16 37 23
15 47 6 4 49 38
18 45 10 6 47 37
15 16 18 25 37 43
41 38 5 32 16 42
5 15 13 49 44 36
26 13 6 36 35 18
1 25 9 28 2 8
24 28 21 13 26 8
48 41 34 32 2 40
6 7 40 9 15 12
32 38 9 40 6 33
20 3 31 17 26 21
4 23 28 27 38 29
30 38 17 16 15 40
1 19 23 40 46 8
27 39 18 22 3 34
7 5 22 43 18 21
7 21 9 45 35 31
45 24 14 48 43 41
15 1 41 36 2 11
47 39 5 25 29 2
47 5 34 9 22 21
23 29 36 40 28 14
37 42 1 25 29 17
1 11 26 33 25 18
2 48 42 1 32 19
5 28 3 43 42 15
12 49 35 2 41 47
28 15 12 32 25 43
9 31 12 23 28 38
25 48 33 34 31 9
18 17 44 15 11 33
20 32 15 35 10 2
13 15 29 16 5 11
20 1 10 49 27 37
7 13 10 16 5 18
33 4 29 14 23 36
1 33 48 4 35 31
44 17 7 14 19 12
31 25 48 45 40 47
22 35 4 40 16 33
9 33 5 6 44 41
33 11 18 49 12 27
44 8 13 14 30 32
40 20 39 2 37 1
27 17 7 16 25 8
23 5 29 10 47 39
5 32 21 49 13 25
36 4 31 22 42 32
9 2 1 27 24 26
1 33 35 20 11 37
12 22 9 19 26 27
33 45 37 5 47 3
37 20 41 5 49 48
17 44 33 7 25 26
29 23 40 18 27 9
39 31 33 28 42 14
32 11 36 38 9 29
2 45 48 17 25 19
21 33 43 4 19 45
16 22 1 21 12 14
27 44 24 38 25 45
35 28 32 10 26 12
10 32 27 25 9 4
44 39 37 46 24 4
42 39 36 7 29 35
48 45 21 27 34 49
17 28 13 44 47 12
40 34 3 4 10 47
27 32 1 19 26 48
27 2 3 35 25 11
33 15 31 19 25 22
36 23 38 13 29 19
23 13 34 25 2 27
18 10 30 6 48 15
17 10 32 33 14 36
15 16 10 46 24 13
9 13 28 47 35 46
40 2 11 38 12 6
4 44 26 1 48 14
47 35 6 39 45 33
19 48 43 3 17 8
44 11 10 41 23 30
48 26 32 6 35 18
7 23 44 8 12 39
47 14 28 8 9 37
15 5 21 39 36 22
40 14 34 22 38 48
7 13 16 6 36 48
32 2 30 38 25 49
15 7 9 25 6 20
1 11 41 27 2 46
24 16 47 49 10 25
18 31 19 26 41 14
6 9 46 22 41 10
4 1 35 19 11 43
28 48 44 18 49 22
29 15 17 42 32 16
47 46 3 21 37 42
6 7 15 42 33 47
27 32 48 20 37 43
24 37 1 21 23 15
4 16 6 20 23 30
14 25 26 38 1 41
13 4 46 19 43 33
48 11 46 14 37 30
16 31 27 36 18 15
11 26 13 25 30 10
43 35 42 44 46 9
13 41 17 45 15 11
39 11 9 22 26 35
41 27 19 26 47 8
11 39 21 12 41 44
10 25 48 49 45 18
27 29 25 10 18 1
23 38 6 1 44 2
45 32 25 40 18 5
2 20 31 37 27 49
28 46 36 34 43 48
11 7 17 36 26 19
20 27 35 30 6 3
5 21 4 10 34 11
31 28 46 34 42 37
44 12 38 6 20 49
27 11 15 31 39 30

sind jeweils 200 Zeilen
Zitieren

#6
Zitat:Original von Peter K.
Bleibt also nur die gute alte FOR - NEXT - Schleife

mit Deinem Abfragebandwurm.


Schon mal damit probiert ?

Beste Grüße

Peter K.
.

Genau daran scheitere ich; da reichen meine VBA-Kenntnisse einfach nicht Mist
Zitieren

#7
Hallo Meisterkeks, Wink


na dann wollen wir doch mal ein wenig Gehirnschmalz

in die FOR / NEXT - Schleife investieren.


Da ja scheinbar das RANGE-Format für die Adressierung

in der Application.WorksheetFunction

zwingend vorgeschrieben zu sein scheint,

muß ich selber erst wieder überlegen, wie ich die

Adress - Indizierung im RANGE-Format beim

Abfragebandwurm hin ferkeln kann.


Ein ganz anderer Ansatz wäre, die Excel-Summenproduktformel

SUMMENPRODUKT(ZÄHLENWENN(A2:L2;O2:T2))

ebenfalls mit einer FOR / NEXT - Schleife

direkt in das Arbeitsblatt einzusetzen.

Dazu müßte man aber wissen, wie oft Du welche Änderungen im Arbeitsblatt vor nimmst.


Hätte aber den Vorteil, daß die Verarbeitung schneller ginge.

Wenn Excel selber rechnet, geht das schneller, als wenn das über ein VBA-Makro berechnet werden muß. Smile


Beste Grüße

Peter K.
.
Zitieren

#8
Danke; das Problem ist bisher, dass ich mit EXCEL-Formeln rechne und die Ressourcen ausgereizt sind (obwohl erst ca. 20 MB);
nun dauert vielleicht dann das Rechnen mit VBA länger, aber dafür würden alle Berechnungen durchgeführt werden können - hoffe ich zumindest :guck:
Zitieren

#9
Zitat:Original von Peter K.

Dazu müßte man aber wissen, wie oft Du welche Änderungen im Arbeitsblatt vor nimmst.

Wenn das Tool mal steht, gibt es kaum noch Änderungen, lediglich die Zahlen als Berechnungsgrundlagen ändern sich immer wieder.

Aber die Lösung wäre vielleicht doch um einiges besser, weil ich dann nicht mit INDEX, INDIREKT usw. arbeiten müste in den Formeln ???
Zitieren

#10
Also die Zahlenreihen in der RANGE A ?

Range B = Ziehungszahlen ?

Wird die RANGE A mal erweitert auf mehr als 12 Zahlen ?
Zitieren



Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
2 Gast/Gäste

Deutsche Übersetzung: MyBB.de, Powered by MyBB 1.8.36, © 2002-2024 Melroy van den Berg.