Clever-Excel-Forum

Normale Version: Werte ersetzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, kann mir jemand bitte einen Tip zu folgendem Thema geben.

Ich habe in den Zellen formeln stehen und ich möchte die Zahlen (=L24/(155*8) in diesem Fall 8 durch eine 9 ersetzen. Nur möchte ich einen Schritt weitergehen und sagen finde herraus ob ein Werte zwischen 1-12 enthalten ist und wenn ja wechsel diesen mit 9 aus.

Hat da jemand ein Tip ?

Sub Formel_ersetzen()

Dim raus As Integer
Dim rein As Integer

raus = 8 
rein = 9

Worksheets("Cockpit").Activate
Range("K24").Select

For Each cell In Selection
    If cell.HasFormula = True Then
        cell.Formula = Application.WorksheetFunction.Substitute(cell.Formula, raus, rein)
    End If
 
Next


End Sub
Hallo

geht es nur um diese Formel in einer Zelle?
dann ist das select recht überflüssig

Code:
Sub Formel_ersetzen()
   Dim raus As Integer
   Dim rein As Integer
   Dim rngZelle As Range
   rein = 9
   Worksheets("Cockpit").Activate
   Range("K24").Select
   For Each rngZelle In Selection
       If rngZelle.HasFormula Then
           raus = Right(rngZelle.Formula, Len(rngZelle.Formula) - 9)
           If raus >= 1 And raus <= 12 Then
               rngZelle.Formula = Left(rngZelle.Formula, 9) & rein
           End If
       End If
   Next
End Sub
MfG Tom
Moin. Ja du hast Recht Sie wird für mehrere Zellenbereich wirken müssen.

Ich habe mir deine Formel mal angeschuat und verstehe nicht ganz wie diese funkt. soll ?
Kann Du mir das mal genauer erläutern bitte ?

Bzw. funkt bei Dir ? Bei mir leider nicht ganz

Gruß
Hallöchen,

das ist doch keine Formel, sondern ein Makro Smile
Im Prinzip wird davon ausgegangen, dass Dein Formelstring der rechte Teil der Formel ist und dort wird dann getauscht ...

Das Problem ist wohl, dass nach Durchlauf des Makros aus einer 100 Zeichen langen Formel eine 9 Zeichen lange wird und dann noch die 9 dahinter geschrieben.

Ich würde eventuell in einer Schleife nach *1) *2) *3) usw. suchen und das dann durch '12) ersetzen. Nur nach 2 oder 4 oder anderes geht ja nicht, weil die Zahlen auch an anderer Stelle in der Formel stehen.