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 :

L'évenement worksheet change


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 472
    Par défaut L'évenement worksheet change
    Bonjour à tous,

    J'ai une feuille "feuille1 "qui contient un bouton , ce dernier me permet de créer la copie de la feuille1 et la nomme en "feuille2".

    Après la fermeture de mon classeur excel je supprime la feuille2 et elle sera recréer après le clique sur le bouton.

    Cela dit je veux gérer les changements effectué sur la feuille2 et je ne sais pas comment m'y prendre.

    j'arrive à gérer les changement sur ma feuille1 mais pour la feuille2 je ne sais pas comment m'y prendre avez vous une idée ?


    Voilà le traitement que je veux faire dans la feuille2 :

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Not Intersect(Target, Range("H10:CN10")) Is Nothing Then
     
    Dim sum As Single
    Dim ing, coor As Single
    Dim selec As String
    Dim j As Integer
    sum = 0
    ing = 0
    coor = 0
    For j = 1 To 3  ' 7 to  I
     
    Application.Goto reference:="DataZero_" & j
    ActiveCell.Select
    sum = Application.WorksheetFunction.sum(Range(Range("DataZero_" & j), Range("DataZero_" & j).Offset(selection.CurrentRegion.Rows.count - 1, 0)))
     
    ActiveCell.Offset(-3, 0).Select
    selec = ActiveCell.Value
    'MsgBox sum
     
    If (selec = "ingénieur ") Then
    ing = sum + ing
     
    ElseIf (selec = "Coordinateur") Then
     coor = sum + coor
    End If
     
    Next  
      MsgBox "  somme coor " & coor
     
     
    End If
     
    End Sub

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Utilise l'évènement Workbook_SheetChange (cf module Thisworkbook) et fais un test sur le nom de la feuille Sh en paramètre.

    Exemple explicatif
    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 Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim S As Single, Ing As Single, Coor As Single
    Dim Selec As String
    Dim k As Long
    Dim j As Byte
     
    If InStr("Feuil1,Feuil2,", Sh.Name & ",") Then
        With Sh
            If Not Intersect(Target, .Range("H10:CN10")) Is Nothing Then
                For j = 1 To 3                       ' 7 to  I
                    k = .Range("DataZero_" & j).CurrentRegion.Rows.Count - 1
                    S = Application.sum(.Range(.Range("DataZero_" & j), .Range("DataZero_" & j).Offset(k, 0)))
                    Selec = .Range("DataZero_" & j).Offset(-3, 0).Value
                    If Selec = "ingénieur " Then
                        Ing = S + Ing
                    ElseIf Selec = "Coordinateur" Then
                        Coor = S + Coor
                    End If
                Next j
                MsgBox "  somme coor " & Coor & ",   somme ing " & Ing
            End If
        End With
    End If
    End Sub

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 472
    Par défaut
    oui j'avais testé avec cette événement là mais j'ai mis ainsi mais ça marchait pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if Sh.Name = "Feuille2"  then 
     
    mon traitement 
     
    end if
    c'est quoi l'utilité de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If InStr("Feuil1,Feuil2,", Sh.Name & ",")

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    ça veux dire que si le nom de la feuille Sh est contenu dans le mot "Feuil1, Feuil2"

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 472
    Par défaut
    Oui oui mais au fait je dois mettre ce code là où exactement car quand je le mets dans la feuille1 ça beug ?

    Merci pour ton aide

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Le code doit être dans le module ThisWorkbook.
    Ensuite, il faudra adapter aux noms de tes feuilles.

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

Discussions similaires

  1. Worksheet change Cell value
    Par NizarDev dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/09/2009, 13h53
  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