Registriert seit: 08.04.2020
Version(en): 2010/365
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.
Registriert seit: 16.04.2014
Version(en): xl2016/365
Hola,
wenn du schon mehrere Foren bemühst, verlinke deine Fragen wenigsten gegenseitig.
Gruß,
steve1da
Registriert seit: 08.04.2020
Version(en): 2010/365
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.
Registriert seit: 16.04.2014
Version(en): xl2016/365
Hola,
du hast das falsch verstanden. Du sollst hier einen Link zur gleichen Frage im anderen Forum setzen und umgekehrt.
Gruß,
steve1da
Registriert seit: 16.04.2014
Version(en): xl2016/365
Registriert seit: 14.04.2014
Version(en): 2003, 2007
12.04.2020, 19:13
(Dieser Beitrag wurde zuletzt bearbeitet: 12.04.2020, 19:33 von atilla.)
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
Gruß Atilla
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Andre,
Einspruch gestattet.
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
Gruß Atilla