Live-Forum - Die aktuellen Beiträge
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
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