Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
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

Ersetzen in VBA zur Formelauslösung

Ersetzen in VBA zur Formelauslösung
08.03.2023 12:49:45
Hundeliebhaber
Hallo,
ich habe folgendes Problem:
Ich habe mir individuelle Formeln mit & und Zellinhalten aus mehreren Zellen gebaut, die ich auslösen möchte, in dem ich das führende Zeichen entferne. Dies ist meinem Fall die #.
Es funktioniert über Strg+F und dann dort entsprechend die # Suchen und durch nichts ersetzen. Dann wird die Formel aktiv. Die Beispielmappe ist hochgeladen:
https://www.herber.de/bbs/user/158179.xlsx
Nun wollte ich das ganze mit VBA automatisieren und das klappt nicht. Ich habe das oben manuell durchgeführte als Makro aufgezeichnet, aber wenn man es ausführen möchte, klappt es nicht. Hier einmal der Code:
Sub test ()
Set DataRangeFormeln = Range("A1")
DataRangeFormeln.Select
    Selection.Replace What:="#", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False                     
End Sub

Auch hiermit geht es nicht:
Sub test()
Range("A1").Replace "#", ""
End Sub

Mit allen anderen Zeichen in der Formel klappt es, aber das hilft ja nicht, da ich nur die führende # entfernen muss, um die Formel auszulösen.
Über Hilfe würde ich mich sehr freuen.
LG Hundeliebhaber

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

Betreff
Datum
Anwender
Anzeige
AW: Ersetzen in VBA zur Formelauslösung
08.03.2023 12:57:13
ChrisL
Hi
Dim DataRangeFormeln As Range
Set DataRangeFormeln = Range("A1")
DataRangeFormeln.Replace What:="#", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=True, _
                        SearchFormat:=False, ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
cu
Chris
WorkAround
08.03.2023 13:06:22
Rudi
Hallo,
Sub ZuFormel()
  Dim varr, i
  With Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
    varr = .Value
    For i = 1 To UBound(varr)
      varr(i, 1) = Mid(varr(i, 1), 2)
    Next
    .FormulaLocal = varr
  End With
End Sub

Anzeige
AW: Ersetzen in VBA zur Formelauslösung
08.03.2023 13:38:52
UweD
Hallo
    With Range("A1")
        If Left(.Value, 1) = "#" Then
            .FormulaLocal = Mid(.Value, 2)
        End If
    End With
LG UweD
AW: Ersetzen in VBA zur Formelauslösung
08.03.2023 15:26:01
Hundeliebhaber
Danke, das geht für eine Zelle.
Sorry, ich bin nicht gut in VBA. Wie kann ich das denn auf eine Range anwenden, die größer ist als eine Zelle?
Hiermit klappt es nicht:
Sub test()
lColumn = Range("C4").End(xlToRight).Column
With Range(Cells(4, 3), Cells(4, lColumn))
        If Left(.Value, 1) = "#" Then
            .FormulaLocal = Mid(.Value, 2)
        End If
    End With
End Sub

Anzeige
AW: Ersetzen in VBA zur Formelauslösung
08.03.2023 15:59:32
UweD
Hallo
so?
    Dim Zelle As Range, lColumn As Integer
    lColumn = Cells(4, Columns.Count).End(xlToLeft).Column 'letzte Spalte einer Zeile
    For Each Zelle In Range(Cells(4, 3), Cells(4, lColumn))
        If Left(Zelle, 1) = "#" Then
            Zelle.FormulaLocal = Mid(Zelle, 2)
        End If
    Next
LG UweD
AW: Ersetzen in VBA zur Formelauslösung
08.03.2023 16:58:56
Hundeliebhaber
Herzlichen Dank, so stimmt alles.
LG Hundeliebhaber
AW: Ersetzen in VBA zur Formelauslösung
08.03.2023 22:06:14
Daniel
Hi
Wenn du das mit VBA machst, muss die Formel englisch sein, dh. englische Funktionsnamen, Komna als Parametertrenner und ggf Punkt als Dezimalzeichen.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige