Error 424 - Object required

Antwort erstellen

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :razz: :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :badgrin: :doubt:
BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet
Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Error 424 - Object required

Re: Error 424 - Object required

Beitrag von bynight » 03. Jul 2019, 08:14

Also falls nochmal jemand danach suchen sollte... Deklaration und Schleife müssen noch auf 21 erhöht werden...

Code: Alles auswählen
Public Sub ErsetzeSonderZeichenInEmail()

Dim ins            As Outlook.Inspector
Dim obj            As Outlook.MailItem

   Dim sSuchtext(21) As String
   Dim sErsetzen(21) As String
   '
   sSuchtext(1) = "Ä"
   sErsetzen(1) = "Ae"
   sSuchtext(17) = "Ä"
   sErsetzen(17) = "Ae"
   sSuchtext(18) = "Ä"
   sErsetzen(18) = "Ae"
   
   sSuchtext(2) = "ä"
   sErsetzen(2) = "ae"
   sSuchtext(14) = "ä"
   sErsetzen(14) = "ae"
   sSuchtext(15) = "ä"
   sErsetzen(15) = "ae"
   
   sSuchtext(3) = "Ö"
   sErsetzen(3) = "Oe"
   sSuchtext(4) = "ö"
   sErsetzen(4) = "oe"
   sSuchtext(12) = "ö"
   sErsetzen(12) = "oe"
   sSuchtext(13) = "ö"
   sErsetzen(13) = "oe"
   
   sSuchtext(5) = "Ü"
   sErsetzen(5) = "Ue"
   sSuchtext(10) = "Ü"
   sErsetzen(10) = "Ue"
   sSuchtext(11) = "Ü"
   sErsetzen(11) = "Ue"
   
   sSuchtext(6) = "ü"
   sErsetzen(6) = "ue"
   sSuchtext(8) = "ü"
   sErsetzen(8) = "ue"
   sSuchtext(9) = "ü"
   sErsetzen(9) = "ue"
   
   sSuchtext(7) = "ß"
   sErsetzen(7) = "ss"
   sSuchtext(19) = "ß"
   sErsetzen(19) = "ss"
   sSuchtext(20) = "ß"
   sErsetzen(20) = "ss"
   sSuchtext(21) = "ẞ"
   sErsetzen(21) = "Ss"
   
 Select Case True
        Case TypeOf Application.ActiveWindow Is Outlook.Inspector
             Set obj = Application.ActiveInspector.CurrentItem
        Case Else
             With Application.ActiveExplorer.Selection
                  If .Count Then Set obj = .Item(1)
             End With
                 If obj Is Nothing Then Exit Sub
 End Select

For i = 1 To 21
  If obj.BodyFormat = olFormatHTML Then
     obj.HTMLBody = Replace(obj.HTMLBody, sSuchtext(i), sErsetzen(i))
  ElseIf obj.BodyFormat = olFormatPlain Then
     obj.HBody = Replace(obj.Body, sSuchtext(i), sErsetzen(i))
  End If
Next i
 
End Sub

getestet an einer empfangenen Mail in Outlook 2016... funzt einwandfrei. :D

Re: Error 424 - Object required

Beitrag von bynight » 03. Jul 2019, 07:48

mmarkus hat geschrieben:
bynight hat geschrieben:
nicht hilfreich.


Du meinst hilfreich ist es erst dann, wenn du dein Hirn abschalten kannst.


Nein, wenn Figuren wie Du, die nichts zu sagen haben, hier nicht dazwischen plappern.

Re: Error 424 - Object required

Beitrag von mmarkus » 02. Jul 2019, 13:53

bynight hat geschrieben:
nicht hilfreich.


Du meinst hilfreich ist es erst dann, wenn du dein Hirn abschalten kannst.

Re: Error 424 - Object required

Beitrag von bynight » 02. Jul 2019, 13:48

