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

VBA Variable mit Formel füllen

Forumthread: VBA Variable mit Formel füllen

VBA Variable mit Formel füllen
26.11.2019 14:46:16
Hartmut_M
Hallo, bitte um Hilfe zu folgender Frage:
Ich möchte in VBA eine Variable mit einer Sverweis Formel füllen. Ist das möglich und wenn ja wie?
Hintergrund: Einem Namen soll die Anrede Herr oder Frau hinzugefügt werden.
Die Namen stehen auf einem Tabellenblatt. In einer weiteren Spalte dann Herr oder Frau.
Wenn ich jetzt im Code den Namen "Fischer" habe, möchte ich hier per S-Verweis auslesen, ob die Anrede Herr oder Frau ist.
Ich stelle mir das ungefähr so vor:
varAnrede =SVERWEIS("Fischer";$A$14:$C$17;2;FALSCH)
Wie müsste ich das richtig eingeben?
VG Hartmut
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Variable mit Formel füllen
26.11.2019 15:06:43
Hajo_Zi
Hallo Harmut,
kein Semikolon, syonder Komma.
Vlookup()

AW: VBA Variable mit Formel füllen
26.11.2019 15:18:38
Hartmut_M
Hallo HaJo,
hab jetzt diesen Code:
Sub Makro2()
Dim varAnrede$
varAnrede =VLookup("Fischer", A14:C17, 2, FALSCH)
End Sub
Es kommt die Fehlermeldung "Erwartet: Listentrennzeichen oder)" und der Doppelpunkt wird markiert.
Würdest du mir bitte nochmal weiterhelfen?
Anzeige
AW: VBA Variable mit Formel füllen
26.11.2019 15:28:31
Klaus
Hallo Hartmut,
Sub Makro2()
Dim varAnrede$
varAnrede = Application.WorksheetFunction.VLookup("Fischer", Tabelle1.Range("A14:C17"), 2,  _
False)
MsgBox varAnrede
End Sub
Viel Spaß damit,
Klaus M.
AW: VBA Variable mit Formel füllen
26.11.2019 15:31:16
Hartmut_M
Super, jetzt klappt's.
Herzlichen Dank euch beiden.
VG Hartmut
Anzeige
Danke für die Rückmeldung! owT.
26.11.2019 19:13:52
Klaus
.
AW: VBA Variable mit Formel füllen
26.11.2019 15:42:31
Hajo_Zi
es fehlt um den Bereich Range
Gruß Hajo
AW: VBA Variable mit Formel füllen
26.11.2019 16:06:50
Hartmut_M
Ja, das war es. Sollte eigentlich nach 15 Jahren VBA nicht mehr passieren. Schäm :-(
Vielen Dank nochmal für die Unterstützung.
Gruß Hartmut
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Variable mit Formel füllen


Schritt-für-Schritt-Anleitung

  1. Öffne die VBA-Entwicklungsumgebung: Drücke Alt + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf dein Projekt im Projektfenster und wähle Einfügen > Modul.

  3. Deklariere eine Variable: Nutze die folgende Syntax, um eine Variable für die Anrede zu deklarieren:

    Dim varAnrede As String
  4. Verwende die VLookup-Funktion: Um die Anrede aus einer Tabelle zu holen, kannst du den folgenden Code verwenden:

    varAnrede = Application.WorksheetFunction.VLookup("Fischer", Tabelle1.Range("A14:C17"), 2, False)
  5. Füge eine Ausgabe hinzu: Um das Ergebnis zu überprüfen, kannst du eine MsgBox hinzufügen:

    MsgBox varAnrede
  6. Führe das Makro aus: Schließe den VBA-Editor und führe das Makro über Excel aus, um die Anrede anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: "Erwartet: Listentrennzeichen oder )"
    Ursache: Du hast möglicherweise ein Semikolon anstelle eines Kommas in deiner VLookup-Anweisung verwendet.
    Lösung: Stelle sicher, dass du Kommas verwendest, z.B. VLookup("Fischer", A14:C17, 2, False).

  • Fehler: "Bereich nicht gefunden"
    Ursache: Der angegebene Bereich ist nicht korrekt oder existiert nicht.
    Lösung: Überprüfe, ob der Bereich Tabelle1.Range("A14:C17") korrekt ist und die Daten enthält.


Alternative Methoden

Wenn du keine VLookup-Funktion verwenden möchtest, kannst du auch die S-Verweis-Funktion in Excel nutzen, um die Anrede direkt in der Zelle zu berechnen. Schreibe in eine Zelle:

=SVERWEIS("Fischer"; A14:C17; 2; FALSCH)

Dies funktioniert jedoch nur in der Excel-Oberfläche, nicht in VBA.


Praktische Beispiele

Hier ist ein Beispiel, um die Verwendung einer VBA Variable mit einer Formel zu verdeutlichen:

Sub AnredeErmitteln()
    Dim varAnrede As String
    varAnrede = Application.WorksheetFunction.VLookup("Müller", Tabelle1.Range("A14:C17"), 2, False)
    MsgBox "Die Anrede für Müller ist: " & varAnrede
End Sub

In diesem Beispiel wird die Anrede für den Namen "Müller" ermittelt und in einer Meldungsbox angezeigt.


Tipps für Profis

  • Fehlerbehandlung einfügen: Nutze On Error Resume Next, um Fehler zu umgehen und die Ausführung fortzusetzen.

  • Dynamische Bereiche: Verwende dynamische Namensbereiche, um sicherzustellen, dass dein VLookup immer die aktuellen Daten abruft.

  • Debugging: Nutze Debug.Print zur Überprüfung von Variablenwerten während der Ausführung, um Probleme schneller zu identifizieren.


FAQ: Häufige Fragen

1. Wie kann ich die Variable global machen?
Um eine vba excel variable global zu machen, deklariere sie außerhalb von Subroutinen im Modul.

2. Kann ich andere Funktionen wie SVERWEIS verwenden?
Ja, du kannst auch andere Excel-Funktionen in VBA verwenden, aber die Syntax unterscheidet sich. Nutze Application.WorksheetFunction für die Nutzung von Excel-Funktionen in VBA.

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