Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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 Makro funktioniert nur beim 2 ausführen

VBA Makro funktioniert nur beim 2 ausführen
24.07.2018 10:05:23
Dennis
Hallo,
Mein Makro funktioniert nun nach langer Zeit fast einwandfrei.
Jedoch erst wenn ich das Makro zweimal hintereinander ausführe.
Beim ersten versuch Funktionieren alle Rechnungen bis auf 1.
Bei dieser Rechnung in Spalte "K" kommt dann " #DIV/0! "
Die Formel Dafür ist

=WENN(G5= "";"";(((J5-I5)*100)/J5))

Nahe liegend ist das J5 null ist. Jedoch ist dies eigentlich nicht der Fall.
J5 wird durch diese Formel berechnet und gibt den richtigen Wert beim ersten Ausführen zurück.
=WENN(G5= "";"";SUMMEWENN(E:I;E5;I:I)/ZÄHLENWENN(E:I;E5))

Dabei sind die Werte in Spalte E & I konstanten die nicht berechnet wurden.
Ich habe auch überlegt ob es an meinen Initial Settings liegt. Diese hab ich jedoch aus dem Internet kopiert und weiß nicht ob das die Ursache sein kann.
screenUpdateState = Application.ScreenUpdating
statusBarState = Application.DisplayStatusBar
'calcState = Application.Calculation
eventsState = Application.EnableEvents
displayPageBreakState = ActiveSheet.DisplayPageBreaks
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
'Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
Dabei habe ich die die für Rechnungen rauskommentiert da ich dort den Fehler vermutete, jedoch ohne Wirkung.
Ich hoffe jemand kann mir weiterhelfen.
Das ist mein erstes etwas größeres Makro und daher hab ich nur Grundkenntnisse von kleineren.
Mit freundlichen Grüßen
Dennis

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Makro funktioniert nur beim 2 ausführen
24.07.2018 12:58:48
Rudi
Hallo,
SUMMEWENN(E:I;E5;I:I) ist doch Quatsch. Dabei wird nur E auf E5 geprüft.
Gruß
Rudi
AW: VBA Makro funktioniert nur beim 2 ausführen
24.07.2018 13:05:14
Dennis
Ja natürlich.
In den darunter stehenden Reihen ist natürlich E6;E7 und soweiter.
Sinnmäßig funktionieren die Formeln schon so wie sie sollen.
Nur halt beim Zweiten Ausführen erst.
Dazu zu sagen ist eventuell noch;
Wenn ich mein Programm 1 mal ausgeführt habe und in die Zellen gehe wo "#DIV/0!" gehe und die Formel da drin bestätige, das es dann den Richtigen Wert ausgibt.
Grüße
Dennis
Muss ich da irgendwelche zusätzlichen Sachen aktivieren oder deaktivieren damit es das gleich macht.
Anzeige
AW: VBA Makro funktioniert nur beim 2 ausführen
24.07.2018 13:05:15
Dennis
Ja natürlich.
In den darunter stehenden Reihen ist natürlich E6;E7 und soweiter.
Sinnmäßig funktionieren die Formeln schon so wie sie sollen.
Nur halt beim Zweiten Ausführen erst.
Dazu zu sagen ist eventuell noch;
Wenn ich mein Programm 1 mal ausgeführt habe und in die Zellen gehe wo "#DIV/0!" gehe und die Formel da drin bestätige, das es dann den Richtigen Wert ausgibt.
Grüße
Dennis
Muss ich da irgendwelche zusätzlichen Sachen aktivieren oder deaktivieren damit es das gleich macht.
AW: VBA Makro funktioniert nur beim 2 ausführen
24.07.2018 13:08:17
Rudi
Hallo,
und die Formel da drin bestätige
Dann ist dein Code falsch. Das muss so funktionieren.
Gruß
Rudi
Anzeige
AW: VBA Makro funktioniert nur beim 2 ausführen
24.07.2018 13:26:07
Dennis
Hallo,
Mein Code ist folgender:

With Sheets("hiddenTbl2")
.Range("I5:I10000").FormulaR1C1 = "=IF(RC[-2]= """","""",RC[-2]/RC[-3])"
.Range("J5:J10000").FormulaR1C1 = "=IF(RC[-3]= """","""",SUMIF(C[-5]:C[-1],RC[-5],C[-1]) _
/COUNTIF(C[-5]:C[-1],RC[-5]))"
.Range("K5:K10000").FormulaR1C1 = "=IF(RC[-4]= """","""",(((RC[-1]-RC[-2])*100)/RC[-1])) _
End With
Der Code wird jedenfalls nicht als "errormeldung" gemeldet.
Mit freundlichen Grüßen
Dennis
AW: VBA Makro funktioniert nur beim 2 ausführen
24.07.2018 13:47:42
Rudi
evtl. hilft
With Sheets("hiddenTbl2")
.Range("I5:K10000").NumberFormat = "General"
.Range("I5:I10000").FormulaR1C1 = "=IF(RC[-2]= """","""",RC[-2]/RC[-3])"
.Range("J5:J10000").FormulaR1C1 = "=IF(RC[-3]= """","""",SUMIF(C[-5]:C[-1],RC[-5],C[-1])/ _
COUNTIF(C[-5]:C[-1],RC[-5]))"
.Range("K5:K10000").FormulaR1C1 = "=IF(RC[-4]= """","""",(((RC[-1]-RC[-2])*100)/RC[-1]))"
End With

Anzeige
AW: VBA Makro funktioniert nur beim 2 ausführen
24.07.2018 14:05:34
Dennis
Tausend Dank.
Eigentlich so einfach aber manchmal sieht man wohl den Baum vor lauter Wald nicht.
Es hat jetzt funktioniert.
ergebensten Dank
Dennis Mattutat

325 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige