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 SubJe 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.
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 SubProcé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.