mmarkus hat geschrieben:
bynight hat geschrieben:da sehe ich keine Lösung...


Das ist aber sehr seltsam.
Du wurdest ja auf das Problem aufmerksam gemacht was die Referenzierung auf Word anbelangt.
Dann hast du auch noch ein exemplarisches Beispiel aus dem Mustercode der verlinkt wurde.
Jetzt ist die Frage, was du mit der Info machst - mit ignorieren kommst du nicht weiter.


nicht hilfreich.

Re: Error 424 - Object required

Beitrag von bynight » 02. Jul 2019, 13:46

Danke vielmals!
Endlich mal was was fiunktioniert. :-)
Nachdem ich die Schleife und die Deklaration auf 21 erweitert habe, läuft es auch mit der Html Erweiterung. :-)
Sehr interessant. Kann ich bestimmt noch mal brauchen. :-)

:mrgreen:

Re: Error 424 - Object required

Beitrag von mumpel » 02. Jul 2019, 08:30

Erweiterung für HTML-Entities. Müsste damit auch mit codierten Umlauten funktionieren. Auf diese Weise kann man jegliche Umlaute umwandeln.

Code: Alles auswählen
   Dim sSuchtext(20) As String
   Dim sErsetzen(20) As String
   '
   sSuchtext(1) = "Ä"
   sErsetzen(1) = "Ae"
   sSuchtext(17) = "Ä"
   sErsetzen(17) = "Ae"
   sSuchtext(18) = "Ä"
   sErsetzen(18) = "Ae"
   
   sSuchtext(2) = "ä"
   sErsetzen(2) = "ae"
   sSuchtext(14) = "ä"
   sErsetzen(14) = "ae"
   sSuchtext(15) = "ä"
   sErsetzen(15) = "ae"
   
   sSuchtext(3) = "Ö"
   sErsetzen(3) = "Oe"
   sSuchtext(4) = "ö"
   sErsetzen(4) = "oe"
   sSuchtext(12) = "ö"
   sErsetzen(12) = "oe"
   sSuchtext(13) = "ö"
   sErsetzen(13) = "oe"
   
   sSuchtext(5) = "Ü"
   sErsetzen(5) = "Ue"
   sSuchtext(10) = "Ü"
   sErsetzen(10) = "Ue"
   sSuchtext(11) = "Ü"
   sErsetzen(11) = "Ue"
   
   sSuchtext(6) = "ü"
   sErsetzen(6) = "ue"
   sSuchtext(8) = "ü"
   sErsetzen(8) = "ue"
   sSuchtext(9) = "ü"
   sErsetzen(9) = "ue"
   
   sSuchtext(7) = "ß"
   sErsetzen(7) = "ss"
   sSuchtext(19) = "ß"
   sErsetzen(19) = "ss"
   sSuchtext(20) = "ß"
   sErsetzen(20) = "ss"
   sSuchtext(21) = "ẞ"
   sErsetzen(21) = "Ss"

Re: Error 424 - Object required

Beitrag von mumpel » 02. Jul 2019, 07:48

Eine Möglichkeit gäbe es noch. Funktioniert allerdings nicht bei echtem HTML (Z.B. Newsletter, Rechnungs-Mails von Vodafone), das hängt vermutlich mit der Codierung zusammen.

Code: Alles auswählen
Public Sub ErsetzeSonderZeichenInEmail()
                               
                               
Dim ins            As Outlook.Inspector
Dim obj            As Outlook.MailItem

   Dim sSuchtext(7) As String
   Dim sErsetzen(7) As String
   '
   sSuchtext(1) = "Ä"
   sErsetzen(1) = "Ae"
   sSuchtext(2) = "ä"
   sErsetzen(2) = "ae"
   sSuchtext(3) = "Ö"
   sErsetzen(3) = "Oe"
   sSuchtext(4) = "ö"
   sErsetzen(4) = "oe"
   sSuchtext(5) = "Ü"
   sErsetzen(5) = "Ue"
   sSuchtext(6) = "ü"
   sErsetzen(6) = "ue"
   sSuchtext(7) = "ß"
   sErsetzen(7) = "ss"
   
 Select Case True
        Case TypeOf Application.ActiveWindow Is Outlook.Inspector
             Set obj = Application.ActiveInspector.CurrentItem
        Case Else
             With Application.ActiveExplorer.Selection
                  If .Count Then Set obj = .Item(1)
             End With
                 If obj Is Nothing Then Exit Sub
 End Select



