Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Absoluter Zellbezug in VBA

Absoluter Zellbezug in VBA
09.03.2007 09:27:00
Ludwig
Hallo Excel Experten
In meinen Sheets möchte lasse ich einige Zellwerte in VBA berechnen. Das Ergebnis oder auch Inputvariablen schreibe/lese ich in Zellen des Sheets.
z.B. :
Private Sub CommandButton1_Click()
Range("$J$38").Value = "=$C$4"
End Sub

Füge ich nun im Excel-Sheet Zeilen/Spalten ein oder lösche welche stimmt der Zellbezug nicht mehr!
Wie kann ich diesen dynamisch gestalten?
Vielen Dank für die Antwort!
Gruß Ludwig
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Absoluter Zellbezug in VBA
09.03.2007 09:43:00
ingoG
Hallo Ludwig,
Du fügst mit Deinem Befehl nur einen Text ein der sich nat. nicht ändert.
mit
Private Sub CommandButton1_Click()
Range("$J$38").FormulaLocal = "=$C$4"
End Sub

sollte es funzen
Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige
AW: Absoluter Zellbezug in VBA
09.03.2007 10:34:00
Ludwig
Hallo Ingo
Danke für die Info!
Jedoch ist das nicht das Problem, sondern nach den unvermeidlichen Änderungen im Excelsheet (1 Zeile oberhalb C4 eingefügt) müßte die neue Anweisung in VBA wie folgt lauten:
Private Sub CommandButton1_Click()
Range("$J$39").FormulaLocal = "=$C$5"
End Sub

Gruß Ludwig
Anzeige
AW: Absoluter Zellbezug in VBA
09.03.2007 13:34:00
ingoG
Hallo Ludwig,
wenn es sich nur um ein feld handelt, solltest Du über einen Namen nachdenken...
Dann kannst Du schreiben
Private Sub CommandButton1_Click()
Range("$J$39").FormulaLocal = "=FELD1"
End Sub

mit FELD1 über Einfügen/Namen/definieren verknüpfen mit C4
der Name des Feldes wandert dann immer mit...
Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige
AW: Absoluter Zellbezug in VBA
09.03.2007 14:04:01
Ludwig
Hallo Ingo
o.k. für C4 geht das ja, aber was ist mit ("$J$38")?
Alter Code (vor Zeilen einfügen):
Range("$J$38").FormulaLocal = "=$C$4"
Neuer Code (Zeile oberhalb C4 eingefügt):
Range("XXXXX").FormulaLocal = "=FELD1"
Gruß Ludwig
Range("Feld2").formulaLocal = ... oT
09.03.2007 14:53:24
ingoG
.
AW: Range("Feld2").formulaLocal = ... oT
13.03.2007 08:40:20
Ludwig
Hallo Ingo
...das ist exact das wonach ich so lange gesucht habe!
Range("SM0").Value = Range("SM0E").Value
Vielen Dank!
Gruß Ludwig
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Dynamische absolute Zellbezüge in VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein Modul hinzu: Rechtsklick auf "VBAProject (DeinWorkbookName)" > Einfügen > Modul.

  3. Erstelle einen Button: Füge einen Button in dein Excel-Sheet ein (Entwicklertools > Einfügen > Schaltfläche).

  4. Füge den Code hinzu: Kopiere den folgenden VBA-Code in das Modul:

    Private Sub CommandButton1_Click()
       Range("$J$38").FormulaLocal = "=$C$4"
    End Sub
  5. Dynamische Anpassung: Um die absolute Zellbezüge dynamisch zu gestalten, benutze Namen für Zellen:

    Private Sub CommandButton1_Click()
       Range("$J$39").FormulaLocal = "=FELD1"
    End Sub
  6. Definiere den Namen: Gehe zu "Formeln" > "Namensmanager" und definiere FELD1 als Bezug auf C4.


Häufige Fehler und Lösungen

  • Problem: Der Zellbezug stimmt nicht mehr nach dem Einfügen von Zeilen.

    • Lösung: Verwende absolute Zellbezüge wie $C$4, um sicherzustellen, dass beim Einfügen von Zeilen die Referenz nicht verfälscht wird.
  • Problem: Der Code fügt nur Text ein.

    • Lösung: Verwende FormulaLocal statt Value, um den Bezug korrekt einzufügen:
    Range("$J$38").FormulaLocal = "=$C$4"

Alternative Methoden

Eine alternative Methode zur Verwendung von absoluten Zellbezügen ist die Verwendung von Excel-Tabellen (Listen). Mit Excel-Tabellen kannst Du Namen für Bereiche definieren, die automatisch aktualisiert werden, wenn Zeilen oder Spalten hinzugefügt oder entfernt werden.


Praktische Beispiele

Beispiel 1: Fester Zellbezug

Private Sub CommandButton1_Click()
    Range("$A$1").Value = Range("$B$1").Value
End Sub

Beispiel 2: Verwendung von benannten Bereichen

Private Sub CommandButton1_Click()
    Range("FELD1").Value = Range("FELD2").Value
End Sub

In diesen Beispielen zeigt sich, wie Du mit fester Zellbezüge in Excel sicherstellen kannst, dass Deine Formeln auch bei Änderungen im Sheet korrekt bleiben.


Tipps für Profis

  • Nutze Namen für Zellen: Sie helfen, die Formeln übersichtlicher zu gestalten.
  • Halte Deine VBA-Module sauber und dokumentiere Deinen Code, um die Wartung zu erleichtern.
  • Vermeide es, absolute Zellbezüge direkt in den Code zu schreiben. Verwende stattdessen benannte Bereiche, um die Flexibilität zu erhöhen.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen absoluten und relativen Zellbezügen? Ein absoluter Zellbezug bleibt immer gleich, während ein relativer Zellbezug sich anpasst, wenn Zellen verschoben werden.

2. Wie definiere ich einen Namen für eine Zelle oder einen Bereich? Gehe zu "Formeln" > "Namensmanager" und wähle "Neu". Gib den gewünschten Namen und den Zellbezug an.

3. Kann ich absolute Zellbezüge auch in Excel-Formeln direkt verwenden? Ja, Du kannst in Excel-Formeln direkte absolute Zellbezüge wie $A$1 verwenden, um sicherzustellen, dass die Referenz unverändert bleibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige