Worksheet_Change

Bonjour,

J'ai un petit soucis avec le Worsheet_change(ByVal Target As Range).:

Private Sub Worksheet_Change(ByVal Target As Range)

If ActiveSheet.Range("Z2").Value = "Vrai" Then
        Dim ligne As Integer
        Dim CelluleTrouve As Range
        Set CelluleTrouve = Sheets("Donnees_individuelles").Range("A5:A200").Find(ActiveSheet.Name, lookat:=xlWhole)
            If CelluleTrouve Is Nothing Then
                MsgBox ("pas trouvé")
            Else
                ligne = CelluleTrouve.Row
                Sheets("Donnees_individuelles").Range("A" & ligne).Value = "x"
            End If
Else
Dim ligne As Integer
        Dim CelluleTrouve As Range
        Set CelluleTrouve = Sheets("Donnees_individuelles").Range("A5:A200").Find(ActiveSheet.Name, lookat:=xlWhole)
            If CelluleTrouve Is Nothing Then
                MsgBox ("pas trouvé")
            Else
                ligne = CelluleTrouve.Row
                Sheets("Donnees_individuelles").Range("A" & ligne).Value = ""
            End If
End Sub

Je dispose de ce code. Sur chaque onglet se trouve une case à cocher. Lorsque celle-ci est cochée, la cellule Z2 devient VRAI. Lorsque c'est le cas, un petit "x" est ajouté dans la bonne cellule de la feuille "Donnes individuelles".

Malheureusement pour moi, le code ne fait rien, j'ai du mal utilisé l’événement.

Pourriez-vous m'aider

Merci d'avance

Bonjour,

L'évènement Change ne survient pas !

Case à cocher : contrôle de formulaire ou activeX ?

Macro à affecter au contrôle... mais si tu effaces les noms de feuilles pour mettre des "x", cela deviendra vite chaotiques : dans quelle colonne les "x" ?

Et ensuite on pourra écrire proprement ta procédure !

Cordialement.

Bonjour, merci à toi de venir à mon secours

Il s'agit de contrôle de formulaire. Je créé pleins d'onglets (genre 200) qui sont nommé à partir de la feuille "données individuelles". Sur chaque de ces onglets se trouvent la case à cocher.

J'ai remarqué que si on applique une macro événement à ma feuille "copiée", celle-ci reste sur l'ensemble des 200 onglets.

Les "x" sont à mettre dans la colonne A, juste à coté des noms des onglets.

capture2

le "1-2" est le nom de la feuille où la case est cochée.

J’espère que j'ai été un peu plus clair

Essaie ainsi :

Sub MajZ()
    Dim nf As String, vz As Boolean, c As Range
    With ActiveSheet
        nf = .Name: vz = .Range("Z2").Value
    End With
    With Sheets("Donnees_individuelles").Range("B5:B200")
        Set c = .Find(nf, lookat:=xlWhole)
        If Not c Is Nothing Then
            If vz Then c.Offset(, -1) = "x" Else c.Offset(, -1).ClearContents
        Else
            MsgBox "Pas trouvé."
        End If
    End With
End Sub

Procédure à placer dans un module Standard.

A affecter aux cases à cocher (affectation au niveau du modèle, qui se répercutera sur les copies).

Proc. d'évènement Change à supprimer.

Cordialement.

Rechercher des sujets similaires à "worksheet change"