Thema Datum  Von Nutzer Rating
Antwort
04.09.2016 19:42:10 Guido
NotSolved
04.09.2016 23:56:43 Nobody
NotSolved
05.09.2016 08:06:41 Guido
NotSolved
Blau Prozedur zu groß
05.09.2016 09:20:58 Nobody
NotSolved
05.09.2016 09:41:52 Gast13063
NotSolved
05.09.2016 10:06:13 Guido
Solved
05.09.2016 17:32:28 Nobody
NotSolved
05.09.2016 09:55:37 Guido
Solved
05.09.2016 16:19:24 Nobody
NotSolved
06.09.2016 10:44:40 Nobody
NotSolved

Ansicht des Beitrags:
Von:
Nobody
Datum:
05.09.2016 09:20:58
Views:
772
Rating: Antwort:
  Ja
Thema:
Prozedur zu groß

Hallo Guido,

meine Antwort war eigentlich mehr als gedankliche Anregung zum Selbstentwickeln gedacht. Ich vesuche mal zu helfen, aber ohne jede Garantie für Richtigkeit. Bitte zuerst in einer Test Datei wo keine Original Daten beschaedigt werden können testen. Bei neuen Makros bin ich da sehr vorsichtig. Zum Grundgedanken:

Ich sehe das du viele For Next Schleifen mit Array in einer Haupt For Next Schleife hast. Wenn ich das Programm richtig verstehe bearbeitet aber jede innere For Next Schleife mit Max1+2 ihr eigenes Thema. Zum Schluss wird nur eine Innenfarbe esetzt.  Am Anfang der inneren Schleife wird ein Wert geladen und am Ende addiert. z.B. Dammhöhe. Weil hier aber alles addiert wird, kann man m.E. das Programm in zwei Teile zerlegen. Dim sollte weil Variable gelöscht werden besser am Anfang jedes Makor stehen stehen.  Sprich, zwei separate Makros, wobei jedes für sich funktioniert

Nehme ein zweites Modulblatt und kopiere das Programm genau 1:1 in das 2 Modul. Alle Variablen und Werte müssen sein. Die Variable, die im 1+2. Makro nicht benutzt werden einfach mitführen. Sie bleiben unbenutzt! Das geht schneller und unkomplizierte als die ganze Dim Anwesisung neu schreiben. Lösche im 1. Makro alle For Next Schleifen ab Sicherungsmassnahmen nach unten, und im zweiten Makro alle For Next -vor- Sicherheitsmassnahmen. .Zwei Korrekturen sind allerdings notwendig.  Und du must den Makro Namen aendern, z.B. "Berechnung_1" und "Berechnung_2" Die führst du so  zusammen:

Sub gesamt_Berechnung()
   Call Berechnen_1     'hier sollte Cells(93, Spalte - 1) immer gelöscht werden  (Bewertung)
   Call Berechnen_2     'hier Bewertung 1+2 addieren:  Cells(93, Spalte - 1) = Cells(93, Spalte - 1) + Bewertung
End Sub
 

Korrektur in Berechnung_1     Cells(93, Spalte - 1) = Empty 

Range(Cells(16, 7), Cells(37, 115)).Interior.ColorIndex = 2     'Zurücksetzen der Zellfarbe vor jedem Berechnungsvorgang
Cells(93, Spalte - 1) = Empty   'Bewertung löschen  (nur im 1. For Next Programm !!)
 
For Spalte = 7 To 115

Korrektur in Berechnung_2         Cells(93, Spalte - 1) = Cells(93, Spalte - 1) + Bewertung

dann sollte es laufen. Probier es bitte in einer Testdatei aus.
mfg  Nobody
 
 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • 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
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • 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

Thema Datum  Von Nutzer Rating
Antwort
04.09.2016 19:42:10 Guido
NotSolved
04.09.2016 23:56:43 Nobody
NotSolved
05.09.2016 08:06:41 Guido
NotSolved
Blau Prozedur zu groß
05.09.2016 09:20:58 Nobody
NotSolved
05.09.2016 09:41:52 Gast13063
NotSolved
05.09.2016 10:06:13 Guido
Solved
05.09.2016 17:32:28 Nobody
NotSolved
05.09.2016 09:55:37 Guido
Solved
05.09.2016 16:19:24 Nobody
NotSolved
06.09.2016 10:44:40 Nobody
NotSolved