Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
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

IF mit Formula Local verwenden

IF mit Formula Local verwenden
27.03.2020 15:40:28
Jens
Liebes Forum,
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



		

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: IF mit Formula Local verwenden
27.03.2020 17:55:40
ChrisL
Hi Jens
Ungetestet, Freihand... ansonsten bitte eine Beispieldatei laden.
Dim i As Long
Dim strFormel As String
For i = 491 To 506
If Cells(i, 2)  "" Then strFormel = strFormel & "+" & Worksheets(Cells(i, 2)).Name & "!D7"
Next i
Range("C7:L431").Formula = "=" & strFormel
Der Tabellenname ist dann zwar nicht mehr dynamisch, aber die Dynamik fehlt ja auch bei neu hinzukommenden Blätter.
cu
Chris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige