Error 424 - Object required

Moderator: ModerationP

Error 424 - Object required

Beitragvon 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
bynight
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 42
Registriert: 19. Mär 2011, 16:16

Re: Error 424 - Object required

Beitragvon mumpel » 01. Jul 2019, 08:31

Benutzeravatar
mumpel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8128
Registriert: 09. Jan 2005, 15:20
Wohnort: Lindau (B)

Re: Error 424 - Object required

Beitragvon bynight » 01. Jul 2019, 13:24

da sehe ich keine Lösung...
bynight
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 42
Registriert: 19. Mär 2011, 16:16

Re: Error 424 - Object required

Beitragvon 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.
ms access what else
mmarkus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1533
Registriert: 16. Apr 2012, 16:07
Wohnort: Oberösterreich

Re: Error 424 - Object required

Beitragvon mumpel » 02. Jul 2019, 07:39

Derartige Eingriffe zerstören das Layout einer jeden Mail.
Benutzeravatar
mumpel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8128
Registriert: 09. Jan 2005, 15:20
Wohnort: Lindau (B)

Re: Error 424 - Object required

Beitragvon 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
Benutzeravatar
mumpel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8128
Registriert: 09. Jan 2005, 15:20
Wohnort: Lindau (B)

Re: Error 424 - Object required

Beitragvon 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"
Benutzeravatar
mumpel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8128
Registriert: 09. Jan 2005, 15:20
Wohnort: Lindau (B)

Re: Error 424 - Object required

Beitragvon 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:
bynight
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 42
Registriert: 19. Mär 2011, 16:16

Re: Error 424 - Object required

Beitragvon 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.
bynight
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 42
Registriert: 19. Mär 2011, 16:16

Re: Error 424 - Object required

Beitragvon mmarkus » 02. Jul 2019, 13:53

bynight hat geschrieben:
nicht hilfreich.


Du meinst hilfreich ist es erst dann, wenn du dein Hirn abschalten kannst.
ms access what else
mmarkus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1533
Registriert: 16. Apr 2012, 16:07
Wohnort: Oberösterreich

Re: Error 424 - Object required

Beitragvon 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.
bynight
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 42
Registriert: 19. Mär 2011, 16:16

Re: Error 424 - Object required

Beitragvon 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
bynight
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 42
Registriert: 19. Mär 2011, 16:16


Zurück zu Outlook Forum (provisorisch)

Wer ist online?

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