IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Macro pour enlever les retours à la ligne CHR(11) et CHR(13)


Sujet :

VBA Outlook

  1. #1
    Candidat au Club
    Homme Profil pro
    Réceptionnaire de tableaux mal préparés à mapper
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Réceptionnaire de tableaux mal préparés à mapper
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Macro pour enlever les retours à la ligne CHR(11) et CHR(13)
    Bonjour,

    J’ai un souci avec le code OUTLOOK.
    En effet, nous ne travaillons nos dossiers pratiquement que par mails.
    Nous retranscrivons par copier / coller le texte des mails dans le bloc-notes de notre logiciel mais sommes obligés de resserrer le texte afin que ce dernier ne prenne pas une place folle, et que la suite de textes soit plus lisible.
    Il s’agit de supprimer les interlignes, les retours à la ligne, CHR(13) et CHR(11).
    Je n’ai pas réussi à adapter mon code qui marche dans WORD et qui est le suivant :
    _____________________________________________
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub sansRetourALaLigne()
     
    Dim myWA
     
    For Each myWD In ActiveDocument.Range.Words
        myWA.Select
        If Selection.Text = Chr(11) Then
        Selection.Delete
        End If
    Next myWA
    Call SansSautDeLigne
    End Sub
    _________________________________________________
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub SansSautDeLigne()
    Dim myWD
     
    For Each myWD In ActiveDocument.Range.Words
        myWD.Select
        If Selection.Text = Chr(13) Then
        Selection.Delete
        End If
    Next myWD
    End Sub
    A priori le code WORD n'a rien à voir avec celui d'OUTLOOK. Pouvez-vous m’aider SVP.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Un peu de lecture sur le VBA Outlook : http://dolphy35.developpez.com/article/outlook/vba/

    Philippe

  3. #3
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    Les Emails sont en texte brut ou HTML ?

  4. #4
    Candidat au Club
    Homme Profil pro
    Réceptionnaire de tableaux mal préparés à mapper
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Réceptionnaire de tableaux mal préparés à mapper
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour OLIV,


    Ces deux formats sont susceptible d'être utilisés par nos correspondants.

    Oups je me suis trompé sur mon code de Sub sansRetourALaLigne()
    Il faut lire For Each myWA et non For Each myWD

  5. #5
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Voici une solution, avec cerise sur la gateau une copie dans le presse papier
    'AJOUTER UNE REFERENCE à "MICROSOFT FORM 2.0 Object Library"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub ConvertBrutetSup1013()
    '---------------------------------------------------------------------------------------
    ' Procedure : ConvertBrutetSup1013
    ' Author    : Oliv-
    ' Date      : 05/10/2017
    ' Purpose   : Converti en Brut et copie le texte sans les saut de paragraphe dans le presse papier.
    '---------------------------------------------------------------------------------------
    '
        Dim obj As Object
        Dim OITEM As Outlook.MailItem
     
        Dim OL As Outlook.Application
        If UCase(Application) = "OUTLOOK" Then
            Set OL = Application
        Else
            Set OL = CreateObject("outlook.application")
        End If
     
        Set obj = OL.ActiveWindow
        If TypeOf obj Is Outlook.Inspector Then
            Set obj = obj.CurrentItem
        Else
            Set obj = obj.Selection(1)
        End If
     
        If obj.Class = olmail Then
            Set OITEM = obj
            OITEM.BodyFormat = olFormatPlain
            OITEM.Body = Replace(OITEM.Body, Chr(13) & Chr(10), " ")
     
        End If
        'AJOUTER UNE REFERENCE à "MICROSOFT FORM 2.0 Object Library"
        With New DataObject
            .SetText OITEM.Body
            .PutInClipboard
        End With
        Set OITEM = Nothing
    End Sub

  6. #6
    Candidat au Club
    Homme Profil pro
    Réceptionnaire de tableaux mal préparés à mapper
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Réceptionnaire de tableaux mal préparés à mapper
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Super OLIV,
    Tu as tout compris!
    Résultat impec.
    Merci

    En fait j'ai enlevé :
    AJOUTER UNE REFERENCE à "MICROSOFT FORM 2.0 Object Library
    car cela ne fonctionnait pas, je suppose car il n'y a pas de DIM pour DataObject.

    En fait ce que je projetais, c'était, pour éviter de modifier définitivement un mail qui doit être conservé tel quel dans OUTLOOK
    - J'ouvre le mail concerné par TRANSFERER
    - je surligne toute la partie que je souhaite conserver
    - je lance la macro
    - Ta cerise sur le gâteau ( excellente bonne idée ) la partie resserrée est copiée
    - la copie de mail en Transfert est refermée sans modification de l'original ( sécurité pour ne rien perdre de l'original )

  7. #7
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    CA VEUT DIRE QUOI ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    En fait j'ai enlevé :
    AJOUTER UNE REFERENCE à "MICROSOFT FORM 2.0 Object Library
    car cela ne fonctionnait pas, je suppose car il n'y a pas de DIM pour DataObject.
    Pour que le bloc fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     With New DataObject
            .SetText OITEM.Body
            .PutInClipboard
        End With
    dans VBE tu dois aller dasn outils / références et cocher la référence indiquée.

    sinon pas de copie dans le presse-papier

    si tu fermes le mail avec mon code , il te demandera s'il doit enregistrer ou non

  8. #8
    Candidat au Club
    Homme Profil pro
    Réceptionnaire de tableaux mal préparés à mapper
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Réceptionnaire de tableaux mal préparés à mapper
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Tout fonctionne maintenant correctement.

    Grand merci à toi OLIV-

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/10/2012, 19h08
  2. [XL-2007] Macro pour transposer les colonnes en lignes
    Par boubadia dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/10/2011, 20h51
  3. enlever les retours à la ligne dans une chaîne ?
    Par Sefrou dans le forum VBA Access
    Réponses: 1
    Dernier message: 20/11/2009, 20h21
  4. [XSLT]enlever les retours à la ligne lors de la génération d'un xml
    Par Jean-Marie64 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 20/12/2007, 11h08
  5. [VB.NET] Enlever les retours à la ligne dans une string
    Par adrix26 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/01/2007, 23h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo