Envoi de mail en fonction d'une valeur de case

Bonjour à tous,

nouveau sur le forum et plutôt debutant en VBA. J'ai parcouru avec intérêt la partie Formation VBA mais je pense que ce que je souhaite faire demande un peu plus de connaissances. J'ai aussi déjà parcouru les posts consacrés aux envois de mail depuis VBA.

Pour faire simple: j'ai un fichier excel qui est lié à une application internet qui envoie en permanence des prix de matières premières et des taux de change, j'ai donc quelques cases qui changent principalement les cases B2, B3, B5, B6, D2, D3, G2, G3, O3, O4, O5,O6.

A partir de là le tableau fais des caluls assez simples de multiplications d'addtions pour me donner en temps reels des prix d'achat et de vente.

Je souhaiterais recevoir un email quand une case du range U7:UXX de ce tableau prend une certaine valeur : "vendre" par exemple (case U7 )

Pour l'instant j'ai cette mouture:

Sub envoi_mail()

    If ActiveSheet.Range(Cells(7, 20), Cells(12, 20)).Select = "VENDRE" Then

        Dim ol As Object, monItem As Object
        Set ol = CreateObject("outlook.application")
            Dim msg As MailItem
            Set olapp = New Outlook.Application
            Set msg = olapp.CreateItem(olMailItem)
        Dim client As String
            valeur_LME = Cells(7, 20)
        Dim valeur_LME As Integer
            client = Cells(7, 19)

            msg.To = "poulenard@nfm.lu"
            msg.Subject = client
            msg.Body = "l'ordre pour le client" & client & "pour le prix de " & valeur_LME & "peut être éxécuté"
            msg.Send

        Set ol = Nothing

    End If

End Sub

Bien entendu cela ne marche pas

Merci par avance pour votre aide!

je joins le fichier (bon les chiffres ne bougeront pas en live mais cela ne doit pas changer grand chose je suppose).

10prix-live.xlsm (27.13 Ko)

help?

Bonsoir,

Tout d'abord "Select" est une méthode (c'est à dire une action) et non une propriété, l'instruction "=" est donc impropre.

remplacer

If ActiveSheet.Range(Cells(7, 20), Cells(12, 20)).Select = "VENDRE" Then

par

If Not ActiveSheet.Range(Cells(7, "U"), Cells(12, "U")).Find("VENDRE") Is Nothing Then Stop
Rechercher des sujets similaires à "envoi mail fonction valeur case"