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 :

Execution macro sous condition [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable en logistique
    Inscrit en
    Mai 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable en logistique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 39
    Par défaut Execution macro sous condition
    Bonjour,

    J'ai une bonne connaissance en VBA mais la je coince

    J'ai développé une macro pour envoyer un mail automatiquement si une cellule de la colonne T est remplit. Sauf que si je fais une modification dans une cellule déjà remplit un mail est aussi envoyé. Je souhaite donc qu'un mail soit envoyé automatiquement si une cellule, initialement vide, est remplis mais en aucun cas si des modifications sont effectuées sur une cellule déjà remplis. J'ai utilisé la fonction "Private sub worksheet_change(byval target as range)"


    En vous remerciant d'avance pour votre aide .

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Ma manière de te répondre (elle relève d'ailleurs plus de la conception d'un mécanisme, le code étant, lui, alors simplissime).
    Regarde ce que ferait ceci sur toute cellule (et adapte).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private deja As String
    Private Sub Worksheet_Change(ByVal Target As Range)
       If deja = "" And Target.Value <> "" Then MsgBox "j'envoie mon mail"
    End Sub
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      deja = Target.Value
    End Sub

  3. #3
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    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
     
    Dim SelectAddress As Range
    Dim Select1 As Boolean
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Select1 Then
            If Target.Address <> SelectAddress.Address Then
                'test si cellule vide à été remplie
                If SelectAddress.Value <> "" Then
                    'envoyer un mail
                    MsgBox "envoyer un mail : la cellule " & SelectAddress.Address & " a été remplie..."
                End If
                'test si cellule vide
                If Target.Value = "" Then
                    Set SelectAddress = Target
                End If
            End If
        Else
            'test si cellule vide
            If Target.Value = "" Then
                Select1 = True
                Set SelectAddress = Target
            End If
        End If
    End Sub
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  4. #4
    Membre averti
    Homme Profil pro
    Responsable en logistique
    Inscrit en
    Mai 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable en logistique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 39
    Par défaut
    Merci a tous pour vos propositions, auquelles je n'avais pas pensé .

    Je viens de tester une partie cela m'a l'air correct. Je finalise demain ce script et vous tiens au jus pour voir si cela me conviens.

    En vous souhaitant une bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macros sous condition dans une autre macro
    Par vvl_5 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/12/2013, 20h14
  2. [AC-2007] ERREUR 0 : Lancer une macro sous condition avec "ExecuterMacro"
    Par Octo LPO dans le forum Macros Access
    Réponses: 2
    Dernier message: 01/02/2013, 15h31
  3. exécution macro sous condition
    Par arthour973 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/12/2011, 10h37
  4. impossible de démarrer macro sous condition
    Par ric009 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 07/05/2011, 22h24
  5. [AC-97] Macro sous condition
    Par julio79 dans le forum IHM
    Réponses: 0
    Dernier message: 28/05/2009, 18h17

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