je fais des petites recherches sur internet et je vois qu'il est possible de bloquer une celulle à un maximum déterminé par une autre celulle.
Par exemple C2 ne peut pas écrire plus que C3.
Pour cela, il faut que je clique sur l'onglet et que je visualise le code et qu'ensuite j'incruste le code vba dedans.
Mais aucun code ne fonctionne ou peut etre que je le fais mal.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then Target = Application.WorksheetFunction.Min(Target, Target.Offset(1, 0))
End Sub
Il marche sur ta feuille ca c'est sur mais je n'arrive pas à l'appliquer sur ma feuille
Je sais faire des macros avec bouton mais je n'ai encore jamais fait comme ca sans bouton et la je n'y arrives pas :'(
Les macros standard ( avec boutons ) sont stockées dans des modules standards ...
Tandis que les macros qui sont évènementielles ... parce qu'elles sont déclenchées par un évènement ( et pas par un bouton ) doivent êtres stockées dans le module de la feuille concernée ...
Dans ton fichier test ... la macro évènementielle est stockée dans le module de la feuille ...
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" And Target <> "" Then
If Target.Value > Target.Offset(1) Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
MsgBox "plus grand que ""[C3]"""
Target.Select
End If
End If
End Sub
si ça concerne toute les cellules de la colonne "C" et que le principe est jamais plus grand que celle d'en dessous
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target <> "" Then
If Target.Offset(1) <> "" And Target.Value > Target.Offset(1) Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
MsgBox "plus grand que ""[""" & Target.Offset(1).Address(0, 0) & "]"""
Target.Select
End If
End If
End Sub
on peut limiter le champs d'action a certaines lignes aussi