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

Formel mittels VBA ändern (Tabellenblattnamen)

Formel mittels VBA ändern (Tabellenblattnamen)
08.03.2018 13:19:15
Andreas
Hallo zusammen,
weiß wieder mal nicht weiter.
Hab eine Vorlage für Zeiterfassung erstellt. Diese Liste ist für 30 Personen gedacht.
Für jede Person gibt es einen Reiter.
ABER: In einem Reiter befindet sich für jede Person extra, ein Formular (also 30).
Jetzt das eigentliche Problem.
Die Formeln mit den Bezüge für die erste Person ist einfach.
(Hab ich ja bei der Erstellung sowieso machen müssen).
Das Vorlagenblatt wird nun kopiert. Jedoch muss ich jetzt natürlich die Bezüge
für das Formular der jewiligen Person zuordnen.
Heißt in meinem Fall.
Habs sogar ausgerechnet: pro Blatt 647 mal den Tabellennamen ändern.
Bis Fertigstellung also 18763 mal.
Hab schon in den Foren nachgelesen und bin dabei natürlich über
die Funktion INDIREKT gestolpert.
Ist aber anscheinend bei so vielen Formeln nicht unbedingt empfehlenswert, wegen
der dauernden "Wiederberechnung".
Suchen und Ersetzen funkioniert auch nicht wirklich.
So dann bin ich über folgenden VBA Code gestolpert.
Sub string_aus_formel()
'raus = "Ma 01" zu ersetzender String
'rein = "Ma 02" einzufügender String
For Each cell In Selection
If cell.HasFormula = True Then
cell.Formula = Application.WorksheetFunction.Substitute(cell.Formula, raus = "Ma 01",  _
rein = "Ma 02")
End If
End Sub
Funktioniert aber nicht.
Doch eher bekomme ich es mit meinen sehr dürftigen VBA-Kenntnissen nicht hin.
Zum Verständnis eine der Formeln die ich x-mal ändern möchte (müsste):
=WENNFEHLER(WENN('Ma 01'!$AL$36="Ja";1;WENN(AC18>=0;KGRÖSSTE(('Ma 01'!$AL$20:$AO$21; 'Ma 01'!$AL$23:$AO$24;'Ma 01'!$AL$26:$AO$27;'Ma 01'!$AL$29:$AO$30);1);""));"")
Vielleicht kann mir jemand helfen.
Sonst stell ich mich mal auf eine lange Zeit beim Formeländern ein ;-)!
LG Andi!

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

Betreff
Datum
Anwender
Anzeige
AW: Formel mittels VBA ändern (Tabellenblattnamen)
08.03.2018 13:27:53
ChrisL
Hi Andi
Einfach Suchen/Ersetzen und den Code aufzeichnen.
Oder...
Sub string_aus_formel()
Dim raus As String, rein As String, cell As Range
raus = "Ma 01" 'zu ersetzender String
rein = "Ma 02" 'einzufügender String
For Each cell In Selection
If cell.HasFormula = True Then
cell.Formula = Replace(cell.Formula, raus, rein)
End If
Next cell
End Sub

cu
Chris
AW: Formel mittels VBA ändern (Tabellenblattnamen)
08.03.2018 13:36:07
Andreas
Hallo ChrisL,
danke für deine Antwort. Jetzt funkioniert`s auch.
Dann kommt doch noch ein ABER.
Wie schon bei suchen und ersetzen, erscheint immer ein "Speichern unter" Dialogfeld.
Doch wenn man Abrechen anklickt werden die Änderungen dennoch vorgenommen
Warum? Wieso erscheint das Feld überhaupt.
Je nach dem vieviele Zellen man markiert, muss mann dann Abrechen anklicken.
Könnte mann das vielleicht auch in Code integrieren?
LG Andi!
Anzeige
AW: Formel mittels VBA ändern (Tabellenblattnamen)
08.03.2018 13:38:55
Andreas
Sorry!
Hab mich vertan.
Dialogfeld nennt sich: Werte aktualisieren,
und ist mit Speichern oder Abrechen zu bestätigen.
LG
AW: Formel mittels VBA ändern (Tabellenblattnamen)
08.03.2018 13:42:46
ChrisL
Hi Andi
Dann hast du vielleicht eine andere Ausgangslage (externe Bezüge?).
Bei mir kommt kein Dialogfeld.
Vielleicht so...
Sub string_aus_formel()
Dim raus As String, rein As String, cell As Range
raus = "Ma 01" 'zu ersetzender String
rein = "Ma 02" 'einzufügender String
Application.DisplayAlerts = False
For Each cell In Selection
If cell.HasFormula = True Then
cell.Formula = Replace(cell.Formula, raus, rein)
End If
Next cell
Application.DisplayAlerts = True
End Sub

Anzeige
AW: Formel mittels VBA ändern (Tabellenblattnamen)
08.03.2018 13:51:57
Robert
Hallo,
das Dialogfeld "Werte aktualisieren" kommt, wenn beim Ändern der Formeln ein Tabellenblattnamen verwendet wird, den es in der aktuellen Datei gar nicht gibt. Dann möchte Excel wissen, wo es diese Tabelle findet.
Gruß
Robert
AW: Formel mittels VBA ändern (Tabellenblattnamen)
08.03.2018 14:30:43
Andreas
Hallo,
muss mich entschuldigen.
Hab beim ausprobieren einen Reiter gelöscht und dann ist genau
dass passiert was Robert beschrieben hat.
Was mir aufgefallen ist dass,
manche Formeln dannach einen "Stups" brauchen.
Sprich: Anklicken und mit Enter bestätigen.
Vielen Dank für Eure Hilfe.
LG Andi!

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige