Das Archiv des Excel-Forums
Formel ersetzen
Betrifft: Formel ersetzen
von: Steffen
Geschrieben am: 05.10.2003 13:34:50
Hallo und guten Tag,
ich habe ein Problem bei dem Ich Eure Hilfe brauche.
Und zwar habe ich in einer Zelle eine Formel stehen, z.b:
=A1+A2 --> nur Beispiel
nun möchte ich diese Formel ergänzen und zwar um Wenn(C1=1;1;A1+A2)
mein Problem ist das ich diesen Teil der Formel nicht ersetzen kann weil eine Klammer fehlt, wie bekomme ich dies hin?
Jede Formel hat den gleichen Anfangsteil, den ich ersetzen kann.
Danke Euch schon vielmals
Steffen
Betrifft: AW: Formel ersetzen
von: Christoph
Geschrieben am: 05.10.2003 14:04:32
Hi Steffen,
was meinst du mit "weil eine Klammer fehlt"???
wie heißt denn deine Originalformel? In der Regel erstelle ich Formeln in der ersten relevanten Zeile und ziehe diese dann nach unten. Die Fixbezüge entsprechend in $-Zeichen gesetzt.
Ich fürchte, du musst das Problem nochmal erklären.
Gruß
Christoph
Betrifft: AW: Formel ersetzen
von: heinz
Geschrieben am: 05.10.2003 15:14:01
=Wenn(C1=1;1;A1+A2)
bei mir funktionierts
Betrifft: Nochmal helfen
von: Steffen
Geschrieben am: 05.10.2003 16:48:24
Also die Formel lautet z.b:
=[04allg.xls]Allgemein!$N$13
Und soll gegen
=Wenn(A1=0;0;[04allg.xls]Allgemein!$N$13)
ersetzt werden.
Das Problem ist aber dass die Formel unterschiedlich sein kann, also verschiedene Verweise innerhalb der Tabelle.
Das einzige was bei allen gleich ist, ist =[04allg.xls]Allgemein!
Wie kann ich dies machen.
LEider kann ich keine manuelle ersetzung machen, da es sich um ca. 3000 Zellen handelt!
Danke Euch nochmals
Steffen
Betrifft: AW: Nochmal helfen
von: Holger Levetzow
Geschrieben am: 05.10.2003 16:59:32
woher kommt die Adresse der Zelle N3?
Holger
Betrifft: AW: Nochmal helfen
von: Panicman
Geschrieben am: 05.10.2003 18:07:16
Hallo Steffen,
hier mal ein Ansatz:
Sub Wenn_Formel_einfügen()
Set FormulaCells = ActiveSheet.UsedRange.SpecialCells(xlFormulas, 23)
For Each Zelle In FormulaCells
f = Zelle.FormulaR1C1
If InStr(f, "[04allg.xls]Allgemein!") Then
Formel = Mid(f, 2, Len(f))
Zelle.FormulaR1C1 = "=IF(A1=0,0," & Formel & ")"
End If
Next Zelle
End Sub
Gruß
Holger
Betrifft: hab was, aber klappt nicht, bitte hilfe
von: Steffen
Geschrieben am: 05.10.2003 19:46:22
Zur Einleitung
Und zwar möchte ich die Formel
='[TB1.xls]NW-Mod'!$I$53
per Makro in
=WENN($C$1=0;0;'[TB1.xls]NW-Mod'!$I$53)
ersetzen
Dies muss ich per Code machen, da unterschiedlich zellen
Mein Code bis jetzt:
Sub formel_ersetzen()
If FEHLER = 1 Then Exit Sub
On Error Resume Next
If X = 1 Then alter = "0"
For Each c In Selection.SpecialCells(xlCellTypeFormulas)
If Selection.Cells.Count = 1 Then Set c = ActiveCell
ALT = c.FormulaLocal
If ALT = "" Then GoTo 10
TEXT = "'" & c.FormulaLocal
If c.FormulaLocal Like "=WENN(" & vorn & "*" Then GoTo 20
c.Value = TEXT
c.Characters(1, 1).Delete
TEXT = c.FormulaLocal
vorn = Workbooks(ThisWorkbook.Name).Sheets("quelle").Range("C6").Value
mitte = Workbooks(ThisWorkbook.Name).Sheets("quelle").Range("C7").Value
NEU = "=" & vorn & mitte & ";" & TEXT & ")"
Range("C1").Value = NEU
c.FormulaLocal = NEU
If Selection.Cells.Count = 1 Then Exit Sub
20:
Next c
10:
End Sub
Bei mir kommt als Ergebnis immer:
'[TB1.xls]NW-Mod'!$I$53
raus.
Nehme ich aber eine Formel die so lautet =A2+A3, dann klappts.
Was mache ich falsch?
Danke schonmal
Steffen
Betrifft: AW: hab was, aber klappt nicht, bitte hilfe
von: Christoph
Geschrieben am: 05.10.2003 20:42:19
Hi Steffen:
schreib die betreffende Zeile im Code folgendermaßen:
NEU = "=" & vorn & mitte & ";'" & Text & ")"
Gruß
Christoph
PS: ich bin kein Programmierer, aber sowas verbogenes hab ich nie gesehn...
Betrifft: AW: hab was, aber klappt nicht, bitte hilfe
von: Panicman
Geschrieben am: 05.10.2003 21:17:40
Hallo Steffen,
aus deiner Programmierung werd ich nicht schlau.
Bei meiner vorhin war leider auch ein Fehler.
Aber jetzt:
Sub Wenn_Formel_einfügen()
Set FormulaCells = ActiveSheet.UsedRange.SpecialCells(xlFormulas, 23)
For Each Zelle In FormulaCells
f = Zelle.FormulaR1C1
If InStr(f, "=IF(R1C3=0,0,[04allg.xls]Allgemein!") = 0 Then
If InStr(f, "[04allg.xls]Allgemein!") Then
Formel = Mid(f, 2, Len(f))
Zelle.FormulaR1C1 = "=if(R1C3=0,0," & Formel & ")"
End If
End If
Next Zelle
End Sub
Setzt vor deine Formel "Wenn($C$1=0;0" und wenn das schon drin steht macht es nichts.
Gruß
Holger
Betrifft: habs jetzt, danke, code anbei
von: Steffen
Geschrieben am: 07.10.2003 09:35:21
Hier mein fertiger Code:
Sub Wenn_Formel_einfügen()
altf = Workbooks(ThisWorkbook.Name).Sheets("quelle").Range("C5").Value
vorn = Workbooks(ThisWorkbook.Name).Sheets("quelle").Range("C6").Value
mitte = Workbooks(ThisWorkbook.Name).Sheets("quelle").Range("C7").Value
On Error Resume Next
For Each Zelle In Selection.SpecialCells(xlCellTypeFormulas)
If Selection.Cells.Count = 1 Then Set Zelle = ActiveCell
ALT = Zelle.FormulaLocal
If ALT = "" Then GoTo 10
If Zelle.FormulaLocal Like "=" & vorn & "*" Then GoTo 20
f = Zelle.FormulaLocal
If InStr(f, altf) Then
Formel = Mid(f, 2, Len(f))
'Zelle.FormulaR1C1 = "=IF(A1=0,0," & Formel & ")"
Zelle.FormulaLocal = "=" & vorn & mitte & ";" & Formel & ")"
End If
If Selection.Cells.Count = 1 Then Exit Sub
20:
Next Zelle
10:
End Sub
Danke Euch nochmal vielmals
Steffen
Excel-Beispiele zum Thema " Formel ersetzen"