Formel ersetzen

Bild

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

Bild


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


Bild


Betrifft: AW: Formel ersetzen
von: heinz
Geschrieben am: 05.10.2003 15:14:01

=Wenn(C1=1;1;A1+A2)
bei mir funktionierts


Bild


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


Bild


Betrifft: AW: Nochmal helfen
von: Holger Levetzow
Geschrieben am: 05.10.2003 16:59:32

woher kommt die Adresse der Zelle N3?
Holger


Bild


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


Bild


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


Bild


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...


Bild


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


Bild


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


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Formel ersetzen"