Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
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
Inhaltsverzeichnis

Formel-Teil löschen

Formel-Teil löschen
12.12.2019 14:48:39
Michael
Hallo Allerseits
In einem Sheet habe ich ca. 10.000 Formeln die ich abändern möchte. Von Hand natürlich etwas aufwendig, Mit der Ersetzen-Funktion ist es nicht möglich, wegen unterschiedlicher Formellängen.
Z.B.:
WENN(Ü001!T3-Ü001!V3=0;"";Ü001!T3-Ü001!V3)
WENN(Ü010!T55-Ü010!V55=0;"";Ü010!T55-Ü010!V55)
WENN(Ü337!T107-Ü337!V107=0;"";Ü337!T107-Ü337!V107)
Was ich mit einem Makro erreichen möchte ist, das in allen Formeln in der WENN Abfrage der minus Teil gelöscht wird. Die Formeln also hinterher so aussehen:
WENN(Ü001!T3=0;"";Ü001!T3-Ü001!V3)
WENN(Ü010!T55=0;"";Ü010!T55-Ü010!V55)
WENN(Ü337!T107=0;"";Ü337!T107-Ü337!V107)
Als Info noch: Es gibt keine vierstelligen Zahlen oder höher in den Formeln
Hoffe auf eure Hilfe
Viele Grüße
Michael

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: RegEx
12.12.2019 16:19:12
Fennek
Hallo,
teste mal mit

Sub T_2()
With CreateObject("VBScript.RegExp")
.Global = False
.Pattern = "-Ü\d{3}!V\d{1,3}"
For Each ar In ActiveSheet.Cells.SpecialCells(3)
If .Test(ar.Formula) Then ar.Formula = .Replace(ar.Formula, "")
Next ar
End With
End Sub
mfg
AW: Formel-Teil löschen
12.12.2019 16:28:15
ChrisL
Hi
Hier noch eine andere Lösung.
Sub t()
Dim c As Range, x As String
For Each c In Range("A1:A5") ' hier anpassen
If c.HasFormula Then
x = c.Formula
x = Left(x, InStr(x, "-") - 1) & Right(x, Len(x) - InStrRev(x, "=") + 1)
c.Formula = x
End If
Next c
End Sub
cu
Chris
Anzeige
AW: Formel-Teil löschen
12.12.2019 18:42:24
ChrisL
Hi Michael
Übrigens, mit an Sicherheit grenzender Wahrscheinlichkeit stimmt etwas mit deiner Datenstruktur nicht, weil...
Formeln lassen sich fast immer so gestalten, dass man sie runter ziehen kann d.h. bei 10'000 individuellen Formeln stimmt etwas nicht. Zudem müsste man sich fragen, wieso die Daten auf viele einzelne Tabellenblätter verteilt sind.
Wenn du möchtest, mal die Ausgangslage und das Ziel beschreiben sowie eine Musterdatei ins Forum laden.
cu
Chris
AW: Formel-Teil löschen
12.12.2019 21:40:01
Michael
Vielen Dank euch Beiden für die Antworten
@Fennek:
Von deinem Code verstehe ich nichts. Kannst du mir in einfachen Worten erklären wie er funktioniert. Wirkt sich der Code auch auf andere Formeln aus? Falls ja, kann man die Funktion auf vorher selektierte Bereiche beschränken?
@ChrisL:
An der Datenstrucktur der Mappe kann ich leider im Moment nichts ändern. Aber zum besseren Verständnis, unter Ü001 usw. befinden sich Kunden-Datensätze. Je Kunde ein Sheet, wobei die Nummer keine fortlaufende Nummer ist. Der Sheet in dem diese Formeln stehen, ist in viele Bereiche unterteilt, die nicht zusammenhängen. Also Formeln ziehen ist schwierig.
Auch an dich die Frage: Kann der RANGE-Bereich auf vorher manuell selektierte Bereiche beschränkt werden?
Vielen Dank und viele Grüße
Michael
Anzeige
AW: Formel-Teil löschen
13.12.2019 08:06:37
ChrisL
Hi Michael
Dort wo steht "hier anpassen" kannst du auch Selection anstelle Range verwenden.
cu
Chris
AW: Formel-Teil löschen
13.12.2019 09:18:29
Michael
Guten Morgen ChrisL
Also brauche ich nur
For Each c In Range(..:..)- durch - For Each c In Selection - ersetzen?
Viele Grüße
Michael
ja owT
13.12.2019 09:42:05
ChrisL
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige