Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Spinnt nach dem 3. Durchlauf

Betrifft: VBA Spinnt nach dem 3. Durchlauf von: Bernd
Geschrieben am: 06.08.2020 15:21:02

Guten Tag

Ich habe vor mit einem VBA den höchsten Wert in Spalte B ab B3 zu ermitteln. Damit es nicht zu lange dauert habe ich es auf B500 begrenzt.

Der größte Wert soll in Line Mitte geschrieben werden (mit Name aus A)

Danach der nächsthöhere Wert in Line Links.

Jetzt soll immer geschaut werden wo der Nächsthöhere Wert hingeschrieben werden soll.

Das ist abhängig davon welche Line den kleineren Wert hat.

Wenn eine der Beiden Lines 20 Namen hat, soll die Jeweilige andere Line bis 20 gefüllt werden.

Wenn beide Lines voll sind, soll mit den nächsten höheren Werten die Line Rechts befüllt werden.

Zweck ist es die ersten beiden Lines mit den Höchsten Werten zu füllen und die 3. Line mit dem höchsten Rest.

Jeweils bis 20 Einträge begrenzt.

Ziel: Gruppe 1 + 2 sind etwa gleich stark und der beste Rest geht in die 3. Gruppe.


Mein Problem ist dieser Part:


Sub Max()

'


Start:

' Maximum in Spalte B finden


Dim maxB As Variant

maxB = Clear

Worksheets("Tabelle1").Activate


Set finden = Cells.Find(WorksheetFunction.Max(Range("B3:B500")), LookIn:=xlValues)

maxB = finden.Row


If maxB = 2 Then GoTo Ende


Range("A" & maxB & ":B" & maxB).Select

Selection.Copy



Im weiteren Verlauf Lösche ich nach dem Einfügen die Zellen A+B heraus damit die Spalte B neu durchsucht werden kann.


Das ganze läuft auch gut 3x durch. Dann hängt sich maxB einfach auf und bleibt bei Wert Zeile 4 hängen.

Anbei habe ich die Tabelle angehängt.


https://www.herber.de/bbs/user/139502.xlsm


Bitte helft mir.

Ich habe schon verschiedene Versionen der Maximalerkennung versucht.

Diese sind Auskommentiert in dem Makro enthalten. Meist hat dabei irgendetwas nicht funktioniert, weshalb ich auf die jetzt aktivierte Version zurückgefallen bin.


Zur Info:

Ich hatte zwischendurch immer wieder das Makro in Zwischenschritten probiert und es hatte funktioniert.


Als ich die Begrenzung auf 20 pro Spalte einprogrammiert hatte, ging das ganze den Bach runter.

Obwohl ich den Programmteil mit der Maxerkennung nicht angefasst hatte.


Ich bin jetzt nach 3 Wochen stundenlanges versuchen einfach am ende.

Wahrscheinlich ist es irgendein Dummer Fehler meinerseits den ich einfach übersehe.


Wer auch immer mir hilft, ein Stoßgebet und ein herzliches Danke sei sein Lohn.


Danke

Betrifft: AW: VBA Spinnt nach dem 3. Durchlauf
von: onur
Geschrieben am: 06.08.2020 18:10:10

Häähh???
"Der größte Wert soll in Line Mitte geschrieben werden (mit Name aus A). Danach der nächsthöhere Wert in Line Links" - ES GIBT KEINEN NÄCHSTHÖHEREN WERT ALS DER HÖCHSTE WERT.
"Das ist abhängig davon welche Line den kleineren Wert hat." - die zuletzt beschriebene "LINE" hat immer den kleineren Wert.
Übnrigens, GOTO gibt es nur wegen der Abwärtskompatibilität, man benutzt ihn eigentlich seit den Achtzigern nicht mehr.

Mach doch mal ein Beispiel, wie es aussehen soll und erkläre dann auch, warum es so aussehen soll - ist berstimmt hilfreicher als dein wirrer Erklärungsversuch.

