Pb sur cellules conditionnées

Résolu
cs_fcapitaine Messages postés 10 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 19 décembre 2007 - 19 déc. 2007 à 20:38
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 19 déc. 2007 à 23:54
Bonjour,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

 





Merci de votre aide car là je ne vois pas…




 





J’aimerai mettre en place des cellules qui ne permette la saisie que si une autre indique une valeur précise



Soit si A1=’A’ alors saisie autorisée dans B2



Ou si A1<>’A’ alors B2 renvoi un message d’erreur




 





Perso je ne connais que 2 procédés :




 





Le premier : inscrire dans la feuille un code style ‘change’ ou dans la thisworksheet



Je ne le fais pas car difficile à mettre en place du fait qu’il me faut insérer un code dans une feuille pré existante




 






 





Le deuxième un Outils/validation/personnalisé



Avec comme code = « =si(A1<>""A"";faux;vrai) »



Super ca marche



Mais qd je l’implémente en VBA il me génère une erreur




 






 






   With Selection.Validation




       .Delete




       .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _




      
 xlBetween, Formula1:="=si(A1<>""A"";faux;vrai)"



End With




 





Ca marche mal chez moi !!!!!!!!!



Mon code est faux ? il existe une autre méthode ? merci de votre aide

1 réponse

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 déc. 2007 à 23:54
Si je comprends bien, dan ThisWorkbook, mets ceci
Private Sub Workbook_Open()
    CheckLocked
End Sub

Dans le code la feuille, mets ceci
Private Sub Worksheet_Change(ByVal Target As Range)
    CheckLocked
End Sub

Puis finalement, dans un module mets ceci
Sub CheckLocked()
    Sheets("Feuil1").Unprotect
    If Sheets("Feuil1").Range("A1") = "A" Then
        Columns("B").Locked = False
    Else
        Columns("B").Locked = True
    End If
    Sheets("Feuil1").Protect
End Sub

Donc, tant que la cellule A1la colonne B sera bloquée
Il faut auparavant que tu sélectionnes toutes les cellules, puis menu Format Cellule, onglet Protection et tu décoches verrouilée.

MPi²
3
Rejoignez-nous