empecher saisie ds cellule si...

D

DidierL

Guest
Bonsoir a toutes et a tous,
Comment empecher la saisie dans toutes les cellules d'une feuille lorsque celles-ci contiennent une formule?
J'ai tente cette petite proc mais c'est pas bon...

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Target.HasFormula = True Then
MsgBox 'Saisie impossible!'
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If

End Sub
Merci d'avance
DidierL
 

Eric C

XLDnaute Barbatruc
Bonsoir le forum
Bonsoir DidierL

Je tente avec cet essai :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.HasFormula = True Then
MsgBox 'Saisie impossible!'
ActiveCell.Offset(0, -1).Select
End If
End Sub

Bonne année & bonne soirée à toutes & à tous ;)
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir DidierL, Eric C,

Ci-dessous une autre solution possible si on souhaite autoriser la sélection de la cellule (à coller dans le module de code de l'objet ThisWorkbook) :
Option Explicit
Dim
AvecFormule As Boolean

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
      If AvecFormule Then
            MsgBox 'Modification non autorisée !'
            Application.EnableEvents = False
            Application.Undo
            Application.EnableEvents = True
      End If
End Sub


Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
      AvecFormule = Target.HasFormula
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
      AvecFormule = ActiveCell.HasFormula
End Sub
Cordialement,
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir fradouan, bonsoir à toutes et à tous :)

Radouan, tu as eu le mérite de me faire rire :)

Nous avons au moins un beta-testeur en commun Didier et moi :woohoo:

Il faut quand même que tu saches que nous ne faisons pas des applis en prêt-à-porter, et que les codes ou formules proposées par les uns ou les autres sont à adapter ;)

Le code de Didier répondait au cahier des charges et bien mieux que ma proposition qui devait être modifiée en fonction des évolutions du fichier...

Il existe rarement de solution miraculeuse :)

A+

Message édité par: Charly2, à: 05/01/2006 00:58
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir DidierL (s'il revient), Eric C, Charly2, fradouan,

Oui, fradouan, tu as raison, je n'avais pas prévu ce coup là, voici donc le correctif :

Il convient simplement de remplacer :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
        AvecFormule = Target.HasFormula
End Sub
Par :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
        AvecFormule = ActiveCell.HasFormula
End Sub
Et en passant, BRAVO Charly2, joli coup cette façon de faire avec une simple validation de données !

Cordialement,
 

fradouan

XLDnaute Junior
BONSOIR CHARLY, DIDIER, TOUT LE MONDE
DESOLE CHARLY JE VOULAIS PAS VOUS CORRIGE J'EN AVAIS TRES BESOIN, MERCI INFINIMENT, EN TESTANT AU TRAVAIL, JE ME SUIS DIT QUE VOUS POUVEZ M'AIDER A CORRIGER DESOLE ENCORE UNE FOIS ET MERCI
AMICALEMENT
RADOUAN
 

Discussions similaires

Statistiques des forums

Discussions
312 752
Messages
2 091 665
Membres
105 039
dernier inscrit
rouibi