Herbers Excel-Forum - das Archiv

Formeln ändern per VBA

Bild

Betrifft: Formeln ändern per VBA
von: Daniel P

Geschrieben am: 15.12.2006 14:14:27
Hallo Excel- Freaks! ;-)
Leider kann ich mir bei der Sache nicht selbst helfen.
Ich hoffe ihr könnt mir weiterhelfen.
In Spalte N der Tabelle1 stehen in Spalte N Formeln.
Diese Formeln würde ich gerne ändern, sobald in Spalte S in der jeweiligen Zeile eine 1 steht. Diese 1 ergibt sich wiederum aus einer Formeln.
Es erfolgen keine manuellen Eingaben, sondern das Ganze muss automatisch- auch im Hintergrund- laufen.
Wenn nun in S eine 1 auftaucht (sonst ist der Wert 0 ), so soll die Formel in N dahingehend verändert werden, dass der Teil in der Formel der lautet ?phase.OA in ?phase.ALL geändert wird.
Das Problem ist, dass dieser Teile mittendrin in der Formel auftaucht, und die Zeichenlängen davor und danach sicher immer unterscheiden können.
Ich hoffe das kann man trotzdem machen!??
Da ich überall Formeln habe, sollte zu Beginn noch geprüft werden ob in der zeile irgendwo in #NV steht. Dann soll nichts verändert werden.
Über Hilfe würde ich mich sehr, sehr freuen, da ich selbst kaum Ahnung davon habe.
Daniel P
Bild

Betrifft: AW: Formeln ändern per VBA
von: Andi
Geschrieben am: 15.12.2006 14:29:13
Hi,
wie wär's damit:
=WENN(S1=1;Die_eine_Formel;Die_andere_Formel)
Schönen Gruß,
Andi
Bild

Betrifft: AW: Formeln ändern per VBA
von: Daniel P
Geschrieben am: 15.12.2006 14:34:42
Hallo Andi,
danke für den Hinweis.
Das geht leider nicht. Die Formel in N muss direkt in der Zelle stehen ohne selbst Teil einer Formel zu sein.
Die Lösung muss per VBA gemacht werden.
Grüße,
Daniel P
Bild

Betrifft: AW: Formeln ändern per VBA
von: Andi

Geschrieben am: 15.12.2006 15:42:42
Hi,
Die Formel in N muss direkt in der Zelle stehen ohne selbst Teil einer Formel zu sein.
das verstehe ich zwar nicht, aber wenn's VBA sein soll, dann probier mal dies hier:
Sub t()
Dim c As Range
For Each c In Range("N1:N10")
c.Replace What:="?phase.OA", Replacement:="?phase.ALL", LookAt:=xlPart
Next c
End Sub

Schönen Gruß,
Andi
Bild

Betrifft: AW: Formeln ändern per VBA
von: Daniel P

Geschrieben am: 15.12.2006 16:02:14
Hallo Andi,
das klappt sehr gut mit dem Ändern, danke.
Wie kann ich das nun noch machen, dass der Bereich N1:N10 nicht fix ist und
darauf geachtet wird ob S = 1. Zudem muss noch gepfrüft werden, dass in P ACTIVE steht.
Das Makro kann ich ja per Call t durch Worksheet_Calculate aufrufen, oder?
Das arbietet auch im Hintergrund?
Wäre nett, wenn Du mir das noch zeigen könntest.
Grüße,
Daniel P
Bild

Betrifft: AW: Formeln ändern per VBA
von: Andi

Geschrieben am: 15.12.2006 16:19:09
Hi,
das ginge zB so; wenn das ganze aus dem Calculate-Ereignis eines sheets aufgerufen werden soll, dann sollte man das sheet mit adressieren; sonst gibt's Probleme, wenn zufällig ein anderes Blatt aktiv ist. Den Blattnamen müsstest Du halt ggf noch anpassen:
Sub t()
Dim c As Range
With Sheets("Tabelle1")
For Each c In .Range("N1:N" & .Range("N65536").End(xlUp).Row)
If c.Offset(0, 5) = 1 And c.Offset(0, 2) = "ACTIVE" Then
c.Replace What:="?phase.OA", Replacement:="?phase.ALL", LookAt:=xlPart
End If
Next c
End With
End Sub

Schönen Gruß,
Andi
Bild

Betrifft: AW: Formeln ändern per VBA
von: Daniel
Geschrieben am: 15.12.2006 16:47:43
Hallo Andi,
sehr gut. Vielen Dank!
Grüße,
Daniel
Bild

Betrifft: Gern geschehen... (ot)
von: Andi
Geschrieben am: 15.12.2006 16:55:08
.
 Bild
Excel-Beispiele zum Thema "Formeln ändern per VBA"
Anzeigen von Werten und Formeln Zeile einfügen und Formeln und Werte übernehmen
Formeln mit Zelladressen speichern Zeilen mit leeren Formeln beim Druck unterdrücken
Alle Formeln und Links in Werte wandeln Namen löschen ohne Formeln zu zerstören
Alle Formeln und Zahlen löschen Spielpaarungen von Vorrunde bis Finale durch Formeln ermitteln
Markierung von Formeln über bedingte Formatierung Zellschutz nur für Formeln