Thema Datum  Von Nutzer Rating
Antwort
Rot Aggregat-Funktion in VBA
09.10.2020 08:18:45 Max
NotSolved
09.10.2020 08:27:48 Gast80470
NotSolved
09.10.2020 09:27:23 Gast5565
NotSolved
09.10.2020 13:08:35 Gast5238
****
NotSolved
09.10.2020 13:10:33 Gast5238
**
NotSolved
09.10.2020 13:44:55 Gast92309
****
NotSolved
12.10.2020 11:28:36 Gast77683
Solved
12.10.2020 12:14:51 Gast70767
NotSolved

Ansicht des Beitrags:
Von:
Max
Datum:
09.10.2020 08:18:45
Views:
73
Rating: Antwort:
  Ja
Thema:
Aggregat-Funktion in VBA

Hallo allerseits,

ich bin seit einigen Tagen am verzweifeln, weil ich es nicht hinbekomme eine Funktion die ich mit Excel "normal" programmiert habe in VBA umzusetzen. Und zwar handelt es sich um die Aggregat-Funktion.

Folgende Tätigkeit würde ich gerne in Excel über VBA realisieren.

 

Tabelle:

   |      A       |       B       |         C         |   D   |     E      |          F           |         G            |

1 | Bereich  | Kategorie | Anmerkung |        |             | Suchbegriff 1 | Suchbegriff 2  |

2 |     SC     |     1.1        |      abc        |        |    abc   |         1.1         |           SC         |  

|     SK     |     1.1        |       def        |        |    ghi    |

4 |     SC     |     1.1        |      ghi         |        |    mno  |

5 |     SK     |     1.2        |      jkl          |         | #Zahl!  |

6 |     SC     |     1.1        |      mno      |         | #Zahl!  |

 

Hierbei steht folgende Formel im Feld "E2" und wurde nach unten durch ziehen erweitert.

 

=INDEX(C:C;AGGREGAT(15;6;ZEILE(B:B)/((B:B=$F$2)*(A:A=$G$2));ZEILE()-1))

 

Das klappt auch wunderbar wie in der dargestellten Tabelle zu sehen ist.

Leider scheitert es bis jetzt an der Umsetzung dessen in VBA

 

Laut meinen bisherigen Recherchen ist es nicht möglich mein Anliegen mittels Application.WorksheetFunction.Aggregate zu realisieren, sondern nur über evaluate(….).

Leider bin ich ein totaler VBA-Anfänger und weiß noch nicht immer, wie die korrekte Syntax bei VBA ist.

Mein Versuch sieht in etwa so aus. Das größte Problem ist es das dritte Eingabefeld bei der Aggregat Funktion korrekt einzugeben.

Ich verzichte zunächst auf die vorgeschaltete Index-Funktion um es übersichtlicher zu gestalten. Am Ende sollte da natürlich auch noch die Index-Funktion eingebaut werden.

 

Sub TestAggregate()

 

 Dim res As Long

 Dim sh As Worksheet

 

 Set sh = ActiveWorkbook.Sheets("Tabelle1")

 res = Evaluate("=AGGREGATE(15,6,(sh.Range("B:B").Row)/((sh.range("B:B")=sh.range("F2").Value)*(sh.range("A:A") =sh.range("G2").Value)),1)")

 

 MsgBox res

End Sub

 

Könnte mir jemand helfen und zeigen, wie die AGGREGATE Funktion richtig auszusehen hat?

Dies ist gerade ein sehr stumpfes Beispiel, bei der ich zunächst nur die kleinste Zeile angezeigt bekommen möchte. Im weiteren Verlauf würde ich diese Aggregat Funktion in andere Funktionen einbinden.

 

Viele Grüße und Danke,

Max


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst genau und ausführlich
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
  • Bitte markieren Sie Ihre Anfrage als erledigt wenn Ihnen geholfen wurde
Thema: Name: Email:

 
 

Thema Datum  Von Nutzer Rating
Antwort
Rot Aggregat-Funktion in VBA
09.10.2020 08:18:45 Max
NotSolved
09.10.2020 08:27:48 Gast80470
NotSolved
09.10.2020 09:27:23 Gast5565
NotSolved
09.10.2020 13:08:35 Gast5238
****
NotSolved
09.10.2020 13:10:33 Gast5238
**
NotSolved
09.10.2020 13:44:55 Gast92309
****
NotSolved
12.10.2020 11:28:36 Gast77683
Solved
12.10.2020 12:14:51 Gast70767
NotSolved