Texta aus InputBox in Makro weiterverwenden

Moderator: ModerationP

Texta aus InputBox in Makro weiterverwenden

Beitragvon MaH112 » 22. Aug 2019, 14:45

Hallo zusammen,

habe ein Makro laufen, was die E-Mail öffnet und einen vordefinierten Text einfügt:

'Makro erstellt 06/2018
'HINWEIS: Damit das Makro richtig läuft (die entsprechenden Ordner findet), muss die ...-Datei als Standard-Datendatei in Outlook (unter Datei - Kontoeinstellungen - Datendatei) definiert sein!

Sub ActivateEditing()
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim myOlMail As MailItem

Set myOlExp = Application.ActiveExplorer
Set myOlSel = myOlExp.Selection
If (TypeOf myOlExp.Selection.Item(1) Is Outlook.MailItem) Then
Set myOlMail = myOlSel.Item(1)
End If

If (TypeOf myOlMail Is Outlook.MailItem) Then
Set myIp = myOlMail.GetInspector
myIp.Activate
With myOlMail
.HTMLBody = " <p> Vfg.: <p> 1) !bExxx <p> a) Lage <p> b) Mails <p> 2) TA<p>i.A. ...<p> <p> <p> <p>" & .HTMLBody
End With
myIp.CommandBars.ExecuteMso ("EditMessage")
myOlMail.Display (True)
End If
Else
MsgBox "Keine E-Mail ausgewählt"
End If
End Sub

Aktuell lässt das Makro die E-Mail offen und ich muss händisch aus "bExxx" bspw. ein "bE158" oder ein "bE163" oder oder machen.

Ist es möglich, vor einfügen des Textes mittels InputBox einen max. dreistellige Zahl abzufragen und diese dann direkt anstelle des "xxx" einzufügen?
Wie bewerkstellige ich sowas?

Es läuft MS Outlook 14.0.7232.5000 (64-Bit) als Exchange.

Danke & VG
Marius
MaH112
 

Re: Texta aus InputBox in Makro weiterverwenden

Beitragvon CaBe » 23. Aug 2019, 12:15

Hallo Marius,

eigentlich bin ich bei Excel-VBA eher zuhause, aber evtl. klappt es schon so:
Code: Alles auswählen
Sub ActivateEditing()
  Dim myOlExp As Outlook.Explorer
  Dim myOlSel As Outlook.Selection
  Dim myOlMail As MailItem
  Dim bECode As String

  Set myOlExp = Application.ActiveExplorer
  Set myOlSel = myOlExp.Selection
  If (TypeOf myOlExp.Selection.item(1) Is Outlook.MailItem) Then
    Set myOlMail = myOlSel.item(1)
  End If

  If (TypeOf myOlMail Is Outlook.MailItem) Then
    bECode = InputBox("Bitte 3-stelligen bE Code eingeben.", "Office-Loesung")
    If Len(bECode) > 3 Then bECode = Right(bECode, 3)
   
    Set myIp = myOlMail.GetInspector
    myIp.Activate
    With myOlMail
      .HTMLBody = " <p> Vfg.: <p> 1) !bE" & bECode & "<p> a) Lage <p> b) Mails <p> 2) TA<p>i.A. ...<p> <p> <p> <p>" & .HTMLBody
    End With
    myIp.CommandBars.ExecuteMso ("EditMessage")
    myOlMail.Display (True)
  Else
    MsgBox "Keine E-Mail ausgewählt"
  End If
End Sub
Ich habe eine "End If" Anweisung vor dem "Else" gelöscht. Weiß nicht, woher die in deinem Codebeispiel kommt, aber dort gehört sie nicht hin! Die anderen Änderungen betreffe die (neue) bECode-Variable, welche allerdings auch per "Dim bECode As String" deklariert werden sollte.
Freundlichst
Carsten

Keine Antwort wäre wirklich schade! Windows 10 Pro, Office 2016 Pro Deutsch, manchmal Office 2016 Pro Englisch
Jede Änderung meiner Beiträge durch andere Benutzer möge bitte mit Grund und Namen gekennzeichnet werden.
Benutzeravatar
CaBe
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5724
Registriert: 06. Apr 2005, 09:20
Wohnort: Bremen

Re: Texta aus InputBox in Makro weiterverwenden

Beitragvon MaH112 » 24. Aug 2019, 23:18

Hallo Carsten,

danke, das funktioniert einwandfrei!

Das End If ist Teil eines Passus des Makros den ich bewusst rausgelassen hatte, da er für die Lösungsfindung irrelevnt ist (eine Routine, die drauf hinweist, dass man keine E-Mail sondern bspw. eine Termineinladung ausgewählt hat; hängt mit dem späteren archivieren auf einem FileServer zusammen). Habe beim rasulöschen wohl ein End If übersehen.

Jedenfalls danke für Deine Hilfe!
MaH112
 


Zurück zu Outlook Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste