Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sverweis per Makro in eine Zelle eintragen

Forumthread: Sverweis per Makro in eine Zelle eintragen

Sverweis per Makro in eine Zelle eintragen
07.12.2002 19:56:15
MAtthias Best
Hallo,
ich habe folgendes Problem: per Makro möchte ich eine Art Formelwiederherstellfunktion ermöglichen. Dazu sollen per Druck auf eine Schaltfläche ein Makro ausgelöst werden. Dieses Makro soll dann die Formeln in die jeweiligen Zellen schreiben z.B. so:
Sub Reparatur()
ThisWorkbook.Sheets("Deckblatt").Cells(1, 11).Formula = "='alle Ratenzahlungen'!O1+1"
ThisWorkbook.Sheets("Deckblatt").Cells(1, 10).Formula = "=SVERWEIS(Deckblatt!I1;Auswahluserform3a;7)"
End Sub
Das Problem ist nun, daß die erste Formel wieder ersetzt wird, aber nicht die zweite Formel. Was mache ich falsch???
Über tatkräftige Hilfe würde ich mich freuen!!
Matthias
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Sverweis per Makro in eine Zelle eintragen
07.12.2002 20:12:36
Nepumuk
Hallo Matthias,
die Zeile muss richtig lauten:

ThisWorkbook.Sheets("Deckblatt").Cells(1, 10).FormulaR1C1 = "=VLOOKUP(Deckblatt!R[-9]C[8],Auswahluserform3a,7)"

Gruß
Nepumuk

Uups
07.12.2002 20:16:09
Nepumuk
Hallo Matthias,
bin in der falschen Zeile und Spalte gelandet. Richtig ist:

=VLOOKUP(Deckblatt!RC[-1],Auswahluserform3a,7)

Gruß
Nepumuk

Anzeige
Re: Sverweis per Makro in eine Zelle eintragen
07.12.2002 20:18:24
Matthias Best
Hallo Nepumuk,

erstmal Vielen Dank für die schnelle Hilfe! Ich werde es gleich Montag ausprobieren! Aber eine Frage habe ich noch : Wie kommt man von Deckblatt!I1 auf Deckblatt!R[-9]C[8]? Eine kurze Antwort wäre nicht schlecht, da ich noch einige von solchen Sverweisen auf anderen Tabellenblättern sichern möchte!!
Gruß Matthias

Anzeige
Re: Sverweis per Makro in eine Zelle eintragen
07.12.2002 20:36:36
Nepumuk
Hallo Matthias,
R und C sehen für Row und Column. R[-9] bedeutet 9 Zeilen nach oben, C[8] bedeutet 8 Spalten nach rechts. Da ich anstelle von Zelle J1 in Zelle A10 gelandet bin, musste ich mich zur Zelle I1 hinrechnen.
Gruß
Nepumuk

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Sverweis per Makro in eine Zelle eintragen


Schritt-für-Schritt-Anleitung

Um einen SVERWEIS per VBA in eine Zelle zu schreiben, kannst du folgendes Makro verwenden. Dieses Beispiel zeigt, wie du Formeln in die Zellen des "Deckblatts" einfügen kannst:

Sub Reparatur()
    ThisWorkbook.Sheets("Deckblatt").Cells(1, 11).Formula = "='alle Ratenzahlungen'!O1+1"
    ThisWorkbook.Sheets("Deckblatt").Cells(1, 10).FormulaR1C1 = "=VLOOKUP(Deckblatt!R[-9]C[8],Auswahluserform3a,7)"
End Sub
  1. Öffne den VBA-Editor mit ALT + F11.
  2. Erstelle ein neues Modul über Einfügen > Modul.
  3. Füge den obigen Code in das Modul ein.
  4. Schließe den VBA-Editor.
  5. Weise das Makro einer Schaltfläche zu, um es auszuführen.

Häufige Fehler und Lösungen

  • Problem: Die Formel wird nicht in die Zelle geschrieben.

    • Lösung: Stelle sicher, dass du die richtige Syntax für die Formel verwendest. Verwende Formula für Standardformeln und FormulaR1C1 für relative Adressierung.
  • Problem: Die Zelle zeigt einen Fehler an.

    • Lösung: Überprüfe, ob die Referenzen und der Bereich in deiner Formel korrekt sind. Achte darauf, dass die Tabelle "Auswahluserform3a" existiert.

Alternative Methoden

Wenn du den SVERWEIS in VBA umsetzen möchtest, kannst du auch die Funktion Application.WorksheetFunction.VLookup verwenden:

Sub VLookupExample()
    Dim result As Variant
    result = Application.WorksheetFunction.VLookup(ThisWorkbook.Sheets("Deckblatt").Cells(1, 9).Value, _
              ThisWorkbook.Sheets("Auswahluserform3a").Range("A1:G100"), 7, False)
    ThisWorkbook.Sheets("Deckblatt").Cells(1, 10).Value = result
End Sub

Diese Methode ermöglicht dir, den SVERWEIS direkt in VBA durchzuführen und das Ergebnis in eine Zelle zu schreiben, ohne eine Formel einzufügen.


Praktische Beispiele

Hier sind einige Beispiele, wie du den SVERWEIS in VBA verwenden kannst:

  1. Direkte Zuweisung einer Formel:
ThisWorkbook.Sheets("Deckblatt").Cells(2, 10).Formula = "=SVERWEIS(A2, Tabelle2!A:B, 2, FALSCH)"
  1. Nutzung von FormulaR1C1:
ThisWorkbook.Sheets("Deckblatt").Cells(2, 10).FormulaR1C1 = "=VLOOKUP(RC[-1], Tabelle2!C1:C2, 2, FALSE)"

In diesen Beispielen wird gezeigt, wie man den SVERWEIS sowohl in Standard- als auch in relativen Adressierungen einfügt.


Tipps für Profis

  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Nutze Error Handling, um Fehler während der Ausführung deines Makros abzufangen. Beispiel:
On Error Resume Next
' Dein Code hier
If Err.Number <> 0 Then
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End If
On Error GoTo 0
  • Halte deine Makros modular und strukturiert, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich SVERWEIS in einer anderen Tabelle verwenden?
Du kannst die Tabelle in der Formel angeben, z.B. =SVERWEIS(A1, Tabelle2!A:B, 2, FALSCH).

2. Warum funktioniert mein VBA-SVERWEIS nicht?
Überprüfe die Syntax und die Referenzen. Achte darauf, dass die gesuchte Tabelle und der Bereich existieren.

3. Was ist der Unterschied zwischen Formula und FormulaR1C1?
Formula verwendet die A1-Notation, während FormulaR1C1 die relative Zellreferenzierung verwendet, was nützlich ist, wenn du mit verschobenen Zellen arbeitest.

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