Forcer la valeur sur une colonne protégéé

  • Initiateur de la discussion Initiateur de la discussion dss
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dss

XLDnaute Occasionnel
bonsoir le forum,

J'essaie en vain de résoudre le pb suivant et ce malgrè l'apport de plusieurs lignes de code que vous m'avez fournis et vous en remercie d'autant que j'ai du mal formuler ma demande.

En fait, si je saisis dans la colonne "G" , cela doit me renvoyer une valeur dans la colonne "F" de la manière suivante:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Integer
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Intersect(Range("H:I"), Target) Is Nothing Then Exit Sub
' Inscrit la date et heure de saisie si n'existe pas déjà
Lig = Target.Row
If Range("F" & Lig).Value = "" Then Range("F" & Lig).Value = Now()
End Sub

Le souci, c'est que ma colonne "F" étant protégée (et devant le rester) cela me renvoie une erreur sur la ligne du programme :

If Range("F" & Lig).Value = "" Then Range("F" & Lig).Value = Now()

1)Je voudrais que "Now" puisse être forcé malgrè la protection de la colonne ou plus exactement la protection à partir de la ligne 4 de la colonne F.

Je galère, je galère.... et ne trouve pas

Si quelqu'un a une idée, merci de m'en faire part

cordialement

dss
 
Re : Forcer la valeur sur une colonne protégéé

dss à dit:
bonsoir le forum,

J'essaie en vain de résoudre le pb suivant et ce malgrè l'apport de plusieurs lignes de code que vous m'avez fournis et vous en remercie d'autant que j'ai du mal formuler ma demande.

En fait, si je saisis dans la colonne "G" , cela doit me renvoyer une valeur dans la colonne "F" de la manière suivante:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Integer
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Intersect(Range("H:I"), Target) Is Nothing Then Exit Sub
' Inscrit la date et heure de saisie si n'existe pas déjà
Lig = Target.Row
If Range("F" & Lig).Value = "" Then Range("F" & Lig).Value = Now()
End Sub

Le souci, c'est que ma colonne "F" étant protégée (et devant le rester) cela me renvoie une erreur sur la ligne du programme :

If Range("F" & Lig).Value = "" Then Range("F" & Lig).Value = Now()

1)Je voudrais que "Now" puisse être forcé malgrè la protection de la colonne ou plus exactement la protection à partir de la ligne 4 de la colonne F.

Je galère, je galère.... et ne trouve pas

Si quelqu'un a une idée, merci de m'en faire part

cordialement

dss
Salut
Le plus simple : avant l'inscription, tu enlèves la protection et tu la remet en final
Quand j'ai une feuille protégée, je préfére déprotéger dne début de macro, et que ma dernière opération soit la remise en route de la protection
A+
 
Re : Forcer la valeur sur une colonne protégéé

dss à dit:
bonsoir Gorfael,

Faute d'être sûr d'avoir tout compris dans le détail, peux-tu me montrer l'exemple d'après ma macro

Merci d'avance,

cordialement

dss
Salut
remplacer
Code:
    ActiveSheet.Unprotect Password:="TOTO"
    If Range("F" & lig).Value = "" Then Range("F" & lig).Value = Now()
    ActiveSheet.Protect Password:="TOTO", DrawingObjects:=True, _
                               Contents:=True, Scenarios:=True
par
Code:
    ActiveSheet.Unprotect Password:="TOTO"
    If Range("F" & lig).Value = "" Then Range("F" & lig).Value = Now()
    ActiveSheet.Protect Password:="TOTO", DrawingObjects:=True, _
                               Contents:=True, Scenarios:=True
en admettant évidement que TOTO est le mot de passe
A+
 
Re : Forcer la valeur sur une colonne protégéé

Bonsoir

En utilisant cela:
UserInterFaceOnly

The UserInterFaceOnly is an optional argument of the Protect Method that we can set to True, the default is False. By setting this argument to True Excel will allow all Excel VBA macros to run on the Worksheet that protected with or without a password.

En français
Cette propriété a la valeur True si la protection Interface utilisateur seulement est activée. Pour activer la protection Interface utilisateur seulement, utilisez la méthode Protect en affectant la valeur True à l'argument UserInterfaceOnly. Type de données Boolean en lecture seule

exemple d'application
SOURCE:How to use a list in Excel that is dependent on another. Excel VBA Protect Method
Private Sub Workbook_Open()
Dim wsSheet As Worksheet
For Each wsSheet In Me.Worksheets
Select Case wsSheet.CodeName
Case "Sheet1"
strPassword = "Carrot"
Case "Sheet2"
strPassword = "Secret"
Case "Sheet3"
strPassword = "Password"
End Select
wsSheet.Protect Password:=strPassword, _
UserInterFaceOnly:=True
Next Wsheet
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
153
Réponses
4
Affichages
461
Réponses
2
Affichages
201
Réponses
4
Affichages
177
Retour