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 :

Worksheet change - ou worksheet selection change


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2020
    Messages : 1
    Par défaut Worksheet change - ou worksheet selection change
    bonjour

    je ne suis pas experte en vba et j'essaie de me débrouiller en consultant les echanges sur ce forum mais la je bloque.

    j'ai créé un formulaire qui alimente une feuille colonnes A à H et qui indique au destinataire que sa demande est prise en compte via envoi de mail : jusqu'ici tout va bien (mais c'est ca qui plante le reste je mets le code tout en bas)

    sur cette feuille où les données sont intégrées (tableau de suivi), je dois pouvoir modifier le statut de traitement via liste déroulante (ok aussi) en colonne I et je voudrai que cela envoi l'information au demandeur lorsqu'une modification est réalisée : cela fonctionne mais de manière aléatoire

    mes soucis :
    - je peux sur ce tableau de suivi mettre des informations dans les colonnes suivantes : colonnes J K et L et là j'ai un soucis parce qu'il m'indique erreur destinataire mais je ne veux pas que les modifications de ces colonnes génèrent l’exécution de ma macro . je pense qu'il y a donc un soucis sur mon worksheet_change. dois je utiliser worksheet_selection change ?

    - pourquoi lorsque je créé un nouvel enregistrement via mon formulaire il m'envoie un mail et il me renvoie un mail de modification "vide" quand j'ouvre le tableau de suivi même si je n'ai pas changé la valeur de la cellule ?

    Pourriez-vous m'aider ? ce serait super cool merci à ceux qui me liront

    Macro de création / insertion via formulaire

    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
    37
    38
    39
     
    Private Sub CommandButton1_Click()
     
    Dim L As Integer, oApp As Outlook.Application, oMsg As Outlook.MailItem
     
    If ComboBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or TextBox5 = "" Or TextBox6 = "" Then
        MsgBox ("Veuillez renseigner tous les champs")
        Exit Sub
    End If
     
    If MsgBox("Confirmez-vous l'enregistrement des données ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
        With Sheets("Tableau Suivi")
            L = .Range("A" & Rows.Count).End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
            .Range("C" & L).Value = ComboBox1
            .Range("D" & L).Value = TextBox8
            .Range("A" & L).Value = TextBox2
            .Range("B" & L).Value = TextBox3
            .Range("E" & L).Value = TextBox4
            .Range("F" & L).Value = TextBox5
            .Range("G" & L).Value = TextBox6
            .Range("H" & L).Value = TextBox7
        End With
        Set oApp = Outlook.Application
        Set oMsg = oApp.CreateItem(olMailItem)
        With oMsg
            .To = TextBox8.Value
            .Subject = "Enregistrement OA par le magasin de Toul"
            .BodyFormat = olFormatHTML
            .Body = "Bonjour, je vous confirme l'enregistrement de l'OA - Description du besoin : " & TextBox4 & " avec une date de besoin au " & TextBox5
            .Send
        End With
        Set oMsg = Nothing
        Set oApp = Nothing
        MsgBox " Enregistrement validé"
        Unload Me
        Sheets("Intro").Activate
    End If
     
    End Sub




    Macro de modification de statut:

    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
     
    Private Sub Worksheet_selectionChange(ByVal Target As Range)
     
    Dim oApp As Outlook.Application, oMsg As Outlook.MailItem
     
      If Target.Value <> "" Or Not Intersect(Target, Range("I1:I10000")) Is Nothing Then
        With Target
            sTo = .Offset(0, -5).Value
            sSubject = .Offset(0, -4).Value
        End With
        Set oApp = Outlook.Application
        Set oMsg = oApp.CreateItem(olMailItem)
        With oMsg
            .To = sTo
            .Subject = "Modification statut traitement OA : " & sSubject
            .BodyFormat = olFormatHTML
            .Body = "le statut de votre OA : " & sSubject & " vient d'être modifié : " & ActiveCell.Value
            .Send
        End With
        Set oMsg = Nothing
        Set oApp = Nothing
    End If
     
    End Sub
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2003] worksheet change ou selection change
    Par beatrice2fr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/10/2009, 09h00
  2. [XL-2003] manip worksheet change simple
    Par Emily2711 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/04/2009, 19h43
  3. Procédure Worksheet-change en VB sous excel
    Par jayorange dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 01/03/2008, 15h02
  4. Evènement Worksheet Change
    Par elise__ dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/10/2007, 14h36
  5. evenement worksheets change
    Par AnozerOne dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/07/2007, 06h42

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