Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1280to1284
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
Inhaltsverzeichnis

VBA: Zählen von zusammenhängenden Bereichen

VBA: Zählen von zusammenhängenden Bereichen
18.10.2012 12:23:55
zusammenhängenden
Hallo,
und zwar suche ich für VBA einen Code, der mir in einer Range zusammenhängende Bereiche sucht und diese dann zählt.
Z.B.:
In A1 bis A20 steht folgendes:
A1:A3 = 0
A4:A10 = 1
A11:A16 = 0
A17:A20 = 2
Nun soll er die Anzahl an Zellen zählen, bei denen die Null in Folge am häufigsten erscheint.
Also kommt als Ergebnis raus
in Zelle B1: 6
in Zelle B2: von Zelle A11 bis A16
Leider habe ich überhaupt keine Ahnung wie ich sowas realisieren kann!
Die Nullen Zusammen zählen geht ja relativ leicht mit:
"Application.WorksheetFunction.CountIf"
Das benötige ich deswegen in VBA, weil es über 150 mal gemacht werden sollte...
Vielen Dank schonmal
grüße aus Ulm
Magnus Braun

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Zählen von zusammenhängenden Bereichen
18.10.2012 12:38:14
zusammenhängenden
Hallo Magnus,
so wie ich aus deiner Beschreibung erlesen kann , sind die "zusammenhängenden" Bereiche nur in Spalte A! Ist da so korrekt, oder kommen weitere Spalten hinzu?
Die Ergebnisse sollen so wie es aussieht in Spalte B abgelegt werden.
Wieviel Bereiche gibt es denn? Wieviele Ergebnisse werden es sein?
Du siehst da ist noch einiges offen deshalb mach bitte eine Musterdatei mit allen Angaben,
das hilft uns mehr.
Gruß Matze

A1:A3 ist 3x0, A11:16 6x0, am häufigsten ...
18.10.2012 13:09:19
Luc:-?
…wäre also 6x0, Magnus;
du gibst aber beides als separate Wunschergebnisse vor. Dadurch dürfte die xlFkt HÄUFIGKEIT nicht anwendbar sein. Möglicherweise findest du aber eine Lösung bei ExcelFormeln, die du dann nur noch nach VBA portieren musst (ggf vbFkt Evaluate einsetzen).
Gruß Luc :-?

Anzeige
AW: A1:A3 ist 3x0, A11:16 6x0, am häufigsten ...
18.10.2012 14:09:02
Magnus
Hallo Luc,
sowas ähnliches habe ich schonmal gemacht. Allerdings war es etwas umständlicher und es wurden Spalten eingefügt, in denen ich dann die Nullen rausgesucht habe und diese dann gezählt. Davon wurde dann das Maximum gesucht...
Also musste ich 3 Spalten einfügen. Alles sehr umständlich!
Nun suche ich halt nach einer "kleineren und feineren" Lösung dafür. Da es sich halt um relativ große Datensätze handelt.
Danke trotzdem.

AW: VBA: Zählen von zusammenhängenden Bereichen
18.10.2012 14:02:30
zusammenhängenden
Hallo Matze,
also hier nochmal eine Beispieldatei mit dabei:
https://www.herber.de/bbs/user/82179.xlsm
Als erstes wird die ID und Nr. übertragen.
Dann kommen die Summe, Mittelwerte und die Minimalwerte mit der Häufigkeit insgesamt.
So und nun soll noch die Häufigkeit des Minimalwertes in zusammenhängender Reihenfolge dargestellt werden.
In diesem Beispiel ist das Ergebnis dann 6
Eine schöne Funktion währe dann auch noch die Zeit, von wann bis wann das Minimum geht.
Vielen Dank
grüßle
Magnus

Anzeige
Weiter Hilfe nötig,...
18.10.2012 19:45:31
Matze,Matthias
Hallo Zusammen,
bitte hier mal ein VBA Profi drüber schauen, ist eine Nr. zu groß für mich.
Auch Formelbedingt hab ich es nicht geschaft.
Lasse offen!

