Programmer une tache

super donc colonne A trouve mot alerte

alors

macro

si pas de mot ferme l 'application excel sans sauvegardé

comment présente ton cette condition avec une boucle jusqu'à la dernière ligne du fichier

je bloque en vba

For each cel in Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
    If cel like "alerte" then
        TaMacro
    End if
Next cel

ma macro

ou je met le code donné

Sub EnvoiMailCDO()
Dim mMessage As Object
Dim mConfig As Object
Dim mChps

    Set mConfig = CreateObject("CDO.Configuration")

    mConfig.Load -1
    Set mChps = mConfig.Fields
    Sheets("contrat").Select
    With mChps
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        'Adapter suivant votre serveur de mail. (exemple pour Gmail.)=> Hormail "smtp.live.com"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
        'En principe, 25 fonctionne avec tout les serveurs.
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = "465"

        'Vous pouvez essayer sans ces trois lignes
        'Mais si votre serveur demande une authentification,
        If [E6].Value <> "" Then
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = "1"
            .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "************@gmail.com"
            .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "************"
        End If
        'Si votre serveur demande une connexion sûre (SSL)
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true"

        .Update
    End With

    Set mMessage = CreateObject("CDO.Message")
    With mMessage
    Set .Configuration = mConfig
        .To = "**************@gmail.com"
        .From = "**************@gmail.com"
        .Subject = "ALERTE CONTRAT DE MAINTENANCE"
        .TextBody = "..................ALERTE UN CONTRAT DE MAINTENANCE..................ARRIVE A ECHEANCE............................"
        'Pour ajouter une pièce jointe, un fichier, classeur, image etc.
        '.AddAttachment 'Chemin et nom complet du fichier à joindre
        .send
    End With
    Set mMessage = Nothing

    'Libère les ressources
    Set mConfig = Nothing
    Set mChps = Nothing

    [quote]ActiveWorkbook.Close[/quote]'demande de sauvegardé

End Sub

A mettre en dessous (après le "End Sub") de ta macro "EnvoiMailCDO" :

Sub Execution()

Application.DisplayAlerts = False

For each cel in Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
    If cel like "alerte" then
        Call EnvoiMailCDO 'Enlève ActiveWorkbook.close de ta macro "EnvoiMailCDO"
    End if
Next cel

ActiveWorkbook.save
ActiveWorkbook.close
end sub

De plus, dans le code de "ThisWorkbook" la ou il y a toute tes feuilles sur la page VBA tu mets :

Private Sub Workbook_Open()
Call Module1.Execution 'Si la macro execution se trouve dans la procédure Module1
End Sub

merci de votre réponse c presque ca

j ai une erreur surle mot cel en lancant la macro excecution

Essaye de rajouter

Dim cel As Range

au dessus de la boucle.

merci ca marche du coup je reçoit 4 mail (peut on mettre dans le corps du mail la colonne C et D de la ligne en alerte nom du contrat)

des que j'ouvre je ferme le classeur mais pas le fichier

du coup comment je fais pour arrêter la macro si je dois travailler le document (stopper genre ctrl+A) par exemple pour changer quand je dois rectifier

genre je ne peut mettre ca Dim cel As Range car le fichier se ferme (ctrl+pause ca marche)

Rechercher des sujets similaires à "programmer tache"