For i = 1 To 7
  If obj.BodyFormat = olFormatHTML Then
     obj.HTMLBody = Replace(obj.HTMLBody, sSuchtext(i), sErsetzen(i))
  ElseIf obj.BodyFormat = olFormatPlain Then
     obj.HBody = Replace(obj.Body, sSuchtext(i), sErsetzen(i))
  End If
Next i
 

End Sub

Re: Error 424 - Object required

Beitrag von mumpel » 02. Jul 2019, 07:39

Derartige Eingriffe zerstören das Layout einer jeden Mail.

Re: Error 424 - Object required

Beitrag von mmarkus » 02. Jul 2019, 06:32

bynight hat geschrieben:da sehe ich keine Lösung...


Das ist aber sehr seltsam.
Du wurdest ja auf das Problem aufmerksam gemacht was die Referenzierung auf Word anbelangt.
Dann hast du auch noch ein exemplarisches Beispiel aus dem Mustercode der verlinkt wurde.
Jetzt ist die Frage, was du mit der Info machst - mit ignorieren kommst du nicht weiter.

Re: Error 424 - Object required

Beitrag von bynight » 01. Jul 2019, 13:24

da sehe ich keine Lösung...

Re: Error 424 - Object required

Beitrag von mumpel » 01. Jul 2019, 08:31

Error 424 - Object required

Beitrag von bynight » 01. Jul 2019, 08:27

Bekomme das in Outlook 2016 nicht zum Laufen. Ist wohl aber auch für Word.
bei Selection.Find.ClearFormatting bekomme ich Object required.
Das Selection. wird schon nicht erkannt. Auf dem englischen Firmenlaptop wie auch auf einem deutschen Schulungsrechner.
Gibt es eine Möglichkeit das in Outlook zum Laufen zu bekommen?

Code: Alles auswählen

'Attribute VB_Name = "modUmlauteErsetzen"

 Sub UmlauteErsetzen()
   'Erweitern Sie das folgende Array, wenn
   'weitere Buchstaben ersetzt werden sollen
   Dim sSuchtext(7) As String
   Dim sErsetzen(7) As String
   '
   sSuchtext(1) = "Ä"
   sErsetzen(1) = "Ae"
   sSuchtext(2) = "ä"
   sErsetzen(2) = "ae"
   sSuchtext(3) = "Ö"
   sErsetzen(3) = "Oe"
   sSuchtext(4) = "ö"
   sErsetzen(4) = "oe"
   sSuchtext(5) = "Ü"
   sErsetzen(5) = "Ue"
   sSuchtext(6) = "ü"
   sErsetzen(6) = "ue"
   sSuchtext(7) = "ß"
   sErsetzen(7) = "ss"
   '
   For i = 1 To 7
     Selection.Find.ClearFormatting
     Selection.Find.Replacement.ClearFormatting
     '
     With Selection.Find
       .Text = sSuchtext(i)
       .Replacement.Text = sErsetzen(i)
       .Forward = True
       .Wrap = wdFindContinue
       .Format = False
       .MatchCase = True
       .MatchWholeWord = False
       .MatchWildcards = False
       .MatchSoundsLike = False
       .MatchAllWordForms = False
     End With
     '
     Selection.Find.Execute Replace:=wdReplaceAll
   Next i
 End Sub



Gruß Ronald

Nach oben