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

Macros et VBA Excel Discussion :

Problème de fonctionnement boutons/ envois mail


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Par défaut Problème de fonctionnement boutons/ envois mail
    Bonsoir à tous,

    j'ai créer un Classeur Excel, avec des Macros et un formulaire à la fin avec trois boutons:
    1 /envois de mail
    2/ envois de mail
    3/ envois de mail

    Apparemment, me suis plantée cela ne fonctionne pas
    Juste le petit message "Erreur d'envoie du message" qui s'affiche.
    Le pire! c'est que cela fonctionnais avant que je fasse des modif 80
    (enfin, pour les deux premiers)

    -Modif faites:
    texte et l'@ mail (deux au lieu d'une seul, séparées par " ; " )


    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
     
    Private Sub CommandButton1_Click()
    On Error GoTo Err
     
        Set myOlapp = CreateObject("Outlook.Application")
        Set Email = myOlapp.CreateItem(olMailItem)
     
     
        Dim destinataires As String
        destinataires = Email.Recipients.Add(Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("C58").Value)
     
        Dim agence As String
        agence = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H13").Value
     
        Email.Subject = "Prise en compte de l'intervention: " & agence
     
        Email.Body = corpsdumail()
     
        Email.Send
        MsgBox ("Le message a bien été envoyé")
     
     
    Exit Sub
     
    Err:
    MsgBox ("Erreur d'envoie du message")
    End Sub
     
     
     
     
     
    Function corpsdumail() As String
        Dim Ninter As String
        Ninter = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H8").Value
     
        Dim Presta As String
        Presta = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("B13").Value
     
        Dim Mot As String
        Mot = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("B29").Value
     
        Dim echea As String
        echea = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("D27").Value
     
        Dim delai As String
        delai = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("I30").Value
     
        Dim texte As String
        texte = "Bonjour," & _
        vbCrLf & "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:" & vbCrLf & _
        vbCrLf & "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:" & _
        vbCrLf & vbCrLf & "XXXXXXXXXX: " & Ninter & _
        vbCrLf & "XXXXXXXXXXXXXX: " & Presta & _
        vbCrLf & "XXXXXXXXXXXXXXXXX :" & Mot & _
        vbCrLf & "XXXXXXXXXXXXXXXXXXXXXXXXXXXéXXXXXX éXXXX : " & echea & _
        vbCrLf & "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX " & delai & "XXXX" & vbCrLf & _
        vbCrLf & "Cordialement" & vbCrLf & _
        vbCrLf & "XXXXXXXXXXXXXXXXXXXXXXXXXXXX."
     
     
        corpsdumail = texte
     
    End Function
     
    Private Sub CommandButton2_Click()
    On Error GoTo Err
     
        Set myOlapp = CreateObject("Outlook.Application")
        Set Email = myOlapp.CreateItem(olMailItem)
     
        Dim destinataires As String
        destinataires = Email.Recipients.Add(Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("C58").Value)
     
        Dim agence As String
        agence = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H13").Value
     
        Dim BO As String
        BO = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("G13").Value
     
        Email.Subject = " XXXXXXXXXXXXXXXXXXXXXXXXXXXXX : XXXXXX DE  " & agence & " " & BO
     
     
        Email.Body = corpsdumails()
     
        Email.Send
        MsgBox ("Le message a bien été envoyé")
    Exit Sub
     
    Err:
    MsgBox ("Erreur d'envoie du message")
    End Sub
     
     
     
     
     
     
    Function corpsdumails() As String
        Dim Ninter As String
        Ninter = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H8").Value
     
        Dim Age As String
        Age = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H13").Value
     
        Dim BO As String
        BO = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("G13").Value
     
        Dim adrs As String
        adrs = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("G15").Value
     
        Dim Dpt As String
        Dpt = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("G16").Value
     
        Dim vil As String
        vil = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H16").Value
     
        Dim dest As String
        dest = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("A44").Value
     
        Dim pan As String
        pan = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("B29").Value
     
        Dim texte As String
        texte = "XXXXXXXXXX" & _
        vbCrLf & "XXXXXXXXXXXXXXXXXXXXXXX : " & Ninter & vbCrLf & _
        vbCrLf & "Bonjour," & vbCrLf & _
        vbCrLf & "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX : " & vbCrLf & _
        vbCrLf & "XXXXXX :" & Age & _
        vbCrLf & "XXXXX :" & BO & _
        vbCrLf & "adresse :" & adrs & Dpt & vil & _
        vbCrLf & "XXXXXXXXX :" & dest & vbCrLf & _
        vbCrLf & vbCrLf & "XXXXXXXXXXXXXXXX:" & _
        vbCrLf & pan
     
     
         corpsdumails = texte
    End Function
     
    Private Sub CommandButton3_Click()
    On Error GoTo Err
     
        Set myOlapp = CreateObject("Outlook.Application")
        Set Email = myOlapp.CreateItem(olMailItem)
     
     
        Dim destinataires As String
        destinataires = Email.Recipients.Add(Workbooks("GI 2009").Worksheets("Formulaire").Range("C58").Value)
     
        Dim agence As String
        agence = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("G13").Value
     
        Email.Subject = " Cloture de l'intervention " & agence
     
        Email.Body = corpsdumailss()
     
        Email.Send
        MsgBox ("Le message a bien été envoyé")
     
     
    Exit Sub
     
    Err:
    MsgBox ("Erreur d'envoie du message")
    End Sub
     
     
    Function corpsdumailss() As String
        Dim Ninter As String
        Ninter = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H8").Value
     
        Dim clo As String
        clo = Workbooks("GI 2009").Worksheets("FORMAULAIRE").Range("I27").Value
     
        Dim texte As String
        texte = "Bonjour," & _
        vbCrLf & "XXXXXXXXXXXXXXXXXXX" & Ninter & "a XXXXXXXXXXXXXXXXXXXXXXXXxx" & clo & ".Merci,XXXXXXXXXXXXX." & _
        vbCrLf & "XXXXXXXXXXXXXXXXXXXXXXXXX"
          corpsdumailss = texte
    End Function
    la cassse pour "corpsdumail"
    pour chaque boutons je change la variable en:
    corpsdumail s ou 1
    corpsdumails s ou 2
    ....

    et pour les retours ChariO?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .....vbcrLf & _          
           vbcLf........"
    End Sub
    Pensez-vous que cela peut venir de là.
    Si j'ai oublié des infos, n'hésitez pas.


    MERCI à TouS

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,


    déja peut tu dérouler ta macro en mode pas a pas pour savoir ou se déclenche l'erreur, ce serra plus simple.

    Ensuite dans err:, remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ("Erreur d'envoie du message")
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Err.number & ":" & err.description
    Je pense qu'ensuite on y verra plus clair.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Par défaut
    bonjour aalex_38,

    ais fait des modif sur le fichier et maintenant, cela fonctionne sur les deux premiers boutons!
    Par contre, le bouton3 ??
    il ne veux rien savoir
    message d'erreur et pas d'envois de mail.

    "La séquence du bouton3"

    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
    Private Sub CommandButton3_Click()
    On Error GoTo Err
     
        Set myOlapp = CreateObject("Outlook.Application")
        Set Email = myOlapp.CreateItem(olMailItem)
     
     
        Dim destinataires As String
        destinataires = Email.Recipients.Add(Workbooks("GI 2009").Worksheets("Formulaire").Range("A45").Value)
     
        Dim agence As String
        agence = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("G13").Value
     
        Email.Subject = " Cloture de l'intervention " & agence
     
        Email.Body = corpsdumailss()
     
        Email.Send
        MsgBox ("Le message a bien été envoyé")
     
     
    Exit Sub
     
    Err:
    MsgBox ("Erreur d'envoie du message")
    End Sub
     
     
    Function corpsdumailss() As String
        Dim Ninter As String
        Ninter = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H8").Value
     
        Dim clo As String
        clo = Workbooks("GI 2009").Worksheets("FORMAULAIRE").Range("I27").Value
     
        Dim texte As String
        texte = "Bonjour," & _
        vbCrLf & "XXXXXXXXXXXX" & Ninter & "XXXXXXXXXXX" & clo & ".XXXXXXXXXXXXXXXXXX" & _
        vbCrLf & "XXXXXXXXXXXXXXXXXXXXXX"
     
     
     
     
        corpsdumailss = texte
    End Function
    pour le bouton 1, ais mis corpsdumail
    pour le bouton 2, ais mis corpsdumails
    pour le bouton 3, ais mis corpsdumailss

    Ne sais pas si c'est à ce niveau que cela bloque?!
    lors de la compilation, me dit "erreur 9: l'indice n'appartient pas à la sélection"
    Et quand je Alt+F8, ne vois pas les macros de mon classeur ??

    Suis un peu fouillis, je débute c'est ma première fois

    MERCI ++

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Je ne vois pas comment mes indications on pu regler le problème, mais soit

    Et quand je Alt+F8, ne vois pas les macros de mon classeur ??
    C'est normal on ne peut pas voir les fonctions ni les sub en private.

    Pour débugger fait ALT+F11, va sur la macro et fait F8 pour aller en mode pas à pas.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Par défaut
    Citation Envoyé par aalex_38 Voir le message
    Je ne vois pas comment mes indications on pu regler le problème, mais soit
    j'ai plutot eu une illumination et apparemment cela fonctionne.
    (j'ai changé la casse et triché avec des " " )

    Par contre, pour le bouton3 rien à faire!
    Et quand je fait le mode pas à pas, cela plante sur tout les boutons ??
    au niveau de la fonction et du passage à la deuxième variable(Ninter à la suivante)?!
    bouton 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function corpsdumail() As String
        Dim Ninter As String
        Ninter = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H8").Value
     
        Dim Presta As String
        Presta = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("B13").Value
    bouton2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function corpsdumails() As String
        Dim Ninter As String
        Ninter = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H8").Value
     
        Dim Age As String
        Age = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H13").Value
    bouton3
    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
    Function corpsdumailss() As String
        Dim Ninter As String
        Ninter = Workbooks("GI 2009").Worksheets("FORMULAIRE").Range("H8").Value
     
        Dim clo As String
        clo = Workbooks("GI 2009").Worksheets("FORMAULAIRE").Range("I27").Value
     
        Dim texte As String
        texte = "Bonjour," & _
        vbCrLf & "XXXXXXXXXXXXXX" & Ninter & "XXXXXXXXXXX" & clo & ".XXXXXXXXXXXXX." & _
        vbCrLf & "XXXXXXXXXXXXXXXXXXXX"
     
     
     
     
        corpsdumailss = texte
    End Function
    j'espère que j'ai bien interprété , pour le débogage.

    Là je ne vois pas du tout, d'ou cela pourrais venir?!

    Merci

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Par défaut
    Citation Envoyé par aalex_38 Voir le message
    Bonjour,


    déja peut tu dérouler ta macro en mode pas a pas pour savoir ou se déclenche l'erreur, ce serra plus simple.

    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Err.number & ":" & err.description
    Je pense qu'ensuite on y verra plus clair.
    j'ai fait la modif, comme tu me l'avais conseillé et le message d'erreur
    dit: Erreur d'execution '9': L'indice n'appartient pas à la selection.

  7. #7
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    J'ai encore "mieux" comme modification
    Enlève le
    Sans la gestion d'erreur tu aura exactement la ligne qui te pose problème tu le remettra quand ca ne plantera plus

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Par défaut
    bonjour Krovax,
    viens de supprimer la ligne que tu me disais et me met le M message.
    Erreur d'execution '9': L'indice n'appartient pas à la selection.
    ensuite, une fois le message fermé, en cliquant sur débogage.

    Il met en jaune la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    destinataires = Email.Recipients.Add(Workbooks("GI 2009").Worksheets("Formulaire").Range("A45").Value)
    Ais mis exactement, la M casse pour les deux boutons du dessus et cela fonctionne, alors pourquoi le 3ème

  9. #9
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Est-ce que les noms du classeur et de la feuille sont bons ?
    Test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox Workbooks("GI 2009").Worksheets("Formulaire").Range("A45").Value

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/10/2008, 09h36
  2. Problème lors de l'envoie d'un mail (JavaMail)
    Par Invité dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/05/2006, 10h23
  3. Comment faire fonctionner l'envoi de mail
    Par temperature dans le forum Réseau
    Réponses: 1
    Dernier message: 24/04/2006, 12h12
  4. [Mail] problème envoi mail html
    Par biggief dans le forum Langage
    Réponses: 3
    Dernier message: 14/04/2006, 16h44
  5. Problème avec fonction d'envoie de mail
    Par zyg dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 23/02/2005, 08h48

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