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

Veränderung von Formeln

Veränderung von Formeln
28.07.2015 12:53:04
Formeln
Hallo an alle,
ich habe eine etwas knifflige Frage.
Ich habe mehrere Zeilen (n59:n62) mit sehr langen Formeln. Diese Formeln sollen mit VBA verändert und im Anschluss kopiert werden. Die Veränderung schaut so aus, das lediglich die Benennung des Tabellenblatts sich änder soll (aufsteigend).
Also wenn in der Formel folgendes steht,

E:\Dokumente....\[Mitgliederblätter6.xlsm]1!$B$26' 

dann steht die 1 für das Tabellenblatt das angesteuert wird. Diese 1 soll jetzt verändert werden in eine 2. Die Ergebnisse der Formeln sollen dann summiert werden und die Summe in die Zelle s39 ausgegeben werden (und spätere darunter). Dieser Vorgang soll sich jetzt so lange wiederholen wie es Tabellenblätter in der Mappe2 gibt (zwei verändert sich zu drei....).
Ist das möglich?
Habt ihr da einen Ansatz für mich?
Beste Grüße und vielen Dank
Hans

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Veränderung von Formeln
28.07.2015 15:27:57
Formeln
Hi Alfons,
danke das hab ich auch schon gefunden.
Für mich ist jetzt wirklich die Hauptproblemstellung wie das Tabellenblatt das "1" heißt erkennbar mache. Wenn ich ihm sage er soll mir alle einser in der Formel ersetzen durch zweier, dann ist das nicht zielführend.
Noch Anregungen?
Grüße
Hans

AW: Veränderung von Formeln
29.07.2015 14:50:06
Formeln
Hallo,
dann teste das mal:

Public Sub FormelnAnpassen()
Dim wks As Worksheet
Dim z As Range
Dim strSB As String, alteFormel As String, neueFormel As String
Dim intFarbe As Integer, intAnt As Integer
For Each wks In ThisWorkbook.Worksheets
strSB = "Mitgliedsblätter6.xlsm]" & wks.Index
For Each z In wks.Range("n59:n62")
If z.HasFormula = True And InStr(1, z.Formula, strSB)  0 Then
wks.Activate
z.Activate
intFarbe = z.Interior.ColorIndex
alteFormel = z.Formula
neueFormel = Replace(alteFormel, _
"Mitgliedsblätter6.xlsm]" & wks.Index, _
"Mitgliedsblätter6.xlsm]" & wks.Index + 1)
z.Interior.ColorIndex = 3
intAnt = MsgBox("soll die Formel in Zelle " & z.Address & " ersetzt werden?" _
& vbNewLine & vbNewLine _
& "alt:" & vbTab & alteFormel & vbNewLine _
& "neu:" & vbTab & neueFormel, vbYesNoCancel, "Formel ersetzen?")
If intAnt = 6 Then z.Formula = neueFormel
z.Interior.ColorIndex = intFarbe
If intAnt = 2 Then Exit Sub
End If
Next z
Next wks
End Sub

Anzeige
AW: Veränderung von Formeln
03.08.2015 09:47:26
Formeln
Hi Alfons,
sorry das ich mich so spät zurückmelde.
Danke für deinen Ansatz. Klappt bei mir leider noch nicht so ganz.
Ich hab mal zwei Beispieldateien erstellt, in der die eine auf die andere zugreifen soll. Die Datei 99269 enthält die Formeln, die Datei 99270 die Zahlen mit denen gerechnet wird.
https://www.herber.de/bbs/user/99269.zip
https://www.herber.de/bbs/user/99270.zip
Ziel ist es, das in der Arbeitsmappe1 (99269) die Werte von "Teil1" summiert und dann im gelben Bereich ausgegeben werden. Gleiches erfolgt für die Werte von "Teil2" die im grünen Bereich ausgegeben werden sollen. Dein Code soll nun die Formeln auf Tabellenblatt 2 (und dann fortlaufende) geändert werden. Danach soll sich der ganze Vorgang wiederholen bis in der Zahlenarbeitsmappe (99270) alle Blätter durchlaufen sind (variabl viele).
Bekommst du den Code in der Mappe so erweitert, dass er funktioniert und die Schritte so durchläuft wie oben beschrieben? Ich leider nicht. Hab das Wochenende schon rumprobiert. Wäre wirklich toll.
Danke für deine Hilfe.
Beste Grüße
Hans
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige