2.1k Aufrufe
Gefragt in Tabellenkalkulation von Mitglied (926 Punkte)
Hallo,

ich glaube mich zu erinnern, das ich irgendwo mal den Hinweis auf ein Makro gelesen habe, das im markierten Bereich "auf Knopfdruck" die Formelbezüge von relativ zu absolut zu gemischt ändert.
Ich habe versucht das über Google zu finden, je nach Suchbegriff bekomme ich bis zu 1.000.000 "Treffer", finde aber nicht das was ich suche. Weis von euch jemand ob es das Gesuchte tatsächlich gibt?
Und wenn ja, wo?
mfg
Wolfgang

5 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
hallo,

ob du das meinst ist mir nicht ganz klaz,

aber bei makierter Formel kannst du mit der Taste "F4" die bezüge ändern.

Gruß

Helmut
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo Helmut,
das ist das was ich meine, aber ich muss in kürze einige Tabellen bearbeiten, in denen ich dies in größeren Bereichen vielfach tun muss. Wenn ich das tatsächlich für jede Zelle einzeln per "F4" tun muss, dann sitze ich Stunden daran.
mfg
Wolfgang
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Wolfgang,

ich glaube ein solches Makro zu schreiben und zu bedienen ist schwieriger als Handarbeit.

Du müsstest erst den Formelbereich selektieren, dann dem Makro mitteilen ob Zeile und Spalte von realiv auf absolut (oder umgekehrt) gesetzt werden soll, oder nur Zeile oder nur Spalte, dieser Prozedur unterzogen werden soll.

Bei Handarbeit bräuchtest Du nur die erste Formel in einer Zeile oder Spalte entsprechend zu ändern und dann die Formel nach Bedarf nach unten oder nach rechts zu ziehen.
Das halte ich für den einfacheren Weg,

Gruß
Rainer
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo Rainer,
wie oben gesagt: ich meine mich zu erinnern, das ich schon mal einen Hinweis auf ein bereits vorhandenes Makro irgendwo gelesen hätte.
Die Frage ist also erstmal ob meine Erinnerung stimmt und dann ob jemand weis wo es zu finden ist. Auf dieser Seite habe ich schon mal das folgende gefunden:
www.office-loesung.de/ftopic30827_0_0_asc.php
Sub RelativeBezuege()
Dim myRange As Range
For Each myRange In Selection
If myRange.HasFormula Then
If myRange.HasArray Then
If Application.ReferenceStyle = xlR1C1 Then
myRange.FormulaArray = Application.ConvertFormula(myRange.Formula, xlR1C1, , xlRelative)
Else
myRange.FormulaArray = Application.ConvertFormula(myRange.Formula, xlA1, , xlRelative)
End If
Else
If Application.ReferenceStyle = xlR1C1 Then
myRange.Formula = Application.ConvertFormula(myRange.Formula, xlR1C1, , xlRelative)
Else
myRange.Formula = Application.ConvertFormula(myRange.Formula, xlA1, , xlRelative)
End If
End If
End If
Next
End Sub

Relative in absolute:

Code:

Sub AbsoluteBezuege()
Dim myRange As Range
For Each myRange In ActiveSheet.UsedRange
If myRange.HasFormula Then
If myRange.HasArray Then
If Application.ReferenceStyle = xlR1C1 Then
myRange.FormulaArray = Application.ConvertFormula(myRange.Formula, xlR1C1, , xlAbsolute)
Else
myRange.FormulaArray = Application.ConvertFormula(myRange.Formula, xlA1, , xlAbsolute)
End If
Else
If Application.ReferenceStyle = xlR1C1 Then
myRange.Formula = Application.ConvertFormula(myRange.Formula, xlR1C1, , xlAbsolute)
Else
myRange.Formula = Application.ConvertFormula(myRange.Formula, xlA1, , xlAbsolute)
End If
End If
End If
Next
End Sub
Für mich sieht das aber so aus als ob man das noch deutlich kürzen könnte. (ich arbeite nicht mit der R1Z1-Bezugsart)
mfg
Wolfgang
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Wolfgang,

meine Antwort war nur meine Meinung zum Problem, die keinerlei Anspruch auf Allgemeingültigkeit erhebt.

Du kannst natürlich nach eigenem Ermessen verfahren.

Wenn ich aber davon ausgehe, dass jede Formel einzigarig ist und verschieden viele Zell- bzw, Bereichsbezüge enthalten kann und diese Bezüge, je nach Erfordernis, entweder absolut oder relativ oder gemischt sein können, möchte ich schon Bedenken anmelden, dass diese Vielfältigkeit problemlos mit einem Makro zu beherrschen ist,

Gruß
Rainer
...