Comment executer une macro sur une feuille de calcul

guillermo

XLDnaute Nouveau
bonjour à tous,

j'ai une macro que je n'arrive pas à executer, vous pourriez m' expliquer pas à pas comment faire depuis la feuille de calcul et sur le module pour que cette macro soit opérationnelle. merci d'avance

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("Commentaire").Address Then
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)

strbody = Range("Commentaire").Value
Courriel = "toncourriel@hotmail.com"

On Error Resume Next
With OutMail
.To = Courriel
.CC = ""
.BCC = ""
.Subject = "Commentaire d'un employé"
.Body = strbody
.Send
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End If
End Sub
 
C

Compte Supprimé 979

Guest
Re : Comment executer une macro sur une feuille de calcul

Bonjour Guillermo,

Il faut tou d'abord mettre se code dans la feuille ou tu fais ta modification

Ensuite l'explication
Code:
  ' En cas de modification d'une cellule
  ' Si la celulle modifiée est celle nommée "Commentaire"
  If Target.Address = Range("Commentaire").Address Then
    ' Créer un objet Outlook

Est-ce suffisant ?

A+
 

Papou-net

XLDnaute Barbatruc
Re : Comment executer une macro sur une feuille de calcul

Bonjour guillermo,

Tu lances l'éditeur VBA (ALT+F11) ou par le menu Outils...Macros...Visual Basic Editeur.

Dans la fenêtre principale, liste déroulante en haut à gauche, tu sélectionnes "(Général)" et tu écris la ligne suivante :

Code:
Option Explicit

Cette instruction, placée en tête du module de code oblige à déclarer toutes les variables utilisées dans cette procédure. C(est une bonne habitude à prendre dès le début.

Ensuite, tu sélectionnes "Workshhet" dans cette même liste déroulante, et dans la liste déroulante de droite, tu sélectionnes "Change". Tu obtiens automatiquement les 2 lignes suivantes :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Il ne reste plus qu'à insérer ton code entre ces 2 lignes, mais sans répéter les 1ère et dernière lignes :

Code:
If Target.Address = Range("Commentaire").Address Then
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)

strbody = Range("Commentaire").Value
Courriel = "toncourriel@hotmail.com"

On Error Resume Next
With OutMail
.To = Courriel
.CC = ""
.BCC = ""
.Subject = "Commentaire d'un employé"
.Body = strbody
.Send
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End If

C'est terminé, ta macro s'effectuera automatiquement à chaque fois que tu modifieras ta cellule nommée "Commentaire". C'est une macro événementielle.

Espérant t'avoir aidé.

Cordialement.

Edit : Bonjour BrunoM45
 

guillermo

XLDnaute Nouveau
Re : Comment executer une macro sur une feuille de calcul

Re bonjour, merci pour ces retours, alors j'ai deux soucis il me met "erreur de compilation variable non défini" en soulignant "Out App ="

et sinon il met " impossible d executer le code en mode arrêt "

question que dois je mettre sur ma feuille excel précisement " commentaires" en A1 par exemple ?
 
G

Guest

Guest
Re : Comment executer une macro sur une feuille de calcul

Bonjour,

Bruno:), Papou:)

Puisque mes illustres camarades ne sont pas connéctés.
VBA te demande de déclarer les variables (Ligne avec Dim)

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Range("Commentaire").Address Then
        Dim OutApp As Object, OutMail As Object, strBody As String, Courrier As String
        Set OutApp = CreateObject("Outlook.Application")
        OutApp.Session.Logon
        Set OutMail = OutApp.CreateItem(0)
        strBody = Range("Commentaire").Value
        Courriel = "toncourriel@hotmail.com"
        On Error Resume Next
        With OutMail
            .To = Courriel
            .CC = ""
            .BCC = ""
            .Subject = "Commentaire d'un employé"
            .Body = strBody
            .Send
        End With
        On Error GoTo 0
        Set OutMail = Nothing
        Set OutApp = Nothing
    End If
End Sub

A+
 
Dernière modification par un modérateur:
G

Guest

Guest
Re : Comment executer une macro sur une feuille de calcul

Re,

C'est pas difficile de s'apercevoir que j'ai fait une erreur en nommant la variable:

Courrier as String au lieu de Courriel as String

A+
 
G

Guest

Guest
Re : Comment executer une macro sur une feuille de calcul

Guillermo,

Il est de coutume de commencer tous ces posts par un re-bonjour ou simplement re et surtout les terminer par un signe de courtoisie.

Es-tu certain que tu as une plage nommée "Commentaire"?

Sinon sans fichier, nous ne pourrons te répondre.

A+
 

guillermo

XLDnaute Nouveau
Re : Comment executer une macro sur une feuille de calcul

Oui pardon Hasco, je bosse qu'avec une main aujourd'hui et étant alité, j'essaie d economiser les tapes sur mon clavier, mais merci pour vos conseils

oui j'ai bien vérifié en A1 ma plage est nommé : Commentaire

d'ou mon probleme

merci encore
 

Statistiques des forums

Discussions
312 299
Messages
2 086 993
Membres
103 422
dernier inscrit
victus5