AW: VBA: Zählen von zusammenhängenden Bereichen
19.10.2012 12:32:33
zusammenhängenden
Hallo,
habe mal einen zusätzlichen Code eingebaut,
um Deinen anderen habe ich mich jetzt nicht gekümmert.
Meiner wird im anschluss an Deinen ausgeführt.
(Nicht ausgiebig getestet, nur an Deinen Beispieldaten)
https://www.herber.de/bbs/user/82198.xlsm
Gruß Tino

AW: VBA: Zählen von zusammenhängenden Bereichen
19.10.2012 18:02:17
zusammenhängenden
Hey Tino,
nicht schlecht!!
Also in der Beispieldatei funktioniert es wunderbar.
Leider hat das verschieben der Makros in eine andere Exceltablle nicht funktioniert.
Jedoch! Wenn ich meine Tabellen dort rein kopiere klappt es aber wie am Schnürchen!
Vielen Dank dafür.
Und ja ich weiß, dass mein Code absolut fürchterlich und umständlich ist. Ich bring mir gerade VBA selbst bei und nutze dazu die Aufzeichnungsfunktion. Was auch nur mehr oder weniger funktioniert.
Nochmals vielen Dank!!!
Jetzt muss ich mich nur noch durch den Code durchkauen und versuche, das auch für meine gesuchten Maxwerte umprogrammieren :)

Anzeige
Auf deinem Daten-Blatt steht in der letzten ...
19.10.2012 16:48:43
Luc:-?
…Spalte eine solche Sequenz, Magnus;
der man eine Hilfsspalte zuordnen könnte, mit der die 0-Intervalle durchnummeriert wdn, und zwar immer mit 1 beginnend. Das erreicht man, indem man die Werte dieser Spalte einzeln mit 0 vglt und das VglsErgebnis dem vorhergehenden Wert der Hilfsspalte hinzuaddiert, also kumulativ.
Das sähe dann so aus =(J4=0)*(K3+1). Abschließend müsstest du dann nur noch das Maximum über die Hilfsspalte bilden.
Mit VBA ginge das ganz ähnlich mit einer For…Next- bzw schnelleren For Each…In…Next-Schleife über die Spalte J. Dabei füllst du eine vordimensionierte FeldVariable Element für Element mit dem um 1 erhöhten Wert des VorgängerElements, also kumulativ, in Abhängigkeit davon, ob der Wert der jeweiligen Spaltenzelle=0 ist. Dadurch erhältst du einen WerteVektor aus Nullen und flfd Nrn für die 0-Intervalle von Spalte J, sodass du nur noch den MaxWert der FeldVariablen ermitteln musst.
Gruß+schöWE, Luc :-?

Anzeige
AW: Auf deinem Daten-Blatt steht in der letzten ...
19.10.2012 18:10:57
Magnus
Hallo Luc,
das arbeiten mit Hilfsspalten wollte ich vermeiden. Sonst wird das Ganze einfach zu groß.
Meine Tabelle hat ja so schon über 40Mbyte... (reine Datenmenge)
Wenn ich nicht schon ne Lösung hätte, würde ich mich auch durch deine durcharbeiten müssen :)
Aber so auf die schnelle versteh ich das jetzt leider noch nicht.
Dank dir aber trotzdem!

1.Teil nur Veranschaulichung d.VBA-Vorgangs! orT
20.10.2012 04:28:15
Luc:-?
schöWE, Luc :-?

AW: VBA: Zählen von zusammenhängenden Bereichen
18.10.2012 22:16:56
zusammenhängenden
Hi,
per Formel wird Dir hier geholfen: http://www.excelformeln.de/formeln.html?welcher=411
Da Du aber explizit VBA nachfragst, lass ich die Frage mal offen.
VG, Boris
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige