Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formel per VBA mit relativem Zellbezug

Formel per VBA mit relativem Zellbezug
10.08.2004 15:46:22
Wolfgang
Tag allerseits,
kämpfe momentan mit einem kleinen Problemchen. Ich muß per Makro folgende Formel in eine Zelle schreiben:
=ZELLE("Zeile";'Sheets2'!B5)
wichtig dabei ist der relative Zellbezug in der Tabelle in 'Sheets2'. In VBA sieht die Zeile zur Erstellung der Formel momentan so aus:
Range("c21").Formula = "=cell(""Zeile"",'Sheets2'!R5C2)"
Problem dabei ist nun, daß dabei lediglich ein absoluter Zellbezug erzeugt wird. Wie müßte die Zeile aussehen, damit der Bezug ein relativer wäre?
Vorab vielen Dank den EXCEL-Gurus.
Viele Grüße, Wolfgang
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel per VBA mit relativem Zellbezug
Ramses
Hallo
so geht es
Range("C21").FormulaLocal = "=ZELLE(""Zeile"";'Sheets2'!B5)"
Gruss Rainer
AW: Formel per VBA mit relativem Zellbezug
10.08.2004 15:58:02
Wolfgang
Sauber!!!
Hab vielen, Dank!!!
AW: Formel per VBA mit relativem Zellbezug
warum
Anzeige
Doppelt und dreifach
Boris
Hi Wolfgang,
=ZEILE(A5) bewirkt exakt das Selbe.
Grüße Boris
;
Anzeige
Anzeige

Infobox / Tutorial

Formel per VBA mit relativem Zellbezug


Schritt-für-Schritt-Anleitung

Um eine Excel-Formel mit einem relativen Zellbezug per VBA in eine Zelle einzufügen, kannst Du folgende Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor, indem Du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu, indem Du im Menü "Einfügen" auf "Modul" klickst.

  3. Schreibe das folgende Makro in das Modul:

    Sub RelativerZellbezug()
       Range("C21").FormulaLocal = "=ZELLE(""Zeile"";'Sheets2'!B5)"
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus. Du kannst das Makro über das Menü "Entwicklertools" oder mit F5 im VBA-Editor starten.

Durch diese Schritte wird die Formel in die Zelle C21 eingefügt, und der Bezug zu 'Sheets2' bleibt relativ.


Häufige Fehler und Lösungen

  • Fehler: Die Formel verwendet einen absoluten Zellbezug.

    • Lösung: Stelle sicher, dass Du die Methode FormulaLocal verwendest, um die Formel korrekt mit einem relativen Bezug einzufügen. Beispiel:
    Range("C21").FormulaLocal = "=ZELLE(""Zeile"";'Sheets2'!B5)"
  • Fehler: VBA kann die Excel-Formel nicht erkennen.

    • Lösung: Überprüfe, ob Du die richtige Spracheinstellung verwendest. Nutze die Formula-Eigenschaft, wenn Du die englische Version von Excel verwendest.

Alternative Methoden

Eine andere Möglichkeit, einen relativen Zellbezug zu verwenden, ist die Nutzung von Excel-Formeln direkt in der Zelle:

  1. Gehe zu Zelle C21.
  2. Gib die Formel direkt ein: =ZELLE("Zeile"; 'Sheets2'!B5).
  3. Diese Methode erfordert kein VBA, wenn Du nur eine einfache Formel benötigst.

Praktische Beispiele

Hier sind einige Beispiele, wie Du den relativen Zellbezug in VBA verwenden kannst:

  • Um die Zeilennummer einer Zelle zu erhalten:

    Sub Beispiel1()
       Range("C22").FormulaLocal = "=ZELLE(""Zeile"";'Sheets2'!B5)"
    End Sub
  • Um mehrere Zellen gleichzeitig zu befüllen:

    Sub Beispiel2()
       Range("C21:C25").FormulaLocal = "=ZELLE(""Zeile"";'Sheets2'!B5)"
    End Sub

In beiden Fällen wird der relative Bezug beibehalten, wenn die Formel nach unten kopiert wird.


Tipps für Profis

  • Nutze Application.WorksheetFunction, um Excel-Funktionen in VBA zu verwenden. Dadurch kannst Du auch komplexe Berechnungen durchführen.

  • Experimentiere mit der Offset-Methode, um dynamische Zellbezüge zu erstellen:

    Range("C21").Offset(1, 0).FormulaLocal = "=ZELLE(""Zeile"";'Sheets2'!B5)"
  • Verwende die Evaluate-Methode, um Formeln als Strings zu verarbeiten, wenn Du mehrere Berechnungen gleichzeitig durchführen möchtest.


FAQ: Häufige Fragen

1. Wo finde ich den VBA-Editor in Excel?
Du kannst den VBA-Editor öffnen, indem Du ALT + F11 drückst.

2. Was ist der Unterschied zwischen Formula und FormulaLocal?
Formula wird für englische Excel-Versionen verwendet, während FormulaLocal die aktuelle Sprache deiner Excel-Installation berücksichtigt.

3. Kann ich mehrere Zellen gleichzeitig mit einer Formel befüllen?
Ja, Du kannst den Bereich definieren, in dem die Formel angewendet werden soll, z.B. Range("C21:C25").FormulaLocal = "=ZELLE(""Zeile"";'Sheets2'!B5)".

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige