Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1900to1904
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

E-Mail aus VBA

E-Mail aus VBA
10.10.2022 08:44:44
Georg
Liebe Mitglieder, es geht um folgende Datei, und vielleicht könnte j-d das Szenario durchspielen (dauert 2 Minuten) und mir dann weiterhelfen:
https://www.herber.de/bbs/user/155583.xlsm
Die Datei ist noch im Entwurf es geht um den Code in der Userform UFRollenRechteBPx.
Folgende Schritte wären vom Anwender durchzuführen:
Tabelle "Start" Button Neueinstellung
Ausfüllen Name etc, aus Bereich BPx, aus Position Sachbearbeiterin BPx auswählen
Button Daten übernehmen
dann
Button Rollen / Rechte aufrufen
Linke Listbox so belassen, rechte Listbox 2 oder 3 Rechte auswählen
Token Seriennummer: eine Nummer eingeben (Textfeld alte Position ignorieren)
dann Button Übernehmen
So dann kommt das Entscheidende: Mails generieren versenden, wo es mir nicht gelingt alle 3 mit Inhalt zu befüllen.
Es soll jedesmal ein Teil der Daten übernommen werden:
Button: Ticket Konto AD Outlook senden aufrufen, befüllen, absenden: geht
Button: Ticket Token aufrufen, befüllen, absenden geht
Button: Ticket EgoSecure aufrufen, geht aber BEFÜLLEN: die Mail geht auf, aber KEIN Inhalt drin / oder manchmal auch der vorherige kopierte Inhalt
Ich komme nicht weiter und hab schon stundenlang versucht, die Ursache zu finden.
Vielleicht könnte es j-d mit der mitgeschickten Datei durchspielen, und mir einen Tipp geben, warum es 2x funktioniert, das dritte Mal nicht?
Vielen Dank für die Mühe schon mal im voraus. Gruß Georg

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: E-Mail aus VBA
10.10.2022 10:42:17
ralf_b
du referenzierst nicht sauber auf das Arbeitsblatt.
du suchst "Endetiket" in Spalte 2 , Es liegt aber in Spalte 1
Set EndeTicket1 = lastWsh.Columns(2).Find(what:="EndeTicket1")
und das Ergebnis deiner Suche wird nicht geprüft. d.h. range.find() findet nichts in Spalte 2, somit ist Endetiket1 = Nothing wird aber ungeprüft weiterverarbeitet.
die folgende Range wird also nicht korrekt erzeugt.
Set Ticketinhalt = lastWsh.Range(Cells(1, 1), Cells(EndeTicket1.Row - 1, EndeTicket1.Column))
AW: E-Mail aus VBA
10.10.2022 11:22:27
Georg
Hallo Ralph, ich weiß nicht ob wir gerade an einander vorbei reden. Ich bin - was Userforms etc anbelangt ein Anfänger. Bei mir geht:
Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14 : EndeTicket1 liegt doch in Spalte B?
Private Sub CommandButton3_Click()
'Updated by Extendoffice 2017/9/14
'Button für den Mailversand: Tokennummer
-------------------------------------------------------------------
Was nicht geht ist dieser Button: und da komm ich nicht dahinter, Referenzierung falsch? VBA Code zu anfängerhaft? Ich weiß es nicht.
Private Sub CommandButton2_Click()
'Updated by Extendoffice 2017/9/14
'Button für den Mailversand: EgoSecure
Danke wenn du dir nochmals die Mühe machst, es anzuschauen. Gruß G
Anzeige
AW: E-Mail aus VBA
10.10.2022 11:30:28
ralf_b
"Endetiket1" liegt in deiner Beispieldatei in A71 Wenn wir diesen Konsens nicht erreichen, macht das keinen Sinn weiterzugucken.
AW: E-Mail aus VBA
10.10.2022 11:45:46
Georg
Jetzt weiß ich was du meinst mit A71, aber es wird ja mit dem Button Daten übernehmen (Private Sub cmdDatenToSheetBPx_Click()) ein neues Tabellenblatt erzeugt, was dann immer Personalstammblatt-*** heißt und in welchem sich dann die 3 Teilranges befinden:
Die drei "Mail Versand" Buttons behinhalten dann den Code zur Referenzierung auf das letzte Blatt:
'das letzte Worksheet bestimmen (Kommtar von mir: also das Personalstammblatt xyz)
Dim lastWsh As Worksheet
Set lastWsh = ThisWorkbook.Worksheets(Sheets.Count)
'-----------------------------------------------------
Gruß G
Anzeige
AW: E-Mail aus VBA
10.10.2022 12:36:05
ralf_b
der Punkt geht an dich.
Hier mein Ergebnis:
es reicht nicht das worksheet in eine Variable zu pressen. Du solltest es dann auch konsequent nutzen. Also auch beim find()
Find(what:="EndeTicket3") das suchst du, aber das Find(what:="Ende Ticket3") solltest du suchen. Es ist wichtig das man genau hinsieht wenn man Suchworte verwendet. So ein Leerzeichen ist schon nicht unwichtig.
auch hier wird nicht geprüft ob die Suche erfolgreich war. Somit sind Folgefehler logisch.
On error resume next - deine Fehlerbehandlungen erschweren das Auffinden von Fehlern. Damit tust du dir keinen Gefallen.
Anzeige
AW: E-Mail aus VBA ....DANKE!!
10.10.2022 13:41:28
Georg
Ralf, es geht, nachdem ich den betroffenen Code nochmals minutiös durchgegangen bin.
Mit dem Errorhandler hast du Recht, ich habe leider die Fehlerbehandlung in VBA überhaupt nicht drauf, muss mich damit mal beschäftigen bei komplexeren Codes. Du hast mir weitergeholfen, weil ohne die letzte Mail wäre das ganze Teil hinfällig und all die Zeit dafür. Gruß Georg

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige