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 :

Mail prérempli avec système auto de remplissage


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut Mail prérempli avec système auto de remplissage
    Bonjours à tous,

    Dans le cadre de mon travail j'aimerais créer une macro pour faire un mail automatiquement, je m'explique :

    Mon message devrait contenir un sujet : "xxxxxxxxxx : Votre yyyyyyyyyyyyyy"

    xxxxxxxxxx sera le numéro de dossier et yyyyyyyyyyyyyy sera le modèle de l'appareil

    Le message sera de type :

    "Bonjour,

    Votre yyyyyyyyyyyyyy a été enregistré sous le dossier xxxxxxxxxx pour zzzzzzzzzzzz.

    Nous reviendrons bientôt vers vous pour plus d'informations.

    Cordialement
    "

    zzzzzzzzzzzz sera un choix a faire entre plusieurs solutions : "devis de réparation" ou "réparation sous garantie" par exemple

    Je voudrais que lorsque je lance la macro le mail se préremplisse et que l'on ai par exemple des popups proposant de remplir les blancs xxxxxxxx, yyyyyyy et zzzzzzz

    Cela est-il possible ???

    Je début avec les macro donc j'ai bcp de mal a réussir à faire ca.

    Si vous pouvez m'aider ca serait GENIAL !!!

    Merci d'avance.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    Bon en fouinant j'ai trouvé 2/3 choses qui m'ont aidé à faire quelque chose de presque sympa :-)

    Voilà le code que j'ai bidouillé :

    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
    Sub new_mail()
     
        Dim objMail As Outlook.MailItem
        Dim notif As String
        Dim appareil As String
        Dim client As String
        notif = InputBox("Numéro de notification")
        appareil = InputBox("Quel appareil ?")
        client = InputBox("Adresse mail du client")
        Set objMail = Application.CreateItem(olMailItem)
        objMail.BodyFormat = olFormatHTML
        objMail.Subject = notif + " : Votre " + appareil
     
        objMail.HTMLBody = "<BODY><FONT face=Calibri>Bonjour,<br><br>" _
        & "Merci d'avoir choisi AAAAA, marque de BBBB, comme partenaire pour le service de vos instruments.<br><br>" _
        & "Nous avons bien réceptionné votre " + appareil + " pour devis de réparation/réparation sous garantie/prestation métrologique.<br><br>" _
        & "Je suis le technicien en charge de votre appareil enregistré sous le numéro de notification " + notif _
        & "<br><i><FONT color=red>(Merci de rappeler ce numéro lors de toute communication concernant cet appareil)</i></FONT><br><br>" _
        & "Je reviendrais rapidement vers vous pour vous donner de plus amples informations sur l'avancement de votre dossier.<br><br>" _
        & "N'hésitez pas à me contacter pour plus d'informations.<br><br>" _
        & "Cordialement.<br><br></FONT>"
        Set theRecipientA = objMail.Recipients.Add(client)
     
        objMail.Display
    End Sub
    Je rencontre encore quelques problèmes que j'aimerais bien que vous m'aidiez à résoudre :

    - premier problème : par défaut mes mails s'ouvrent toujours avec une signature préenregistré dans outlook qu'on appelera "1" ... seulement avec cette macro ma signature n'est pas insérée ... j'aimerais qu'elle soit automatiquement inséré à la fin du message ... Vous pouvez m'aider ??

    - deuxième problème : le texte est en taille 12 et je voulais le passer en taille 11 mais en utilisant la balise <FONT size=11> ben il me passe le texte en taille 36 ... Allez comprendre :-/


    - ULTIME Problème : je n'ai pas trouvé comment faire pour créer un popup qui me propose les différentes prestations pour mon texte (soit "devis de réparation" soit "réparation sous garantie" soit "prestation métrologique".

    - OPTION : cette macro m'ouvre forcément un nouvel email .... J'aimerais lancer cette macro sur un mail que je recois (ce mail contient un fichier attaché), je voudrais qu'au lancement de la macreo depuis CE mail il fasse un nouvel email EN GARDANT la piece jointe (la manière détournée serait par exemple de faire REPONDRE ou TRANSFERER et d'effacer le corps du mail d'origine avant de commencer a lancer les inputbox)

    Franchement si vous pouviez me donner des réponses a ces problèmes ca serait juste GENIAL !!!!!

    MERCI MERCI D'AVANCE !!!!

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    INGÉNIEUR
    Inscrit en
    Août 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : INGÉNIEUR
    Secteur : Transports

    Informations forums :
    Inscription : Août 2013
    Messages : 37
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    J'aimerais également créer une macro comme la tienne qui vient changer certaines partie du texte du courriel.
    Cependant, mon message est déjà composé sous Word et j'en fait un copier-coller dans Outlook.

    Est-ce que c'est possible de modifier certains mots d'un courriel même si celui-ci est copié-collé et non "programmé" sous VBA?

  4. #4
    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
    Citation Envoyé par acathla Voir le message

    - premier problème : par défaut mes mails s'ouvrent toujours avec une signature préenregistré dans outlook qu'on appelera "1" ... seulement avec cette macro ma signature n'est pas insérée ... j'aimerais qu'elle soit automatiquement inséré à la fin du message ... Vous pouvez m'aider ??
    Il faut d'abord faire un display pour afficher la signature par défaut et ensuite on ajoute le texte, (tu peux aussi utiliser un modèle, c'est plus simple pour la mise en forme, voir le lien plus bas)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      
        objMail.Display
      objMail.HTMLBody = "<BODY><FONT face=Calibri>Bonjour,<br><br>" _
        & "Merci d'avoir choisi AAAAA, marque de BBBB, comme partenaire pour le service de vos instruments.<br><br>" _
        & "Nous avons bien réceptionné votre " + appareil + " pour devis de réparation/réparation sous garantie/prestation métrologique.<br><br>" _
        & "Je suis le technicien en charge de votre appareil enregistré sous le numéro de notification " + notif _
        & "<br><i><FONT color=red>(Merci de rappeler ce numéro lors de toute communication concernant cet appareil)</i></FONT><br><br>" _
        & "Je reviendrais rapidement vers vous pour vous donner de plus amples informations sur l'avancement de votre dossier.<br><br>" _
        & "N'hésitez pas à me contacter pour plus d'informations.<br><br>" _
        & "Cordialement.<br><br></FONT></BODY>" & objMail.HTMLBody
     
        
    
    End Sub
    - deuxième problème : le texte est en taille 12 et je voulais le passer en taille 11 mais en utilisant la balise <FONT size=11> ben il me passe le texte en taille 36 ... Allez comprendre :-/
    essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    style="font-size:11px;"
    - ULTIME Problème : je n'ai pas trouvé comment faire pour créer un popup qui me propose les différentes prestations pour mon texte (soit "devis de réparation" soit "réparation sous garantie" soit "prestation métrologique".
    il faut créer un formulaire (userform)
    - OPTION : cette macro m'ouvre forcément un nouvel email .... J'aimerais lancer cette macro sur un mail que je recois (ce mail contient un fichier attaché), je voudrais qu'au lancement de la macreo depuis CE mail il fasse un nouvel email EN GARDANT la piece jointe (la manière détournée serait par exemple de faire REPONDRE ou TRANSFERER et d'effacer le corps du mail d'origine avant de commencer a lancer les inputbox)
    Tu peux t'inspirer de ce code

  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
    Citation Envoyé par davidbd Voir le message
    Bonjour,

    J'aimerais également créer une macro comme la tienne qui vient changer certaines partie du texte du courriel.
    Cependant, mon message est déjà composé sous Word et j'en fait un copier-coller dans Outlook.

    Est-ce que c'est possible de modifier certains mots d'un courriel même si celui-ci est copié-collé et non "programmé" sous VBA?
    tu peux utiliser la fonction replace

    ex si tu as xxxxxxxxxx dans ton modèle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub test()
        Set appOutlook = Application
        Set oMail = appOutlook.ActiveInspector.CurrentItem
     
        oMail.HTMLBody = Replace(oMail.HTMLBody, "xxxxxxxxxx", InputBox("xxxxxxxxxx"))
    End Sub

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    il faut créer un formulaire (userform)
    Tu peux m'en dire un peu plus au sujet des userform ?

    Je souhaiterais un popup genre inputbox mais avec 3 possibilités (devis de rep, garantie, metrologie) et en fonction de la selection je modifierais une partie du texte en conséquence.

    Si tu pouvais m'aider un peu ca serait genial.
    Je début sur le vba mais j'apprends vite :-P

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    En fouinant et en tatonant j'ai presque résolu tout mes soucis :

    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 new_mail()
     
        Dim objMail As Outlook.MailItem
        Dim notif As String
        Dim appareil As String
        Dim client As String
        Dim TEXTE As String
     
        notif = InputBox("Numéro de notification")                                                  'PoPup Notification
        appareil = InputBox("Quel appareil ?")                                                      'PoPup appareil
        client = InputBox("Adresse mail du client")                                                 'PoPup  mail Client
        'Set objMail = Application.CreateItem(olMailItem)                                            'créé un nouvel email
     
        Set objMail = Application.ActiveInspector.CurrentItem                                       'Execute la macro sur le mail actif
        objMail.HTMLBody = Remove                                                                   'Supprime le corps du message
     
     
        objMail.BodyFormat = olFormatHTML                                                           'Mail au format HTML
        objMail.Subject = notif & " : Votre " + appareil                                            'Sujet du mail avec la variable
     
        TEXTE = "<BODY><FONT face=Calibri>Bonjour,<br><br>" _
        & "Merci d'avoir choisi XXX, marque de YYY, comme partenaire pour le service de vos instruments.<br><br>" _
        & "Nous avons bien réceptionné votre " + appareil + " pour devis de réparation/réparation sous garantie/prestation métrologique.<br><br>" _
        & "Je suis le technicien en charge de votre appareil enregistré sous le numéro de notification " + "<b>" & notif & "</b>" _
        & "<br><i><FONT color=red>(Merci de rappeler ce numéro lors de toute communication concernant cet appareil)</i></FONT><br><br>" _
        & "Je reviendrais rapidement vers vous pour vous donner de plus amples informations sur l'avancement de votre dossier.<br><br>" _
        & "N'hésitez pas à me contacter pour plus d'informations.<br><br>" _
        & "Cordialement.<br></FONT>"                                                                'Création du mail avec mes variables
     
        objMail.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute   'insertion de la signature
        objMail.HTMLBody = TEXTE & objMail.HTMLBody                                                 'permet d'afficher le texte et la signature
        Set theRecipientA = objMail.Recipients.Add(client)                                          'Insertion du destinataire
        objMail.Display                                                                             'Affiche le mail avant expédition
     
     
     
     
    End Sub
    Me reste juste le problème du popup multipossibilité

    Ca serait tiptop de trouver ca !!!

    La methode bidouille serait de faire un inputbox où on taperait une simple lettre genre taper "d" pour devis, "g" pour garantie etc et qu'en fonction de la lettre il modifie le texte mais ca fait pas propre lol

    Merci d'avance a vous tous !!!

  8. #8
    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
    Un Userform c'est une boite de dialogue personnalisée.

    voici un tutoriel sur les userform, c'est pour excel,mais c'est identique pour Outlook
    celui ci aussi


    tu pourras y mettre tes 3 references avec des menus deroulant etc... au lieu de plusieurs inputbox

  9. #9
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    Bon .... Je galère ... ENCORE !!! lol

    Voici mon Userform :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
        lstNo = ComboBox1.ListIndex
        Unload Me
    End Sub
     
    Private Sub UserForm_Initialize()
    With ComboBox1
        .AddItem "Devis de Réparation"
        .AddItem "Réparation sous Garantie"
        .AddItem "Prestation Métrologique"
    End With
    End Sub
    Et voici ma Macro :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Public lstNum As Long
    Sub new_mail()
     
        Dim objMail As Outlook.MailItem
        Dim notif As String
        Dim appareil As String
        Dim client As String
        Dim TEXTE As String
        Dim Presta As String
     
        notif = InputBox("Numéro de notification")                                                  'PoPup Notification
        appareil = InputBox("Quel appareil ?")                                                      'PoPup appareil
        client = InputBox("Adresse mail du client")                                                 'PoPup  mail Client
        'Set objMail = Application.CreateItem(olMailItem)                                            'créé un nouvel email
     
        Dim strTemplate As String
     
        Set objMail = Application.ActiveInspector.CurrentItem                                       'Execute la macro sur le mail actif
            UserForm1.Show
     
        Select Case lstNum
        Case -1
            Presta = ""
        Case 0
            Presta = "Devis de Réparation"
        Case 1
            Presta = "Réparation sous Garantie"
        Case 2
            Presta = "Prestation Métrologique"
        Case 3
            Presta = "Sans sujet"
        End Select
     
        objMail.HTMLBody = Remove                                                                   'Supprime le corps du message
        objMail.BodyFormat = olFormatHTML                                                           'Mail au format HTML
        objMail.Subject = notif & " : Votre " + appareil                                            'Sujet du mail avec la variable
     
        TEXTE = "<BODY><FONT face=Calibri>Bonjour,<br><br>" _
        & "Merci d'avoir choisi XXX, marque de YYY, comme partenaire pour le service de vos instruments.<br><br>" _
        & "Nous avons bien réceptionné votre " + appareil + " pour " + Presta + "<br><br>" _
        & "Je suis le technicien en charge de votre appareil enregistré sous le numéro de notification " + "<b>" & notif & "</b>" _
        & "<br><i><FONT color=red>(Merci de rappeler ce numéro lors de toute communication concernant cet appareil)</i></FONT><br><br>" _
        & "Je reviendrais rapidement vers vous pour vous donner de plus amples informations sur l'avancement de votre dossier.<br><br>" _
        & "N'hésitez pas à me contacter pour plus d'informations.<br><br>" _
        & "Cordialement.<br></FONT>"                                                                'Création du mail avec mes variables
     
        objMail.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute   'insertion de la signature
        objMail.HTMLBody = TEXTE & objMail.HTMLBody                                                 'permet d'afficher le texte et la signature
        Set theRecipientA = objMail.Recipients.Add(client)                                          'Insertion du destinataire
        objMail.Display                                                                             'Affiche le mail avant expédition
     
    End Sub
    Seulement la variable Presta est toujours "Devis de Réparation" .... Je comprends pas pkoi ....

    Quelqu'un peux me dire où ca coince ???

    Merci d'avance !!!

  10. #10
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    Ca me semble pas mal après du temps de recherche :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Public lstNo As Long
     
    Sub new_mail()
     
        Dim objMail As Outlook.MailItem
        Dim notif As String
        Dim appareil As String
        Dim client As String
        Dim TEXTE As String
     
        notif = InputBox("Numéro de notification")                                                  'PoPup Notification
        appareil = InputBox("Quel appareil ?")                                                      'PoPup appareil
        client = InputBox("Adresse mail du client")                                                 'PoPup  mail Client
        Set objMail = Application.ActiveInspector.CurrentItem                                       'Execute la macro sur le mail actif
        'Set objMail = Application.CreateItem(olMailItem)                                            'créé un nouvel email
        objMail.HTMLBody = Remove                                                                   'Supprime le corps du message
        objMail.BodyFormat = olFormatHTML                                                           'Mail au format HTML
        objMail.Subject = notif + " : Votre " + appareil                                            'Sujet du mail avec la variable
     
        Dim Presta As String
        UserForm1.Show
     
        Select Case lstNo
        Case -1
            Presta = ""
        Case 0
            Presta = "devis de Réparation."
        Case 1
            Presta = "réparation sous Garantie."
        Case 2
            Presta = "prestation Métrologique."
        End Select
     
     
     
     
        TEXTE = "<BODY><FONT face=Calibri>Bonjour,<br><br>" _
        & "Merci d'avoir choisi XXX, marque de YYY, comme partenaire pour le service de vos instruments.<br><br>" _
        & "Nous avons bien réceptionné votre " + appareil + " pour " + Presta + "<br><br>" _
        & "Je suis le technicien en charge de votre appareil enregistré sous le numéro de notification " + "<b>" + notif + "</b>" _
        & "<br><i><FONT color=red>(Merci de rappeler ce numéro lors de toute communication concernant cet appareil)</i></FONT><br><br>" _
        & "Je reviendrais rapidement vers vous pour vous donner de plus amples informations sur l'avancement de votre dossier.<br><br>" _
        & "N'hésitez pas à me contacter pour plus d'informations.<br><br>" _
        & "Cordialement.<br></FONT>"                                                                'Création du mail avec mes variables
     
        objMail.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute   'insertion de la signature
        objMail.HTMLBody = TEXTE & objMail.HTMLBody                                                 'permet d'afficher le texte et la signature
        Set theRecipientA = objMail.Recipients.Add(client)                                          'Insertion du destinataire
        objMail.Display                                                                             'Affiche le mail avant expédition
    End Sub

    Et mon userform :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
        lstNo = ComboBox1.ListIndex
        Unload Me
    End Sub
     
    Private Sub UserForm_Initialize()
    With ComboBox1
        .AddItem "Devis de Réparation"
        .AddItem "Réparation sous Garantie"
        .AddItem "Prestation Métrologique"
    End With
    End Sub

    Tout à l'air de fonctionner correctement !!! :-D

  11. #11
    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
    Salut,
    Super, maintenant ajoute à ton userform 3 textbox (+ 3 label ) pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    notif = InputBox("Numéro de notification")                                                  'PoPup Notification
        appareil = InputBox("Quel appareil ?")                                                      'PoPup appareil
        client = InputBox("Adresse mail du client")                                                 'PoPup  mail Client

    En fait tu peux interroger dans ton code directement la valeur d'un élément de ton userform si celui-ci tu le masques (me.hide) au lieu de le fermer et tu le fermes à la fin, sinon effectivement il faut passer à des variables les valeurs

  12. #12
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    J'essaie comme tu l'as suggéré de tout mettre dans un userform mais je n'y arrive pas tu peux m'aider :

    Voici mon code de programme :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Public lstNooo As Long
     
    Sub TEST()
     
        Dim objMail As Outlook.MailItem
        Dim notif As String
        Dim appareil As String
        Dim client As String
        Dim TEXTE As String
        Dim myAttachments As Outlook.Attachments
     
     
        notif = UserForm3.TextBox1.Value                                                                          'PoPup Notification
        appareil = UserForm3.TextBox2.Value                                                         'PoPup appareil
        client = UserForm3.TextBox3.Value                                                                            'PoPup  mail Client
        Set objMail = Application.ActiveInspector.CurrentItem                                       'Execute la macro sur le mail actif
        'Set objMail = Application.CreateItem(olMailItem)                                            'créé un nouvel email
     
     
        objMail.HTMLBody = Remove                                                                   'Supprime le corps du message
        objMail.BodyFormat = olFormatHTML                                                           'Mail au format HTML
        objMail.Subject = notif + " : Votre " + appareil                                            'Sujet du mail avec la variable
     
        Dim Presta As String                                                                        'Sélection de la prestation
        UserForm3.Show
            Select Case lstNooo
        Case -1
            Presta = ""
        Case 0
            Presta = "devis de Réparation."
        Case 1
            Presta = "réparation sous Garantie."
        Case 2
            Presta = "prestation Métrologique."
        End Select
     
     
        TEXTE = "<BODY><FONT face=Calibri>Bonjour,<br><br>" _
        & "Merci d'avoir choisi XXXXXX, marque de YYYYY, comme partenaire pour le service de vos instruments.<br><br>" _
        & "Nous avons bien réceptionné votre " + appareil + " pour " + Presta + "<br><br>" _
        & "Je suis le technicien en charge de votre appareil enregistré sous le numéro de notification " + "<b>" + UserForm3.TextBox1.Value + "</b>" _
        & "<br><i><FONT color=red>(Merci de rappeler ce numéro lors de toute communication concernant cet appareil)</i></FONT><br><br>" _
        & "Je reviendrais rapidement vers vous pour vous donner de plus amples informations sur l'avancement de votre dossier.<br><br>" _
        & "N'hésitez pas à me contacter pour de plus amples informations.<br><br>" _
        & "Cordialement.<br></FONT>"                                                                'Création du mail avec mes variables
     
        objMail.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute   'insertion de la signature
        objMail.HTMLBody = TEXTE & objMail.HTMLBody                                                 'permet d'afficher le texte et la signature
     
        If client = "" Then                                                                         'Si client vide pas besoin de remplir le destinataire
        objMail.Display
        Else
        Set theRecipientA = objMail.Recipients.Add(client)                                          'Insertion du destinataire
        objMail.Display                                                                             'Affiche le mail avant expédition
        End If
     
    End Sub
    Et ca c'est le code du userform :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton3_Click()
        lstNooo = ComboBox3.ListIndex
        Unload Me
    End Sub
     
    Private Sub UserForm_Initialize()
    With ComboBox3
        .AddItem "Devis de Réparation"
        .AddItem "Réparation sous Garantie"
        .AddItem "Prestation Métrologique"
    End With
    TextBox1.MaxLength = 8
    End Sub
    Les valeurs de mes textbox ne s'affichent pas dans mon mail ... que dois-je faire pour que ca fonctionne ?


    Merci d'avance.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    J'ai aussi un prob avec lstNooo ....

    Le programme me sort de manière aléatoire le message d'erreur :

    "Erreur de compilation :

    Nom ambigue détecté : lstNooo"

    Vous savez pourquoi ??

    Est-ce parce que j'utilise lstNooo dans plusieurs programmes DIFFERENT (qui ne s'execute pas en meme temps)

    Merci d'avance.

  14. #14
    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,
    Pour lstNooo , si tu l'utilises dans plusieurs programmes il ne faut par contre le déclarer qu'une fois avec public.

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    Public lstNooo As Long
     
    Sub TEST()
     
        Dim objMail As Outlook.MailItem
        Dim notif As String
        Dim appareil As String
        Dim client As String
        Dim TEXTE As String
        Dim myAttachments As Outlook.Attachments
     
     
       
        Set objMail = Application.ActiveInspector.CurrentItem                                       'Execute la macro sur le mail actif
        'Set objMail = Application.CreateItem(olMailItem)                                            'créé un nouvel email
     
     
        objMail.HTMLBody = Remove                                                                   'Supprime le corps du message
        objMail.BodyFormat = olFormatHTML                                                           'Mail au format HTML
        objMail.Subject = notif + " : Votre " + appareil                                            'Sujet du mail avec la variable
     
        Dim Presta As String                                                                        'Sélection de la prestation
        UserForm3.Show
    
        notif = UserForm3.TextBox1.Value                                                                          'PoPup Notification
        appareil = UserForm3.TextBox2.Value                                                         'PoPup appareil
        client = UserForm3.TextBox3.Value                                                                            'PoPup  mail Client
    
    unload (UserForm3)
    
            Select Case lstNooo
        Case -1
            Presta = ""
        Case 0
            Presta = "devis de Réparation."
        Case 1
            Presta = "réparation sous Garantie."
        Case 2
            Presta = "prestation Métrologique."
        End Select
     
     
        TEXTE = "<BODY><FONT face=Calibri>Bonjour,<br><br>" _
        & "Merci d'avoir choisi XXXXXX, marque de YYYYY, comme partenaire pour le service de vos instruments.<br><br>" _
        & "Nous avons bien réceptionné votre " + appareil + " pour " + Presta + "<br><br>" _
        & "Je suis le technicien en charge de votre appareil enregistré sous le numéro de notification " + "<b>" + UserForm3.TextBox1.Value + "</b>" _
        & "<br><i><FONT color=red>(Merci de rappeler ce numéro lors de toute communication concernant cet appareil)</i></FONT><br><br>" _
        & "Je reviendrais rapidement vers vous pour vous donner de plus amples informations sur l'avancement de votre dossier.<br><br>" _
        & "N'hésitez pas à me contacter pour de plus amples informations.<br><br>" _
        & "Cordialement.<br></FONT>"                                                                'Création du mail avec mes variables
     
        objMail.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute   'insertion de la signature
        objMail.HTMLBody = TEXTE & objMail.HTMLBody                                                 'permet d'afficher le texte et la signature
     
        If client = "" Then                                                                         'Si client vide pas besoin de remplir le destinataire
        objMail.Display
        Else
        Set theRecipientA = objMail.Recipients.Add(client)                                          'Insertion du destinataire
        objMail.Display                                                                             'Affiche le mail avant expédition
        End If
     
    End Sub
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton3_Click()
        lstNooo = ComboBox3.ListIndex
    '    Unload Me
    Me.hide
    End Sub
     
    Private Sub UserForm_Initialize()
    With ComboBox3
        .AddItem "Devis de Réparation"
        .AddItem "Réparation sous Garantie"
        .AddItem "Prestation Métrologique"
    End With
    TextBox1.MaxLength = 8
    End Sub

  15. #15
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    Super y a du mieux mais c'est pas encore ca ;-)

    En passant par des variable genre notif ou appareil ca ne fonctionne pas il faut que je mette directement UserForm3.TextBox1.Value par exemple

    PAR CONTRE en Sujet du mail aucun des deux ne fonctionnent que ce soit la viariable ou UserForm3.TextBox1.Value

    Une idée pour tout ca ??

  16. #16
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par acathla Voir le message
    Super y a du mieux mais c'est pas encore ca ;-)

    En passant par des variable genre notif ou appareil ca ne fonctionne pas il faut que je mette directement UserForm3.TextBox1.Value par exemple

    PAR CONTRE en Sujet du mail aucun des deux ne fonctionnent que ce soit la viariable ou UserForm3.TextBox1.Value

    Une idée pour tout ca ??
    NORMAL que ca ne fonctionne pas si javais ca AVANT les instruction de remplissage ...

  17. #17
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    BON !!! Ca marche bien et je remercie ceux qui m'ont aidé a faire ce programme et même à l'améliorer !!!

    J'ai encore un prob avant que ce soit totalement propre, voici mon module :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Public lstNo1 As Long
    Public lstNo2 As Long
     
    Sub TEST()
     
        Dim objMail As Outlook.MailItem
        Dim client As String
        Dim TEXTE As String
        Dim RMA As String                                                                           'RMA ou pas RMA
        Dim Presta As String                                                                        'Sélection de la prestation
     
        Unload UserForm3
     
        Set objMail = Application.ActiveInspector.CurrentItem                                       'Execute la macro sur le mail actif
        'Set objMail = Application.CreateItem(olMailItem)                                            'créé un nouvel email
     
     
        objMail.HTMLBody = Remove                                                                   'Supprime le corps du message
        objMail.BodyFormat = olFormatHTML                                                           'Mail au format HTML
     
     
        UserForm3.Show
            Select Case lstNo1
        Case -1
            Presta = ""
        Case 0
            Presta = "devis de Réparation."
        Case 1
            Presta = "réparation sous Garantie."
        Case 2
            Presta = "prestation Métrologique."
        End Select
     
             Select Case lstNo2
        Case -1
            RMA = ""
        Case 0
            RMA = "<BODY><br><b><FONT face=Calibri>Afin que nous puissions intervenir sur votre instrument, " _
            & "nous vous prions de compléter les formulaires joints (en PJ : ULS_RMA_fr V1.0.pdf).<br>" _
            & "Des retards dans le traitement de la réparation de votre instrument sont à prévoir " _
            & "si ces documents ne nous sont pas transmis dûment complétés.</b><br></FONT>"
            Set myAttachments = objMail.Attachments                                                     'Attacher le fichier RMA
            myAttachments.Add "G:\Service\Avantec Interne\Documents type\courrier adv\ULS_RMA_fr V1.0.pdf", _
            olByValue, 1, "Test"
        Case 1
            RMA = ""
        End Select
     
     
        objMail.Subject = UserForm3.TextBox1.Value + " : Votre " + UserForm3.TextBox2.Value         'Sujet du mail avec la variable
     
        client = UserForm3.TextBox3.Value                                                           'PoPup  mail Client
     
     
        TEXTE = "<BODY><FONT face=Calibri>Bonjour,<br><br>" _
        & "Merci d'avoir choisi Unity Lab Services, marque de Thermo Fisher Scientific, comme partenaire pour le service de vos instruments.<br><br>" _
        & "Nous avons bien réceptionné votre " + UserForm3.TextBox2.Value + " pour " + Presta + "<br><br>" _
        & "Je suis le technicien en charge de votre appareil enregistré sous le numéro de notification " + "<b>" + UserForm3.TextBox1.Value + "</b>" _
        & "<br><i><FONT color=red>(Merci de rappeler ce numéro lors de toute communication concernant cet appareil)</i></FONT><br>" + RMA + "<br>" _
        & "Je reviendrais rapidement vers vous pour vous donner de plus amples informations sur l'avancement de votre dossier.<br><br>" _
        & "N'hésitez pas à me contacter pour de plus amples informations.<br><br>" _
        & "Cordialement.<br></FONT>"                                                                'Création du mail avec mes variables
     
        objMail.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute   'insertion de la signature
        objMail.HTMLBody = TEXTE & objMail.HTMLBody                                                 'permet d'afficher le texte et la signature
     
        If client = "" Then                                                                         'Si client vide pas besoin de remplir le destinataire
        objMail.Display
        Else
        Set theRecipientA = objMail.Recipients.Add(client)                                          'Insertion du destinataire
        objMail.Display                                                                             'Affiche le mail avant expédition
        End If
     
    End Sub
    Et voici mon userform :

    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
    Private Sub CommandButton3_Click()
        lstNo1 = ComboBox3.ListIndex
        lstNo2 = ComboBox4.ListIndex
        'Unload Me
        Me.Hide
    End Sub
     
    Private Sub UserForm_Initialize()
    With ComboBox3
        .AddItem "Devis de Réparation"
        .AddItem "Réparation sous Garantie"
        .AddItem "Prestation Métrologique"
    End With
    With ComboBox4
        .AddItem "OUI"
        .AddItem "NON"
    End With
    TextBox1.MaxLength = 8
     
    End Sub
    Mon problème : J'ai 3 textbox et deux combobox dans mon userform.
    Grace à la touche TAB je peux passer du premier textbox au deuxième, puis au troisième, puis au premier combobox, puis .... au Bouton OK .....
    Il ne passe pas sur le deuxième combobox avec TAB ou SHIFT + TAB ... il faut que je prenne la souris pour aller au combobox4.

    Une idée pourquoi et comment résoudre cela ???

    MERCI INFINIMENT !!!

  18. #18
    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
    Salut,
    quand tu es sur ton userform, en appuyant sur F4 tu accèdes à ses propriétés et là tu dois modifier TabStop = True et Tabindex = x ou x désigne l'ordre.

  19. #19
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    dans mon programme je dois rentrer l'adresse mail de mon client et j'ai mis une option avec un mail (Titi) en Cci.
    Dans mon code j'ai mis une option pour que les utilisateurs ne soient pas obligé de mettre le mail du client ... seulement dans ce cas le mail de titi en Cci passe en mail distinataire principal.

    Comment faire pour que dans le cas du destinataire vide le mail de titi reste bien en Cci ?

    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        If client = "" Then                                                                         'Si client vide pas besoin de remplir le destinataire
       Set theRecipientCC = objMail.Recipients.Add("titi@toto.com")
        theRecipientCC.Type = olBCC 
    objMail.Display
        Else
        Set theRecipientA = objMail.Recipients.Add(client)                                          'Insertion du destinataire
        objMail.Display                                                                             'Affiche le mail avant expédition
        End If

    Merci d'avance.

    Cordialement.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    Personne qui peux m'aider et me dire ce que j'ai mal fait dans mon code ? :-/

Discussions similaires

  1. [VBA EXCEL] Protection feuille avec filtre auto
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/01/2006, 10h48
  2. [Mail] Problème avec mon script d'envoi de mail
    Par leroivert dans le forum Langage
    Réponses: 18
    Dernier message: 02/12/2005, 00h26
  3. [Mail] problème avec la fonction mail()
    Par artotal dans le forum Langage
    Réponses: 2
    Dernier message: 13/11/2005, 03h14
  4. [Jdbc] insertion avec numero auto
    Par ice69 dans le forum JDBC
    Réponses: 2
    Dernier message: 31/10/2005, 19h19
  5. Envoi de mail automatique avec Visual C++
    Par cza dans le forum MFC
    Réponses: 2
    Dernier message: 22/02/2005, 15h59

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