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 :

Problème macro calculate


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Par défaut Problème macro calculate
    Bonjour, je suis nouveau et pas très doué en VBA, j'implore donc votre aide.

    Voici mon problème :


    En gros on a : A1 A2 A3 A4 etc. chacune de ses cellules contiennent =somme(A2:A10) =somme(B2:B10) etc...

    Le but de la macro : lorsque A1 change : mail 1 s'envoie, lorsque B1 Change B2 s'envoie etc.
    Mon problème : j'ai un début de code mais si B1 change c'est mail 1 et 2 qui s'envoie... je n'arrive pas à envoyer qu'un seul mail correspondant.

    mail1 et mail2 sont les macros d'envoie de mail (elles marchent bien, déjà testées)

    le code utilisé :

    Code :
    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
     
    Public ValPrec1
    Public ValPrec2
     
    Private Sub Worksheet_Calculate()
      Vérif1
      Vérif2
    End Sub
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
      Vérif1
     
      If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
      Vérif2
     
    End Sub
     
    Private Sub Vérif1()
      If VarType(Range("A1")) = VarType(ValPrec1) Then _
        If ValPrec1 = Range("A1") Then Exit Sub
        mail1
      ValPrec1 = Range("A1")
        End Sub
     
       Private Sub Vérif2()
     
        If VarType(Range("B1")) = VarType(ValPrec2) Then _
        If ValPrec2 = Range("B1") Then Exit Sub
       mail2
      ValPrec2 = Range("B1")
    End Sub

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Tu as essayé de faire du pas à pas ?
    Pour moi, il y a un souci, car tes 2 vérif s'envoient à chaque fois, à cause de des If "mal configurés". Ecris plutôt comme ça (avec des end if) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1")) Is Nothing Then 
       Exit Sub
    else
       Vérif1
    end if
     
     If Intersect(Target, Range("B1")) Is Nothing Then 
         Exit Sub
    else
       Vérif2
    end if 
    End Sub
    A part si j'ai mal compris ton problème
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Par défaut
    Tu as bien saisi le problème, mais il n'est pas résolu malheureusement et c'est en train de me rendre fou ahah

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Et avec le code que je t'ai mis, ça fait quoi ? qu'entend tu par "ça marche pas" ?

    par ailleurs, évites les accents dans les nom de procédure/fonctions
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Par défaut
    Avec ton code ça fait exactement pareil sauf qu'une fois sur deux, unbug avec pour rapport d'erreur de me renvoyer à la ligne ".Send 0, vaRecipient"

    Mais je pense que tu es plus sur la bonne voix que moi, je me doute que ça a un rapport avec le fait de séparer le déclenchement des macros mais je ne sais pas comment faire

  6. #6
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Citation Envoyé par mclex Voir le message
    Avec ton code ça fait exactement pareil sauf qu'une fois sur deux, unbug avec pour rapport d'erreur de me renvoyer à la ligne ".Send 0, vaRecipient"
    Cette ligne est dans ta macro d'envoi de mail non ? Tu dois avoir un souci sur cette ligne s'il te signale une erreur...
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

Discussions similaires

  1. [XL-2010] Problème événement Calculate dans une macro
    Par benadry dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/04/2014, 09h27
  2. Problème de calcul matricielle
    Par Clad3 dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 29/06/2005, 21h45
  3. problème de calcul des normales par sommet
    Par captainSeb dans le forum OpenGL
    Réponses: 2
    Dernier message: 21/01/2005, 13h42
  4. [Calendar]Problème de calcul de date
    Par valerie90 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 08/12/2004, 12h13
  5. Problème de calcul unix_timestamp
    Par petit_stagiaire dans le forum Administration
    Réponses: 2
    Dernier message: 28/04/2004, 15h27

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