Excel 2003: Absolute Zellbezüge 'erklicken'

Hallo Excelianer,

wenn ich während der Eingabe einer Formel in eine andere Zelle klicke, so wird die Adresse dieser Zelle als Relativbezug in die Formel eingetragen.
Gibt es auch eine Möglichkeit den Zellbezug absolut (also mit $) einzutragen? Ich meine nicht das nachträgliche Ändern mit F4, sondern dass der Bezug sofort beim Klicken als absolut eingetragen wird.
Ich habe schon alle möglichen Kombinationen aus ALT, Umschalt, STRG und Klick probiert. Damit geht es nicht.
Mit der Hoffnung auf Expertenwissen.

Gruß, Andreas

wenn ich während der Eingabe einer Formel in eine andere Zelle
klicke, so wird die Adresse dieser Zelle als Relativbezug in
die Formel eingetragen.
Gibt es auch eine Möglichkeit den Zellbezug absolut (also mit
$) einzutragen?

Hallo Andreas,

m.W. kannst du nur sofort nach dem „Fremd“-Klick F4 drücken.

Während der Zelleingabe bist du in einem Modus wo kein Makro greift, also nützt Vba auch nix.

Das einzige was ginge wäre, man nimmt oben vier Symbole für die vier möglichen $-Kombinationen für Zelladressen, klickt eine an, dann werden alle Eingaben die danach erfolgen in diese $-Kombination umgewandelt.

Oder andersrum, man markiert einen Zellbereich und klickt dann auf eins der vier Symbole.

Aber meist hat man ja, grad bei längeren Formeln, eine Mischung zwischen relativ und absolut.

Gruß
Reinhard

Danke Reinhard,

an Makro hatte ich auch schon gedacht. Vielleicht die Änderung von D5 nach $D$5 nachträglich machen über das Worksheet_Change Ereignis. Aber ich glaube, das Finden einer Adresse im Formel-String ist nicht so ganz einfach. Na, ich werde mal ein bißchen probieren.

Danke und Gruß,
Andreas

an Makro hatte ich auch schon gedacht. Vielleicht die Änderung
von D5 nach $D$5 nachträglich machen über das Worksheet_Change
Ereignis. Aber ich glaube, das Finden einer Adresse im
Formel-String ist nicht so ganz einfach. Na, ich werde mal ein
bißchen probieren.

Hallo Andreas,

wenn ja Excel so ticken würde wie ich denke hätte ich schon eine kurze Lösung ohne die Formel ausschlachten zu müssen.

Leider werden in den MsgBoxen die falschen Zelladressen angezeigt.
Und bei Verweisen auf ein anderes Tabellenblatt kommt sogar ein Fehler (keine zellen gefunden)

Es ist egal ob man Precedents oder DirectPrecedents nimmt, auf die Schnelle ist da kein Unterschied zu erkennen.

In Worksheet_Change kannste ja ein
Call Ersetzen(Target)
einbauen, aber zum Testen ist die Sub Test() besser.

Getestet hatte ich mit
A1: =C1+E2+C7
A2: =Tabelle2!D5

Und angezeigt werden für A1: C1, C2, C3
bei A2 kommt der Fehler

Sub test()
Call Ersetzen(Range("A1:A2"))
End Sub
'
Sub Ersetzen(Bereich As Range)
Dim Zelle As Range, N As Integer
For Each Zelle In Bereich
 If Zelle.HasFormula Then
 MsgBox Zelle.Address
 For N = 1 To Zelle.DirectPrecedents.Count
 MsgBox Zelle.DirectPrecedents(N).Address
 Next N
 End If
Next Zelle
End Sub

Gruß
Reinhard

Formeln per Vba von absolut in relativ wandeln usw

an Makro hatte ich auch schon gedacht. Vielleicht die Änderung
von D5 nach $D$5 nachträglich machen über das Worksheet_Change
Ereignis. Aber ich glaube, das Finden einer Adresse im
Formel-String ist nicht so ganz einfach. Na, ich werde mal ein
bißchen probieren.

Hallo Andreas,

ich fand eine Lösung von Hajo Ziplies.

Option Explicit
'
Sub absolutBezuege()
 Dim RaC As Range
 For Each RaC In Selection
 If RaC.HasFormula = True Then
 RaC.Formula = Application.ConvertFormula(RaC.Formula, xlA1, , xlAbsolute)
 End If
 Next
End Sub
'
Sub relativBezuege()
 Dim RaC As Range
 For Each RaC In Selection
 RaC.Formula = Application.ConvertFormula(RaC.Formula, xlA1, , xlRelative)
 Next
End Sub
'
Sub Spalte\_absolut()
 Dim RaC As Range
 For Each RaC In Selection
 If RaC.HasFormula = True Then
 RaC.Formula = Application.ConvertFormula(RaC.Formula, xlA1, , xlRelRowAbsColumn)
 End If
 Next
End Sub
'
Sub Zeile\_absolut()
 Dim RaC As Range
 For Each RaC In Selection
 If RaC.HasFormula = True Then
 RaC.Formula = Application.ConvertFormula(RaC.Formula, xlA1, , xlAbsRowRelColumn)
 End If
 Next
End Sub

' xlA1 Schreibweise in A1-Bezugsart
' xlR1C1 Schreibweise in Z1S1-Bezugsart
' xlAbsolute Spalten- und Zeilenbezeichnung absolut
' xlAbsRowRelColumn Spaltenbezeichnung absolut, Zeilenbezeichnung relativ
' xlRelRowAbsColumn Spaltenbezeichnung relativ, Zeilenbezeichnung absolut
' xlRelative Spalten- und Zeilenbezeichnung relativ

Gruß
Reinhard

1 Like

Hallo Andreas,

ich fand eine Lösung von Hajo Ziplies.

Gruß
Reinhard

Hallo Reinhard,

das sieht doch ganz prima aus. ConvertFormula kannte ich noch nicht.
Danke für’s Stöbern - und Stern,

Gruß, Andreas

1 Like

das sieht doch ganz prima aus. ConvertFormula kannte ich noch
nicht.
Danke für’s Stöbern - und Stern,

Hallo Andreas,

wenn du Interesse an Excel/Vba hast lohnt es sich sehr sicher daß du dir diese Webseite bookmarkst:

http://hajo-excel.de/index.htm

Sie ist recht aktuell und soweit ich das überflogen habe ist auch sehr viel dort kompatibel zu Excel 2007 gemacht worden sofern es im Einzelfall ging.

Gruß
Reinhard

http://hajo-excel.de/index.htm

Sie ist recht aktuell und soweit ich das überflogen habe ist
auch sehr viel dort kompatibel zu Excel 2007 gemacht worden
sofern es im Einzelfall ging.

Gruß
Reinhard

Ja, danke Reinhard,
da hatte ich neulich schon mal kurz reingeschaut. War aber dann irgendwie wieder in Vergessenheit geraten. Hab’s jetzt als Lesezeichen.

Gruß und schönen Abend,
Andreas