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 :

Afficher un msgbox conditionnel sur certains postes utilisateurs


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut Afficher un msgbox conditionnel sur certains postes utilisateurs
    Salut le forum

    J'ai un fichier que j'utilise comme une base de donnée que j'ai nommé "Fichier_Base".
    En effet, "Fichier_Base" se trouve dans un espace en réseau et est alimenté à partir d'un autre fichier nommé "Fichier_Départ". Fichier_Base est toujours fermé.
    La colonne "N" de la feuille "BASE_DE_DONNEES" du fichier "Fichier_Base" reçoit l'heure à partir de laquelle le collage a été fait.
    Sur la même feuille intitulée "BASE_DE_DONNEES", j'ai en colonne "O" et "P" les codes des personnes habilitées à valider une opération. Pour une opération, il faut 2 valideurs dont les codes valideurs s'affichent sur les colonnes O et P.
    Je souhaite qu'on m'aide à réaliser un code évènementiel (msgbox) qui s'exécutera sur les poste de chaque valideur. Autrement dit si une collage a été fait il y'a 5mns, que la personne habilité à valider l'opération reçoive une alerte l'invitant à valider les opérations relevant de son ressort (pouvoir).
    Voici de façon resumé mon idée mais suis preneur d'autre proposition allant dans le même sens.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    l'affichage d'un message sur le poste d'un autre utilisateur est possible.

    soit par un prise à distance de sont PC, mais là je proscris; soit par la base de données qui est commune à tous.

    personnellement je pense qui si des messages intempestif apparaissent sur la machine d'un autre utilisateur pendant qu'il effectue d'autres opérations, il risque de valider puis oublier!

    sans compter le pugilat que tu vas subir.

    je préconise ,mais tu en est le seule juge, l’envoi de mail.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
     MailEnvoi "smtp.googlemail.com", True, "My.Mail@gmail.com", "Pasw", 465, 10, "My.Mail@gmail.com", "Vous.Mail@gmail.com", "Copy@gmail.com", "Suivi des modifications.", "tel truc a été modifile", ""
    End Sub
    Code Module1 : 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
    Public Sub MailEnvoi(Serveur, Identify, User, PassWord, Port, Delay, Expediteur, Dest, DestEnCopy, Objet, Body, Pj)
    ' sub pour envoyer les mails
    Dim msg
    Dim Conf
    Dim Config
    Dim ess
    Dim splitPj
    Dim IsplitPj
    Set msg = CreateObject("CDO.Message") 'pour la configuration du message
    Set Conf = CreateObject("CDO.Configuration") '  pour la configuration de l'envoi
    Dim strHTML
     
    Set Config = Conf.Fields
     
    ' Configuration des parametres d'envoi
    '(SMTP - Identification - SSL - Password - Nom Utilisateur - Adresse messagerie)
    With Config
    If Identify = True Then
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = User
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = PassWord
    End If
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Port
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = Serveur
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = Delay
        .Update
     
    End With
     
     
    'Configuration du message
    'If E_mail.Sign.Value = Checked Then Convert ServeurFrm.SignTXT, ServeurFrm.Text1
     
    With msg
        Set .Configuration = Conf
        .To = Dest
      .cc = DestEnCopy
        .FROM = Expediteur
        .Subject = Objet
    '
     
        .HTMLBody = Body '"<p align=""center""><font face=""Verdana"" size=""1"" color=""#9224FF""><b><br><font face=""Comic Sans MS"" size=""5"" color=""#FF0000""></b><i>" & body & "</i></font> " 'E_mail.ZThtml.Text
                If Pj <> "" Then
            splitPj = Split(Pj & ";", ";")
     
            For IsplitPj = 0 To UBound(splitPj)
                If Trim("" & splitPj(IsplitPj)) <> "" Then
                    .AddAttachment Trim("" & splitPj(IsplitPj))
                End If
            Next
     
        End If
        .Send 'envoi du message
     
    End With
    ' reinitialisation des variables
    Set msg = Nothing
    Set Conf = Nothing
    Set Config = Nothing
     
    End Sub

  3. #3
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Bonjour rdurupt

    Merci pour votre solution que j'accepte.
    Je préfère me nourrir de votre expérience en la matière.
    Je viens de tester mais je rencontre un message d'erreur:
    Erreur d’exécution ‘-2147220973(80040213)’ :
    Le transport a échoué dans sa connexion au serveur
    Dans notre structure, nous utilisons outlook pour la messagerie.
    Ne serait-il pas mieux d'en tenir compte dans votre paramétrage?
    Encore merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    pas de problème!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Test()
    Mail "Sujet", "Message", "Destinataire@gmail.com", Pj:="C:\MyTest\Classeur1.xlsm;C:\MyTest\Classeur11.xlsm", DestinataireCopyCacher:="DestinataireCopyCacher@gmail.com"
    Mail "Sujet", "Message", "Destinataire@gmail.com", Pj:="C:\MyTest\Classeur1.xlsm;C:\MyTest\Classeur11.xlsm", DestinataireCopy:="DestinataireCopy.com"
    Mail "Sujet", "Message", "Destinataire@gmail.com", DestinataireCopy:="DestinataireCopy.com", DestinataireCopyCacher:="DestinataireCopyCacher@gmail.com"
    Mail "Sujet", "Message", "Destinataire@gmail.com", DestinataireCopyCacher:="DestinataireCopyCacher@gmail.com"
    Mail "Sujet", "Message", "Destinataire@gmail.com"
    End Sub
    Code Module1 : 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
    Sub Mail(Sujet As String, Message As String, Destinataire As String, Optional DestinataireCopy As String, Optional DestinataireCopyCacher As String, Optional Pj As String = "")
    Set objOutlook = CreateObject("Outlook.application")
    Set MailObj = objOutlook.CreateItem(olMailItem)
    With MailObj
        .To = Destinataire
        .CC = DestinataireCopy
        .BCC = DestinataireCopyCacher
        .Subject = Sujet
        .BodyFormat = 2
        .HTMLBody = Message
        If Trim("" & Pj) <> "" Then
            p = Split(Pj & ";", ";")
            For i = 0 To UBound(p)
                If Trim("" & p(i)) <> "" Then .Attachments.Add Trim("" & p(i))
            Next
        End If
        '.Display 'Can be .Send but prompts for user intervention before sending without 3rd party software like ClickYes
        .Send
    End With
    End Sub

  5. #5
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Bonsoir rdurupt

    Merci pour la solution mail par outlook.
    J'ai testé et ca marche.
    Je suis entrain de voir comment faire avec la solution par mail pour arriver à mes finalités.
    Je vous reviens d'ici demain pour ce que j'aurai décidé.
    A bientôt

Discussions similaires

  1. Problème avec la mise en forme conditionnelle sur certains postes
    Par Z20500 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2014, 17h53
  2. probleme de chargement sur certains postes
    Par menuge dans le forum Applets
    Réponses: 1
    Dernier message: 07/09/2007, 09h36
  3. Réponses: 8
    Dernier message: 24/01/2007, 15h49
  4. objet monthview non diponible sur certains posts
    Par karimspace dans le forum Access
    Réponses: 5
    Dernier message: 30/08/2006, 11h18
  5. Réponses: 3
    Dernier message: 12/04/2006, 11h07

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