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 :

Traduction d'algorithme en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Par défaut Traduction d'algorithme en VBA
    Bonjour,
    N'ayant aucune notion de VBA, j'aimerais traduire ce petit algorithme en particulier la fonction "envoyer un email" sur excel:

    tant que (fin_de_tableau est non vide) faire
    si ("date cellule 1" - "date cellule 2" < "durée de 1 mois") alors (envoyer_email ("alerte") & écrire ("alerte" dans cellule B10)
    sinon écrire ("normal" dans cellule B10)
    fin de tant que


    Merci pour vos réponses

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 199
    Par défaut
    Bonjour,

    Un truc du genre

    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
     
    Sub test()
     
    Dim cpt As Integer
    Dim date_deb As Date, date_fin As Date, diff_date As Integer
     
    For cpt = 2 To Sheets("Feuil1").Range("a" & Rows.Count).End(xlUp).Row
     
        date_deb = Sheets("Feuil1").Cells(cpt, 1)
        date_fin = Sheets("Feuil1").Cells(cpt, 2)
     
        diff_date = DateDiff("m", date_deb, date_fin)
     
        If diff_date < 1 Then 'Si nombre de mois inf. à 1 alors
            envoyerMail
            Sheets("Feuil1").Range("B10") = "alerte"
        Else 'Sinon
            Sheets("Feuil1").Range("B10") = "normal"
        End If
     
    Next cpt
     
    End Sub
    Cordialement,

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Par défaut
    Merci Goldstar pour ton aide,
    ça me parait intéressant. Par contre pour la fonction envoyerMail, existe-t-elle en VBA ou faut-il la coder.
    Cordialement

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par enold Voir le message
    Par contre pour la fonction envoyerMail, existe t-elle en VBA ou faut t-il la coder.
    Ca dépend de ce que tu souhaites faire. Envoyer un fichier en pièce jointe ? Envoyer un message ?

    Excel lui-même ne sait pas envoyer un e-mail. Il ne peut le faire que par l'intermédiaire de ton gestionnaire d'e-mail (Outlook, Notes, etc.).
    Pour le VBA Exel, c'est la même chose. Il faut utiliser les objets de ton gestionnaire d'e-mail (en ayant chargé sa bibliothèque).

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Par défaut
    Merci Menhir,
    Effectivement, c'est pour envoyer un message à un destinataire sans pièce jointe.
    Pourrais-tu me dire en quelques lignes ou me donner des liens vers un tuto pour le faire? je peux éventuellement comprendre le code, mais la syntaxe, les objets et l'environnement VBA je ne connais pas, car je n'en ai vraiment aucune notion.

    Cordialement

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 199
    Par défaut
    Bonjour,

    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
     
     
    Sub envoyer_mail()
     
    Dim Ol As New Outlook.Application
    Dim Olmail As MailItem
    Dim CurrFile As String
    Dim mailDestinatire As String, mailDestinatireCopie As String, mailSujet As String, mailMessage As String
     
     
     
    Set wshell = CreateObject("WScript.Shell")
     
    Set Ol = New Outlook.Application
    Set Olmail = Ol.CreateItem(olMailItem)
     
    With Olmail
     
     
        .To = mailDestinatire 'destinataire
        .CC = mailDestinatireCopie 'copie
        .Subject = mailSujet 'objet
        .Body = mailMessage
     
        monFichier = "monFichier"
     
        .Attachments.Add monFichier 'Piéce jointe
     
        .Display 'Pour affichier le message dans la outlook
        .Send 'Pour envoyer directement le message
     
    'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display)
     
        End With
     
    End Sub

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par enold Voir le message
    Pourrais-tu me dire en quelques lignes ou me donner des liens vers un tuto pour le faire?
    Je connais le principe que je t'ai donné mais, comme je ne l'ai jamais fait, je ne peux pas te donner de code précis.
    La seule chose que je peux te dire, c'est que ça dépend du logiciel de gestion de mail que tu as installé puisque ce sont les objets de ce logiciel qui seront manipulés. Par exemple, dans le code proposé par Goldstar, c'est Outlook qui est utilisé (voir la ligne 14). Si tu n'utilises pas Outlook, ça ne fonctionne pas.

    Le sujet ayant été souvent traité dans ce forum, je te conseille de lancer une recherche sur les anciens sujets.

Discussions similaires

  1. la traduction d' algorithme palindrome sur java
    Par yusuf islam dans le forum Général Java
    Réponses: 2
    Dernier message: 04/12/2009, 15h24
  2. probleme traduction d'algorithme de tri
    Par flyzi dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 24/02/2009, 17h51
  3. Traduction d'algorithme en Pascal : calculer x^k
    Par Zac EFRON dans le forum Pascal
    Réponses: 6
    Dernier message: 08/12/2008, 00h35
  4. [VBA-W] conversion d'un algorithme en VBA
    Par perophron dans le forum VBA Word
    Réponses: 3
    Dernier message: 18/04/2007, 10h58
  5. PB traduction requete sql vers vba
    Par stan314 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 28/05/2006, 17h27

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