Clever-Excel-Forum

Normale Version: Makro zu $ Zeichen nachträglich setzen.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.

Hallo Ihr Lieben. Muss mich immer wieder bei Euch für Eure schnelle Hilfe bedanken. Ein neues _
Problem tut sich mir auf. Ich habe über die Internetsuche ein Makro erstellt. Mit diesem kann _ ich auch nachträglich die $ Zeichen setzen, aber nur jedes Arbeitsblatt einzeln. Würde aber gerne dies für die ganze Arbeitsmappe mit einem klick erledigen, da es sehr Monoton und langwierig ist bei der Fülle der ASrbeitsblätter.. Habt ihr eine Idee wie das funktionieren könnt. Muss im Makro noch was geändert werden. Mit Gruppenbildung hat es nicht geklappt. Trotz Markierung aller Arbeitsblätter nimmt es immer nur das Erste.

Sub Dollar_in_Formeln()
    On Error GoTo Fehler
    Dim RNG As Range

    For Each RNG In Selection.SpecialCells(xlCellTypeFormulas)
        RNG.Formula = Application.ConvertFormula(RNG.Formula, xlA1, , xlAbsolute)
    Next
    Err.Clear
Fehler:
        If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err. _
Clear
End Sub



Hier der Text des Makros. Wäre sehr schön, wenn mal jemand darüber schauen und eine Idee hätte.
Hola,

wenn du schon mehrere Foren bemühst, verlinke deine Fragen wenigsten gegenseitig.

Gruß,
steve1da
Ich weiss nicht mehr genau wo ich es her habe. Zu der Zeit war ich noch nicht so weit. Dachte ja, wenn ich das im Arbeitsmappenordner erstelle, das ich dann alles mit dem Makro erstellen kann. Aber es geht halt so, nur Blatt für Blatt. Sorry. Werde es mir für die Zukunft merken und die Quelle dokumentieren. Für eventuelle Hilfe wäre ich trotzdem sehr dankbar.
Hola,

du hast das falsch verstanden. Du sollst hier einen Link zur gleichen Frage im anderen Forum setzen und umgekehrt.

Gruß,
steve1da
Hola,

ok, scheinbar nicht.

https://www.herber.de/forum/archiv/1752t...tm#1752072

Gruß,
steve1da
Hallo,

Du hast wahrscheinlich nicht bemerkt, dass im anderen Forum Hajo Deinen Code erweitert und somit eine Lösung für Dein Problem eingestellt hat.
Schau Dir den Code von Hajo noch einmal an.

Hallo noch einmal,

da Hajo so etwas nicht testet, habe ich es mal gemacht und gesehen, dass seine Erweiterung nicht funktioniert.
Hätte man ja darauf kommen können. Each Range in Specialcells kann nur im aktivierten Blatt funktionieren.

So ginge es:

Code:
Sub Dollar_in_Formeln()
    On Error GoTo Fehler
    Dim RNG As Range
    Dim WsTabelle As Worksheet
    For Each WsTabelle In Worksheets
      WsTabelle.Select
        For Each RNG In Selection.SpecialCells(xlCellTypeFormulas)
            RNG.Formula = Application.ConvertFormula(RNG.Formula, xlA1, , xlAbsolute)
        Next
    Next WsTabelle
    Err.Clear
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err. _
        Clear
End Sub
Hallöchen,

Einspruch:

Zitat:Each Range in Specialcells kann nur im aktivierten Blatt funktionieren.

So klappt's auch mit dem Nachbarn:

For Each RNG In WsTabelle.Cells.SpecialCells(xlCellTypeFormulas)
Hallo Andre,

Einspruch gestattet. Dodgy 

Ich hatte mich darauf konzentriert, dass nur in einem bestimmten Selektierten Bereich Formeln angepasst werden sollten und nicht in allen möglichen Formelzellen des gesamten Blattes.

Wenn es so ist wie ich annehme, dass Hanse Hans einen Bereich auswählt und nur in diesem Bereich die Formeln angepasst werden sollen, dann würde ich es wie folgt lösen:

Code:
Sub Dollar_in_Formeln_ati()
   Dim WsTabelle As Worksheet
   Dim RNG As Range
   Dim strngRange As String

   strngRange = Selection.Address
   For Each WsTabelle In Worksheets
      For Each RNG In WsTabelle.Range(strngRange).SpecialCells(xlCellTypeFormulas)
        RNG.Formula = Application.ConvertFormula(RNG.Formula, xlA1, , xlAbsolute)
      Next RNG
   Next WsTabelle
     
End Sub