Betrifft: AW: VBA Spinnt nach dem 3. Durchlauf
von: Bernd
Geschrieben am: 07.08.2020 14:47:57

Hallo Onur
Wahrscheinlich hattest du den Eintrag nicht fertig gelesen. im unteren Teil hatte ich geschrieben:
Im weiteren Verlauf Lösche ich nach dem Einfügen die Zellen A+B heraus damit die Spalte B neu durchsucht werden kann.
Damit ist der 1. höchste Wert aus der Spalte herausgelöscht und es existiert ein neuer höchster Wert.
Außerdem hatte ich eine Tabelle hochgeladen, die die Funktion erklären sollte. Ich weiß aber nicht ob das Makro auch darin eingebettet ist.
Wenn ein Wert 100 ist der nächste 40,20,15,10 und andere, kann es Vorkommen das der erste Wert um soviel höher ist, das der nächste ihn nicht überschreitet. Daher die Abfrage.

Was Funktioniert an GOTO nicht?
Da ich nicht weiß welches System der nächste User nutzt, habe ich das genommen was funktionieren sollte.

Das du meine Beschreibung als Wirr bezeichnet trifft mich schon.
Ich hatte einfach versucht so Detailliert wie möglich zu schreiben.

Hier nochmal das Makro als txt:
https://www.herber.de/bbs/user/139532.txt

Betrifft: AW: VBA Spinnt nach dem 3. Durchlauf
von: Bernd
Geschrieben am: 07.08.2020 15:33:10

Leider wurde meine Frage aber noch nicht beantwortet daher habe ich jetzt noch mal Nachträglich das Kästchen aktiviert. Hatte ich zuvor leider vergessen.

Betrifft: AW: VBA Spinnt nach dem 3. Durchlauf
von: onur
Geschrieben am: 07.08.2020 17:53:29

Natürlich habe ich den Beitrag zu Ende gelesen und die Datei heruntergeladen. Aber es ergibt nicht viel Sinn.
z. B.:"Lösche ich nach dem Einfügen die Zellen A+B heraus damit die Spalte B neu durchsucht" - Es gibt in Excel keine Zellen A oder B, höchstens Spalten. Wenn du Spalten meinst: Wenn die Spalte B gelöscht wurde, wo willst du noch was durchsuchen? Drücke dich bitte PRÄZISE aus, damit man nix "hineininterpretieren" muss.
"Wenn ein Wert 100 ist der nächste 40,20,15,10 und andere, kann es Vorkommen das der erste Wert um soviel höher ist, das der nächste ihn nicht überschreitet." - was soll ich mir DARUNTER jetzt vorstellen?
Und ich bat dich, in die Datei (von mir aus auf einem anderen Blatt) einzufügen, WIE es nachher aussehen soll, damit man sich was drunter vorstellen kan.

Betrifft: AW: VBA Spinnt nach dem 3. Durchlauf
von: Bernd
Geschrieben am: 10.08.2020 15:04:11

OK Als ich sagte Das ich die Zellen A/B gelöscht habe meinte ich natürlich das ich damit die Zellen mit dem vorherigen höchsten Wert gelöscht werden. Du hast aber recht das ich das nicht explizit gesagt habe.

Das mit den Werten war als Beispiel das nicht immer die zuletzt beschriebene Linie den höchsten Wert hat. Dies bezog sich auf deine Aussage: "Das ist abhängig davon welche Line den kleineren Wert hat." - die zuletzt beschriebene "LINE" hat immer den kleineren Wert.

Gerne gebe ich auch eine neue Beispieldatei mit auf den Weg, die wie von dir gewünscht das Ergebnis anzeigt.
Hier kommt sie:
https://www.herber.de/bbs/user/139563.xlsm

Ich finde es erfreulich das du mir helfen willst und bin als nicht VBAler gerne bereit Sachdienlich und so Präzise als möglich zu Antworten.

Ich hoffe das dir die zur Verfügung gestellten Ausführungen und Dateien jetzt ermöglichen, mir auch zu helfen.