IF mit Formula Local verwenden
27.03.2020 15:40:28
Jens
ich möchte ein VBA schreiben was folgendes tut.
Es gibt Tabellenblätter mit Kostenstellen, alle Kostenstellen sind unter verschiedenen Summenblättern zusammengefasst. Wichtig ist hier variabel zu bleiben, also das man sehr einfach einem Summenblatt weitere Kostenstelle hinzufügen kann.
Aktuell ist das über Indirekt und Adresse gelöst, das Problem ist die Dateien werden Wahnsinnig langsam.
Ich habe jetzt ein Makro geschrieben was das lösen soll. Sobald eine Kostenstelle hinzugefügt, entfernt oder umgehängt wird soll man hier einen Button klicken und die Formeln werden aktualisiert, sodass das Summenblatt passt.
Nachfolgend mein Code. Die Namen der aufzusummierenden Tabellenblätter soll aus den Zellen B491-B506 oder sowas kommen, das Problem ist wenn hier nichts steht funktioniert der Code nicht. Kann ich das irgendwie lösen? Eventuell über IF Cells(491,2) enthält einen Wert dann kommt das in die Formel? Bekomme es gerade nicht so richtig hin.
Sub Test()
For y = 1 To 12
For x = 1 To 425
Cells(x + 6, y + 3).FormulaLocal = "=Wennfehler(INDEX('" & Cells(491, 2).Value & _
"'!$D$7:$O$431;" & x & ";" & y & ")" & _
"+INDEX('" & Cells(492, 2).Value & "'!$D$7:$O$431;" & x & ";" & y & ")"& _
"+INDEX('" & Cells(493, 2).Value & "'!$D$7:$O$431;" & x & ";" & y & ");0)"
Next x
Next y
End
Sub
So wie der Code jetzt da steht funktioniert er, wenn ich jedoch die vorletzte Zeile noch ein _
paar mal kopiere klappt es nicht mehr ab 495, weil da dann nichts mehr steht im Excel.
Danke und VG