Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
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 crash bei akt. Z1S1-Bezugsart

VBA crash bei akt. Z1S1-Bezugsart
26.10.2020 16:47:40
Dr.
Folgender Test-Code crasht nur, wenn in den Optionen unter 'Formeln' die Z1S1-Bezugsart aktiviert ist:
MsgBox Evaluate("SUMPRODUCT((Gesamt!D:D=3176328)*(Gesamt!H:H>0))")
Wo liegt der Fehler?
Kann ich notfalls per VBA abfragen, ob die Z1S1-Bezugsart aktiviert ist, um dann einen Hinweis auszugeben und den Code nicht auszuführen?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA crash bei akt. Z1S1-Bezugsart
26.10.2020 16:51:57
Dr.
Nachtrag: der Fehler ist ein Laufzeitfehler 13 Typen unverträglich
AW: VBA crash bei akt. Z1S1-Bezugsart
26.10.2020 17:04:15
Nepumuk
Hallo,
MsgBox Application.ReferenceStyle
A1 = 1
R1C1 = -4150
Gruß
Nepumuk
AW: VBA crash bei akt. Z1S1-Bezugsart
26.10.2020 17:24:53
ralf_b
SUMPRODUCT(C[4]) entspricht SUMMENPRODUKT(H:H)
AW: VBA crash bei akt. Z1S1-Bezugsart
26.10.2020 17:03:22
Daniel
HI
klar kannst du abfragen, ob R1C1- oder A1-Bezugsart aktiv ist.
Ändere die Einstellung in den Optionen von Hand und lass den Recorder mitlaufen.
dann siehst du, welche Eigenschaft du Abfragen musst und welches die dazugehörigen Werte sind
(sollte dein Recorder das nicht aufzeichnen, dann liegts dann deiner Excelversion, dann frag nochmal nach)
probier auch mal, ob die Formel in R1C1-Einstellung funktionert, wenn du die Zellbezüge auf R1C1-abänderst, dh "D:D" durch "C4" und "H:H" durch "C8" ersetzen.
dann musst du deinen Anwender nicht mit einer Fehlermeldung abspeisen, wenn er R1C1 verwendet, sondern kannst die Berechnung in beiden Fällen durchführen.
oder du merkst dir die gemachte Einstellung zu beginn in einer Variablen, änderst sie für deine Berechnung auf den von dir benötigten Wert und stellst sie am Ende wieder auf den Ursprünglichen Wert ein.
Gruß Daniel
Anzeige
AW: VBA crash bei akt. Z1S1-Bezugsart
26.10.2020 17:31:09
Dr.
Vielen Dank!

If Application.ReferenceStyle = xlR1C1 Then
MsgBox Evaluate("SUMPRODUCT((Gesamt!C4=3176328)*(Gesamt!C8>0))")
ElseIf Application.ReferenceStyle = xlA1 Then
MsgBox Evaluate("SUMPRODUCT((Gesamt!D:D=3176328)*(Gesamt!H:H>0))")
End If

funktioniert nun mit beiden Bezugssystemen.
AW: VBA crash bei akt. Z1S1-Bezugsart
26.10.2020 17:39:22
Daniel
sehr gut.
wenn das schon deine Endanwendung ist, würde ich aber Summenprodukt nicht mit ganzen Spalten quälen, sondern die letzte benutzte Spalte ermitteln und die Formeln entsprechen anpassen.
wenn du ein Excel vor 2007 hast, musst du das sowieso machen, in neueren Excelversionen darf man hier ganze Spalten angeben, es dauert aber recht lange, weil in Matrixformeln dann auch wirklich alle Zeilen berechnet werden und das sind dann sehr viele.
hast du Excel 2007 oder älter, würde ich auch statt dem Summenprodukt ZählenWenns verwenden.
das ist schneller und verträgt auch ganze Spalten in der Formel, weil Excel hier mit dem tatsächlich genutzen Zellbereich abgleicht und nur die benötigten Zeilen berechnet.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige