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 :

Pb ajout d'un tempo dans une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    chef avion
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : chef avion
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Par défaut Pb ajout d'un tempo dans une macro
    Bon j'ai actuellement une macro qui fonctionne
    en gros, quand je tape le chiffre 31 ou 34 ou 36 ou 18 ou 99 dans la colonne 21 ou 24 ou 27 ou 30 un mail est envoyé.

    Alors j'aimerai améliorer l'envoie de l'email, en ce qui concerne le corps du message.
    Actuellement je tape le code dans la colonne cible je table et hop le mail part direct

    Apres avoir marquer le code, des explication sont donner dans la colonne après. Mais le mail est deja parti et les explications ne sont pas dans le mail du coup
    J'ai pensé a mettre une tempo dans 45 seconde (largement suffisant) le temps que la personne marque les explication et que l'email body soit alimenté

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count > 1 Then Exit Sub
        Dim tablCode
        tablCode = Array(31, 34, 36, 18, 99)
     
        If Target.Column = 21 Or Target.Column = 24 Or Target.Column = 27 Or Target.Column = 30 Then
            For i = 0 To 4
                If Target.Value = tablCode(i) Then 
               '--------------------------------------------------------
                    Dim Email_Subject, Email_Send_From, Email_Send_To, _
                        Email_Cc, Email_Bcc, Email_Body As String
                    Dim Mail_Object, Mail_Single As Variant
                    Email_Subject = " DL " & tablCode(i)
                    Email_Send_From = "xxxx@gmail.com"
                    Email_Send_To = "xxxx@gmail.com"
                    Email_Cc = "xxxx@gmail.com"
                    Email_Bcc = "xxxx@gmail.com"
                    Email_Body = "Auto-mail" & vbCr & _
                                 "" & vbCr & _
                                 "Un code " & tablCode(i) & " a été attribué aujourd'hui" & vbCr & _
                                 "Date : " & Cells(Target.Row, 1) & vbCr & _
                                 "Nom agent: " & Cells(Target.Row, 2) & vbCr & _
                                 "Vol Départ: " & Cells(Target.Row, 13) & vbCr & _
                                 "STD: " & Format(Cells(Target.Row, 18), "hh:mm") & vbCr & _
                                 "ATD: " & Format(Cells(Target.Row, 19), "hh:mm") & vbCr & _
                                 "Durée: " & Format(Cells(Target.Row, 20), "hh:mm") & vbCr & vbCr & _
                                 "DR1: " & Cells(Target.Row, 21) & vbCr & _
                                 "time: " & Format(Cells(Target.Row, 22), "hh:mm") & vbCr & _
                                 "Explication: " & Cells(Target.Row, 23) & vbCr & vbCr & _
                                 "dr2: " & Cells(Target.Row, 24) & vbCr & _
                                 "time: " & Format(Cells(Target.Row, 25), "hh:mm") & vbCr & _
                                 "Explication: " & Cells(Target.Row, 26) & vbCr & vbCr & _
                                 "dr3: " & Cells(Target.Row, 27) & vbCr & _
                                 "time: " & Format(Cells(Target.Row, 28), "hh:mm") & vbCr & _
                                 "Explication: " & Cells(Target.Row, 29) & vbCr & vbCr & _
                                 "dr4: " & Cells(Target.Row, 30) & vbCr & _
                                 "time: " & Format(Cells(Target.Row, 31), "hh:mm") & vbCr & _
                                 "Explication: " & Cells(Target.Row, 32) & vbCr & vbCr & _
                                 "@tt"
     
     
                    On Error GoTo debugs
                    Set Mail_Object = CreateObject("Outlook.Application")
                    Set Mail_Single = Mail_Object.CreateItem(0)
                    With Mail_Single
                        .Subject = Email_Subject
                        .To = Email_Send_To
                        .cc = Email_Cc
                        .BCC = Email_Bcc
                        .Body = Email_Body
                        .Send
                    End With
    debugs:
                    If Err.Description <> "" Then MsgBox Err.Description
                    '----------------------------------------------------------------
                End If
     
            Next
        End If
    End Sub

    j'ai essayer d'ajouter application wait.. mais sa fonction pas comme je le voudrai
    J'ai essayer avec application.ontime ... mais j'arrive pas a l'integgrer,


    quelqu'un aurait-il une idée comment rajouté une tempo?
    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Par défaut
    De mémoire, au lieu de mettre .Send tu peux mettre .Show, ainsi ton mail sera tout prêt, plus qu'à le remplir et à cliquer toi-même sur Envoyer

    Qu'en penses-tu ? Sinon insère un DoEvents juste avant ton Application.Wait, mais je ne suis pas certain du truc...

  3. #3
    Membre averti
    Homme Profil pro
    chef avion
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : chef avion
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Par défaut
    En faite l'agent n'est pas censée écrire le mail, c'est juste un message d'info au chef de service, il est censé faire un rapport dans la foulé mais 70% du temps il ne le font pas.
    Donc il me faut un mail auto
    Alors soit une une tempo
    Application.OnTime Now() + TimeValue("00:00:45"), "Module1.RetrieveValues" mais je ne sais pas comment l’insérer, ou soit j'ai pensée, après sauvegarde, le mail part!!!

  4. #4
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    Bonjour,

    et l'agent rempli un case vide? Si oui pourquoi pas faire un test sur la cellule ou doit être inserer les commentaires et envoyer le mail que si la cellule commentaire est différentes de vide non?

  5. #5
    Membre averti
    Homme Profil pro
    chef avion
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : chef avion
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Par défaut
    le probleme c'est que il remplisse que le code 99 pas les autres

  6. #6
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    Bonjour,

    Le plus simple, serait simplement d'assigner l'envoi du mail, non pas au changement de valeur d'une cellule de la feuille mais à un bouton.
    Quitte à tester des cellules si l'envoi doit bel et bien être fait.

    Ca risque d'être compliqué à plus d'un titre de mettre un compte à rebours sur l'envoi du message en espérant que l'encodage soit fini.

Discussions similaires

  1. [XL-2007] Problème dans une macro pour ajouter une date
    Par INFINITY100 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/05/2015, 21h28
  2. Commande pour ajouter une sauvegarde dans une macro
    Par Tinien dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/09/2008, 15h03
  3. Tempo dans une macro
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/02/2008, 15h46
  4. AJOUT d'un ENREGISTREMENT dans UNE TABLE
    Par ramo dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/08/2005, 17h24
  5. Pb d'Ajout un noeud fils dans une arborescence
    Par oramine dans le forum Oracle
    Réponses: 5
    Dernier message: 21/12/2004, 16h39

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