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

Fehler in Code. Doch wo?

Fehler in Code. Doch wo?
14.05.2013 09:11:36
Pascal
Guten Tag
Ich hab mir folgenden Code zusammengebaut, um einer Email die Signatur hinzuzufügen.
Die Signaturen werden dabei in eine Combobox auf einer Userform geladen.
Der User wählt nun die gewünschte Signatur aus der Combobox aus und lässt sich die Email erstellen.
Das funktioniert soweit alles perfekt.
Doch …
Warum wird mir im untenstehenden Code mal eine Email fehlerlos aufgebaut, (Case1) beim Case2 hingegen (und dies, obwohl ich
den genau gleichen Code-Aufbau wie bei Case1 verwende) bringt mir VBA eine Fehlermeldung:
Laufzeitfehler5: Ungültiger Prozessaufruf oder ungültiges Argument
Der Code bleibt dann im Case2 bei der folgenden Zeile stehen:
.GetInspector.CommandBars.Item("Insert").Controls("Signatur2").Controls(strSignatur2). _
Execute
Hier der Code aus Case1 und Case2
Wäre wirklich nett, wenn mir hier jemand bei der Fehlerbehebung behilflich sein könnte.
(hoffe, dass meine Frage so verständlich ist. Leider kann ich das File hier nicht posten da zu gross und zuviele vertrauliche Daten)
Im voraus herzlichen Dank!
Sub Verzweigung(Wohin As Integer)
Dim objNachricht As Object
Dim objNachricht2 As Object
Dim objMail As Object
Dim objMail2 As Object
Dim rngBereich As Range
Set objMail = CreateObject("Outlook.Application")
Set objNachricht = objMail.CreateItem(0)
Set objMail2 = CreateObject("Outlook.Application")
Set objNachricht2 = objMail.CreateItem(0)
Select Case Wohin
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Case 1
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Set rngBereich = Sheets(IM_Nummer).Range("A1:B17")
'Schriftfarbe wird wieder auf schwarz gesetzt
'--------------------------------------------
Range("A1:Z100").Font.ColorIndex = xlAutomatic
Range("A1:Z100").Interior.ColorIndex = xlAutomatic
With objNachricht
.To = "pascal.marolf@coop.ch"
.Subject = "STATUSBERICHT" & " " & Sheets(IM_Nummer).Range("A5").Value
.HtmlBody = vbLf & RangetoHTML(rngBereich)
.ReadReceiptRequested = False
.display
'Funktion um die Signatur auszuwählen
'?
'Cursor ans Ende der EMail setzen
VBA.SendKeys "^{END}", True
'Name der gespeicherten Signatur - bitte anpassen
strSignatur = Signatur 'die auf der UserForm4 ausgewählte Signatur wird nun aus der Public-Variable gelesen.
'Einfügen einer bestimmten Signatur
.GetInspector.CommandBars.Item("Insert").Controls("Signatur").Controls(strSignatur). _
Execute
'.send
End With
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Case 2
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'1. Teil: Email wird aufgebaut
'-----------------------------
Set rngBereich = Sheets(IM_Nummer).Range("A1:B26")
'Schriftfarbe wird wieder auf schwarz gesetzt
'--------------------------------------------
Range("A1:Z100").Font.ColorIndex = xlAutomatic
Range("A1:Z100").Interior.ColorIndex = xlAutomatic
With objNachricht
.To = "pascal.marolf@coop.ch"
.Subject = "STATUSBERICHT" & " " & Sheets(IM_Nummer).Range("A5").Value
.HtmlBody = vbLf & RangetoHTML(rngBereich)
.ReadReceiptRequested = False
.display
'Funktion um die Signatur auszuwählen
'?
'Cursor ans Ende der EMail setzen
VBA.SendKeys "^{END}", True
'Name der gespeicherten Signatur - bitte anpassen
strSignatur2 = Signatur2 'die auf der UserForm5 ausgewählte Signatur wird nun aus der Public-Variable gelesen.
'Einfügen einer bestimmten Signatur
.GetInspector.CommandBars.Item("Insert").Controls("Signatur2").Controls(strSignatur2). _
Execute
'.send
End With
Set objNachricht = Nothing
Set objMail = Nothing
Set rngBereich = Nothing

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

Betreff
Datum
Anwender
Anzeige
AW: Fehler in Code. Doch wo?
14.05.2013 09:32:55
Marc
Moin!
Ich habs natürlich nicht nachgebaut, aber mir ist aufgefallen, dass du Signatur und "Signature" und Signature2 und "Signature2" verwendest.
Ich vermute dass du einen Knopf hast, der "Signatur" heißt (Controls("Signatur"))
Der heißt aber immer so! Schreib im 2ten Aufruf wieder "Signatur", dann ist der Aufruf nicht ungültig.
Ansonsten kannst du dir während der Prozedur die ganze Geschichte im Überwachungsfenster anschauen, am besten sogar den teilweisen Aufruf, dann siehst du, welcher Teil des Aufrufs nicht gültig ist.
Gruß, MCO

AW: Fehler in Code. Doch wo?
14.05.2013 09:41:26
Pascal
Hey !
Supermegamässig schnelle Hilfe und ... dazu noch den richtigen Tip :-)
ich hatte doch wirklich in der Eile übersehen, dass ich Signature mit einer 2 hinten dran vesehen hatte.
(ich Dummerchen hatte das zu Testzwecken bei einer Variable hintendran gemacht und dann nicht mehr entfernt)
VIELEN DANK !

Anzeige
mit Option Explicit ...
14.05.2013 10:00:28
Rudi
Hallo,
... wär das nicht passiert.
Da hätte der Compiler über nicht vorh. Variablendeklarationen gemeckert.
Gruß
Rudi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige