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

VBA: User Form TextBox auslesen u. per Email sende

Forumthread: VBA: User Form TextBox auslesen u. per Email sende

VBA: User Form TextBox auslesen u. per Email sende
07.12.2004 13:04:09
André
Hallo miteinander,
ich würde gerne Daten (Name, Tel., Email,...), welche der Anwender in einer UserForm in TextBoxen eingegebben hat, auslesen und in einer Email verschicken. Ich denke mal, die TextBoxen kann ich mit TextBox1.Value auslesen, und dann? Weiter komm ich nicht...Wäre super, wenn mir jemand helfen könnte. Schon mal danke im voraus.
Gruß, André
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: User Form TextBox auslesen u. per Email sende
07.12.2004 13:46:54
André
Hi Rainer,
danke für die schnelle Antwort. Ich hab grad selber noch mal meine Gehirnwindungen angestrengt...also besser gesagt: ich hab mal das Brett vorm Kopf weggenommen...hab wohl etwas um die Ecke gedacht. Alles was ich wollte ist dies:
Dim TitleText As Char
TitleText = Title.Value
Dim olApp As Object, c
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.Recipients.Add "hutzl@wutzl.com"
.Subject = "Betreff"
.Body = "Title: " & TitleText
.Display
End With
Ja ja, erst nachdenken...Danke Dir trotzdem, interessante Seite!
Ist es eigentlich möglich, Outlook zu umgehen?
André
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

UserForm in Excel: Daten aus TextBox auslesen und per E-Mail versenden


Schritt-für-Schritt-Anleitung

Um die Daten aus einer UserForm in Excel auszulesen und per E-Mail zu versenden, befolge diese Schritte:

  1. Erstelle eine UserForm: Öffne den VBA-Editor (Alt + F11) und füge eine neue UserForm hinzu. Platziere TextBoxen für die Daten, die der Benutzer eingeben soll (z.B. Name, Telefonnummer, E-Mail).

  2. Füge einen Button hinzu: Platziere einen Befehlsschalter (Button) auf der UserForm, der das Programm auslöst, wenn der Benutzer darauf klickt.

  3. Code zum Auslesen der TextBoxen: Doppelklicke auf den Button und füge folgenden Code hinzu, um die Werte der TextBoxen auszulesen und eine E-Mail zu erstellen:

    Private Sub CommandButton1_Click()
        Dim olApp As Object
        Dim olMail As Object
        Dim NameText As String
        Dim TelText As String
        Dim EmailText As String
    
        NameText = TextBox1.Value
        TelText = TextBox2.Value
        EmailText = TextBox3.Value
    
        Set olApp = CreateObject("Outlook.Application")
        Set olMail = olApp.CreateItem(0)
    
        With olMail
            .To = EmailText
            .Subject = "Neue Anfrage von " & NameText
            .Body = "Name: " & NameText & vbCrLf & "Telefon: " & TelText
            .Display  ' Verwende .Send, um direkt zu senden
        End With
    End Sub
  4. Testen: Schließe den VBA-Editor und teste die UserForm im Excel. Gib Daten in die TextBoxen ein und klicke auf den Button, um die E-Mail zu generieren.


Häufige Fehler und Lösungen

  • Outlook öffnet sich nicht: Stelle sicher, dass Microsoft Outlook auf deinem Computer installiert und konfiguriert ist. Der Code setzt voraus, dass Outlook als E-Mail-Client verwendet wird.

  • Falsches E-Mail-Format: Achte darauf, dass die E-Mail-Adresse in der entsprechenden TextBox korrekt eingegeben wird. Andernfalls kann Outlook die E-Mail nicht versenden.

  • Run-time Error '424': Dieser Fehler tritt auf, wenn ein Objekt nicht gefunden wird. Überprüfe, ob alle TextBoxen korrekt benannt sind und die richtigen Werte auslesen.


Alternative Methoden

Wenn du Outlook umgehen möchtest, kannst du die Daten auch in einer Excel-Tabelle speichern oder sie in eine Textdatei exportieren. Hier ist ein Beispiel, wie du die Daten in eine Tabelle einfügen kannst:

Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Daten")  ' Erstelle ein Blatt mit dem Namen Daten

    With ws
        .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = TextBox1.Value  ' Name
        .Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = TextBox2.Value  ' Telefon
        .Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Value = TextBox3.Value  ' E-Mail
    End With
End Sub

Praktische Beispiele

Hier ist ein praktisches Beispiel, wie eine UserForm mit mehreren TextBoxen aussehen könnte:

  • TextBox1: für den Namen
  • TextBox2: für die Telefonnummer
  • TextBox3: für die E-Mail-Adresse

Wenn du den Code entsprechend anpasst, kannst du die Inhalte dieser TextBoxen in einer E-Mail verwenden, die direkt aus Excel versendet wird.


Tipps für Profis

  • Verwende Fehlerbehandlungsroutinen: Implementiere On Error Resume Next und On Error GoTo 0, um unerwartete Fehler während der Ausführung zu behandeln.

  • Nutze die Send-Methode: Wenn du sicher bist, dass die E-Mail korrekt ist, kannst du die .Display-Methode durch .Send ersetzen, um die E-Mail automatisch zu versenden.

  • Füge Validierungen hinzu: Stelle sicher, dass die Eingaben in den TextBoxen vor dem Versenden validiert werden, um Fehler und Spam zu vermeiden.


FAQ: Häufige Fragen

1. Kann ich die E-Mail auch ohne Outlook versenden?
Ja, du kannst auch SMTP-Bibliotheken verwenden, um E-Mails ohne Outlook zu versenden, jedoch erfordert dies zusätzliche Programmierung.

2. Wie kann ich die UserForm gestalten?
Du kannst die UserForm im VBA-Editor anpassen, indem du Farben, Schriftarten und Layouts änderst, um das Aussehen nach deinen Wünschen zu gestalten.

3. Was muss ich tun, wenn ich mehrere Empfänger angeben möchte?
Trenne die E-Mail-Adressen durch ein Semikolon (;) im entsprechenden Textfeld oder passe den Code an, um mehrere Empfänger hinzuzufügen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige