Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1060to1064
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
VBA Suchen und Ersetzen in Formeln
16.03.2009 13:29:32
Micha
Hallo liebe Spezis,
mit dem Makrorecorder habe ich folgenden Code zum "Suchen und Ersetzen" ermittelt:

Sub Makro5()
Columns("V:V").Select
Selection.Replace What:="Runden((", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=")/100;0)*100", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub


Doch leider funktioniert das nicht in Formeln, was habe ich falsch gemacht?
Wie sieht der korrekte Code aus?
Freue mich riesig auf Eure Hilfe
Gruß
Micha

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Suchen und Ersetzen in Formeln
16.03.2009 14:02:29
mpb
Hallo Micha,
für die Ersten 10 Zellen in Spalte V:

Sub Runden_weg()
For i = 1 To 10
Cells(i, 8).Formula = "=" & Mid(Cells(i, 8).Formula, 9, Len(Cells(i, 8).Formula) - 20)
Next i
End Sub


Gruß
Martin

AW: VBA Suchen und Ersetzen in Formeln
16.03.2009 14:16:59
Jogy
Hi.
Super Idee, vor allem wenn da irgendwas anderes in diesen Zellen steht.
1. In VBA wird Englisch gesprochen, ist also "Round" und aus dem Semikolon wird eine Komma.
2. Wenn eine ungültige Formel herauskommt, dann macht es die Ersetzung nicht.
Gruss, Jogy
AW: VBA Suchen und Ersetzen in Formeln
16.03.2009 14:20:23
Micha
Hallo
der Code funktioniert leider nicht :-(
Hoffentlich findet jemand eine Lösung?
Danke
Micha
Anzeige
AW: VBA Suchen und Ersetzen in Formeln
16.03.2009 14:30:35
robert
hi,
hatte mal das problem..
schau in diesm beitrag nach
gruß
robert
Punkt vor Formel weg......ersetzen?
AW: VBA Suchen und Ersetzen in Formeln
16.03.2009 15:14:44
Micha
Krieg ich alleine nicht hin.
Ich scheiter hier ganz klar Mangels VBA Wissen :-(
Gruß
Micha
AW: VBA Suchen und Ersetzen in Formeln
16.03.2009 15:26:58
robert
hi,
wie lauten die formeln und was willst du eigentlich ersetzen?
wenn geht-datei hochladen
gruß
robert
AW: VBA Suchen und Ersetzen in Formeln
16.03.2009 15:38:23
Micha
Die Formeln sind relativ einfach:
=RUNDEN((R11*R16*R19*S19*R22*R25)/100;0)*100
Ich müsste immer das Runden( und /100;0)*100 gelöscht haben.
So das in der Formel eben nicht mehr gerundet wird.
Ich dachte das ich das mit Suchen und ersetzten "" lösen kann?
Ich bin gleich leider in einem Termin, und erst heute Abend spät wieder online.
Würde mich auf eine Überraschung freuen :-)
Gruß
Micha
Anzeige
AW: VBA Suchen und Ersetzen in Formeln
16.03.2009 15:46:26
mpb
Hallo Micha,
ich sehe gerade, dass ich in meinem ersten Posting die Spaltenreferenzierung nicht angepasst hatte. Genau dass, was Du jetzt beschrieben hast, macht folgendes Makto für die Zeilen 1 bis 10 in Spalte V (die Zeilen, die bearbeitet werden sollen, kannst Du in der "For"-Zeile anpassen):

Sub Runden_weg()
For i = 1 To 10
Cells(i, 22).Formula = "=" & Mid(Cells(i, 22).Formula, 9, Len(Cells(i, 22).Formula) - 20)
Next i
End Sub


Gruß
Martin

AW: VBA Suchen und Ersetzen in Formeln
16.03.2009 17:39:23
robert
hi,
probier das mal, ist auf spalte V zugeschnitten
und funkt nur, wenn deine formeln so wie im beispiel aussehen
gruß
robert

Sub Runden_weg()
Dim i%
Dim lz%
Application.ScreenUpdating = False
lz = Cells(Rows.Count, 22).End(xlUp).Row
For i = 1 To lz
Cells(i, 22).FormulaLocal = "'" & Cells(i, 22).Formula
Cells(i, 22).Formula = "'" & Left(Cells(i, 22), Len(Cells(i, 22)) - 11)
Cells(i, 22) = Right(Cells(i, 22), Len(Cells(i, 22)) - 7)
Cells(i, 22) = "=" & Cells(i, 22)
Next i
Application.ScreenUpdating = True
End Sub


Anzeige
AW: VBA Suchen und Ersetzen in Formeln
17.03.2009 07:55:43
Micha
Hm, klappt leider auch nicht :-)
Mal eine anderer Ansatz, der vieleicht deutlich macht was ich möchte:
Ich habe hier im Forum den folgenden Code bekommen:

Private Sub CommandButton1_Click()
Static bRounded As Boolean
Dim rC As Range
If bRounded Then
CommandButton1.Caption = "Gerundet!"
bRounded = False
For Each rC In Range("V:V").SpecialCells(xlCellTypeFormulas)
If Abs(rC.Value) >= 1000 Then
rC.Formula = Replace(Left(rC.Formula, _
Len(rC.Formula) - 12), "=ROUND((", "=")
End If
Next rC
Else
CommandButton1.Caption = "Exakte LL"
bRounded = True
For Each rC In Range("V:V").SpecialCells(xlCellTypeFormulas)
If Abs(rC.Value) >= 1000 Then
rC.Formula = "=ROUND((" & Right(rC.Formula, _
Len(rC.Formula) - 1) & _
")/100,0)*100"
End If
Next rC
End If
End Sub


Mit dem CommandButton kann ich somit die Ergebnisse in Spalte "V"runden oder wieder ungerundet darstellen.
Das funktioniert soweit bestens.
Ich muss alledings sicherstellen das beim schließen der Datei die Ergebnisse unbedingt wieder ungerundet angezeigt werden.
Sub Workbook_BeforeClose.......dann hören meine VBA Kenntnisse schon auf :-(
Hoffentlich nerve ich Euch nicht so sehr mit meinem Problem,
würde mich riesig freuen wenn ich weiter Hilfe bekomme.
Danke
Micha

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige