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 :

Intersect et priorisation. [XL-2010]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant-RH
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Assistant-RH
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Par défaut Intersect et priorisation.
    Bonjour, je commence depuis peu à m'entraîner dans mon coin pour apprendre les rudiments du VBA.
    Je bosse en ce moment sur un projet modeste, ce calculateur sur excel: http://www.salairebrutnet.fr/

    Ce qui m'intéresse, c'est de travailler le côté réactivité de chaque cellule, par exemple, si je change le salaire net horaire, toutes les autres cellules se mettent à jour, et il va de même pour chaque cellule.

    J'ai fait un "trigger" si un changement opère sur brutannuel, le mois, les charges et le nombre d'heure, jusque là pas de soucis.
    Je viens donc d'attaquer une seconde cellule "Netannuel", sauf qu’évidemment mon fichier crash à chaque fois, je pense avoir saisi le problème:
    - En changeant le Netannuel, le brutannuel se déclenche, déclenchant ainsi les deux cellules en boucles. J'aimerai donc apprendre à éviter que les cellules ne se mettent à jour si le déclenchement provient d'une autre condition, et je peine à trouver comment écrire tout ça.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Private Sub Worksheet_Change(ByVal Target As Range)
     'Action quand quelque chose change dans la feuille
        Dim Brutannuel As Variant
        Dim BrutMensuel As Variant
        Dim BrutHoraire As Variant
     
        Dim Netannuel As Variant
        Dim NetMensuel As Variant
        Dim NetHoraire As Variant
     
        Dim nbheure As Variant
        Dim Mois As Variant
        Dim Charges As Variant
       'Déclaration des variables
     
     
     
    'Code pour éviter les Run Time errors en cas de fautes de frappes
     
    On Error Resume Next
     
      If Range("Brutannuel,BrutMensuel,BrutHoraire,NetAnnuel,NetMensuel,Nethoraire,nbheure,Mois,Charges") Is Nothing Then Exit Sub
     
    On Error GoTo 0
     
     
    'Détection de changement pour les cellules désignées
     
       If Not Intersect(Target, Range("Brutannuel,nbheure,Mois,charges")) Is Nothing Then
        'Si mouvement
     
           Range("BrutMensuel").Value = Range("Brutannuel").Value / Range("Mois").Value
           Range("BrutHoraire").Value = Range("Brutannuel").Value / (4.33 * Range("nbheure").Value * Range("Mois").Value)
     
           Range("Netannuel").Value = Range("Brutannuel").Value * ((100 - Range("charges").Value) / 100)
           Range("NetMensuel").Value = (Range("Brutannuel").Value * ((100 - Range("charges").Value) / 100)) / Range("mois")
           Range("NetHoraire").Value = (Range("Brutannuel").Value * ((100 - Range("charges").Value) / 100)) / (4.33 * Range("nbheure") * Range("mois"))
            'Réaction au mouvement:
     
        End If
     
        If Not Intersect(Target, Range("Netannuel")) Is Nothing Then
     
            Range("NetMensuel").Value = Range("Netannuel").Value / Range("Mois").Value
            Range("NetHoraire").Value = Range("Netannuel").Value / (4.33 * Range("nbheure").Value * Range("mois").Value)
     
            Range("Brutannuel").Value = Range("Netannuel").Value * ((100 + Range("charges").Value) / 100)
     
     
     
        End If
    Et voici le fichier en question, merci à ceux qui prendrons le temps de me répondre:
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/10/2004, 11h02
  2. Intersection entre 2 triangles?? (3D)
    Par supergrey dans le forum DirectX
    Réponses: 1
    Dernier message: 25/08/2004, 09h22
  3. EXCEPT et INTERSECT sous MS SQLServer ?
    Par christie dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/05/2004, 16h47
  4. [prg jeux ]Définir l'intersection de deux rectangles
    Par mat.M dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 30/07/2003, 18h11
  5. XPath: intersection de chemins
    Par aldo047 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/03/2003, 10h30

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