Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Wenn "Herr" dann "Sehr geehrter Herr"

VBA: Wenn "Herr" dann "Sehr geehrter Herr"
18.02.2021 21:47:52
Basti
Hallo Zusammen,
ich freue mich über jegliche Hilfe.
ich habe eine Makro, die Daten aus einer Tabelle entnimmt und in eine E-Mail hineintun soll.
Bei der Anrede jedoch habe ich in meiner Tabelle nur die Bezeichnung "Frau" und "Herr".
Ich möchte nun, dass in der Makro für die Anrede drinne steht, dass wenn in der Tabelle "Herr" steht dann "Sehr geehrter Herr" sonst "Sehr geehrte Frau" stehen soll.
In AA ist hier eine Nummer hinterlegt die der entsprechenden Person zugeordnet ist.
Daraufhin springt Excel in die andere Datei und sucht sich die korrekte Person und in Spalte A:1-A100 stehen die Personen mit Herr bzw, Frau.
Hier meine Codierung (die falsch ist):
Anrede = Application.WorksheetFunction.VLookup(AA, QUELLDATEI.Sheets("Test").Range("$A$1:$A$100"),"Herr" Then body = "Sehr geehrter" Else body = "Sehr geehrte")
Über jegliche Unterstützung bin ich dankbar.
Basti

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Wenn "Herr" dann "Sehr geehrter Herr"
18.02.2021 22:31:41
Yal
Hallo Basti,
verschieden Ansätze kommen hier zusammen.
Einen VLookup hat normalerweise als zweite Argument einen Bereich, dass mindestens 2 Spalten: in der erste wird gesucht, aus der zweite, dritte, ... (3ter Param) wird zurückgegeben.
In VBA kannst Du direkt den Inhalt testen:
If InStr(1, Worksheets("x").Range("A1"), "Herr", vbTextCompare) > 0 Then
Worksheets("x").Range("A1") = "Sehr geehrter Herr"
ElseIf InStr(1, Worksheets("x").Range("A1"), "Frau", vbTextCompare) > 0 Then
Worksheets("x").Range("A1") = "Sehr geehrte Frau"
End If
Wenn Du aber eine ganze Liste hast, dann doch
Ergebnis = WorksheetFunction.VLookup(Worksheets("x").Range("A1"), Worksheets("Dictionary"). _
Range("A:B"), 2, False)
If Not IsError(Ergebnis) Then Worksheets("x").Range("A1") = Ergebnis

(für IsError bin ich mir nicht sicher. Vielleicht gibt es ein feste Werte wie "#NV", die man testen kann)
sollte diese Möglichkeit chon während das Eintippen greifen, könntest Du deine "Liste" ins Autokorrektur-Wörterbuch eintragen. Dann brauchst keine VBA.
Ansonsten verwende ich PhraseExpress (Nachfolger von GhostTyper), was das Eintippen von wiederkehrenden Textbaustein wesentlich erleichtert.
VG
Yal
Anzeige
AW: VBA: Wenn "Herr" dann "Sehr geehrter Herr"
24.02.2021 15:48:15
Basti
Hallo Yal,
entschuldige mein verspätete Rückmeldung.
Vielen Dank für deine Unterstützung.
Basti
Vielen Dank für die Rückmeldung. oT
24.02.2021 19:57:59
Yal

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige