Feuille protégée et VBA

Bonjour

J'ai une feuille de données avec des cellules qui contiennent des formules. Pour éviter de les effacer par erreur , j'ai verrouillé ces cellules.

Les données de la feuille peuvent être modifiées avec un user forme et des codes VBA. Mais lorsque la feuille est protégée mes codes ne fonctionne t plus.

D'ou ma question. Existe t il une méthode afin de pouvoir protéger les cellules tout en permettant le fonctionnement des codes VBA.

Merci

No

Bpnjour,

à tester,

ActiveSheet.Unprotect "LemotDePasse"
'...le code
ActiveSheet.Protect "LemotDePasse"

Bonsoir

Merci pour les réponses

Deux petites questions.

Comme je commence un code avec

Sheets(feuil1).select ....puis je ajouter directement Unprotect ? De quelle manière?

Ou puis je placer le code :Unprotect juste après : Private Sur Bon Ajouter_click

merci

Cdt

Bonjour,

comme je n'ai pas vu votre macro, je ne peut pas optimiser cette exemple,

Private Sur Bon Ajouter_click
Sheets(feuil1).select
ActiveSheet.Unprotect "LemotDePasse"

'..ici le reste de votre code

Sheets(feuil1).select
ActiveSheet.Protect "LemotDePasse"
End Sub

Bonjour

Je joins un fichier essai. Cela sera peut être plus facile tourner la bonne méthode.

Merci

Cdt

no

Bonjour (..)

Voici une correction pour le bouton "ajouter" à transposer sur les autres boutons (si besoin)

'Ajouter

Private Sub CommandButton5_Click()
Dim ligne As Integer

    If ComboBox1.Value = "" Then
        MsgBox "Veuillez renseigner le champs 'Nom' "
    Else
        If MsgBox("confirmez l'ajout de donn_es ?", vbYesNo, "confirmation") = vbYes Then
            Sheets("Feuil1").Activate
            ActiveSheet.Protect userinterfaceonly:=True, Password:="nf"
            ' ActiveShett.Unprotect "nf"    <= ActiveSheet !!!
            Range("A2").Select
            Selection.End(xlDown).Select
            Selection.Offset(1, 0).Select
            ActiveCell = ComboBox1.Value
            ActiveCell.Offset(0, 1).Value = ComboBox2
            ActiveCell.Offset(0, 2).Value = ComboBox3
            Sheets("Feuil1").Select
            'ActiveShett.Protect "nf"   <= ActiveSheet !!!

            ' Sheets("Feuil2").Activate
            ActiveSheet.Protect userinterfaceonly:=True, Password:="nf"
            Range("A2").Select
            Selection.End(xlDown).Select
            Selection.Offset(1, 0).Select
            ActiveCell = ComboBox1.Value
            ActiveCell.Offset(0, 1).Value = ComboBox2
            ActiveCell.Offset(0, 2).Value = ComboBox3
        End If
    End If
End Sub

La fonction "Protect" associée à "UserInterfaceOnly := True" qui dit bien son nom ne protège que les actions de l'interface utilisateur pas les actions effectuées par VBA

Selon les versions Excel il se peut qu'aucune majuscule n'apparaisse attention donc à l'orthographe exacte de ce paramètre :

User Interface Only - sans les espaces évidemment !

Bonjour,

à tester,

Private Sub CommandButton5_Click()
Dim ligne As Integer
If ComboBox1.Value = "" Then
  MsgBox "Veuillez renseigner le champs 'Nom' "
Else
  If MsgBox("confirmez l'ajout de données ?", vbYesNo, "confirmation") = vbYes Then

        With Sheets("Feuil1")
         DerniereLigne1 = .Cells(Rows.Count, 1).End(xlUp).Row + 1
         .Unprotect "nf"
         .Cells(DerniereLigne1, 1) = ComboBox1
         .Cells(DerniereLigne1, 2) = ComboBox2
         .Cells(DerniereLigne1, 3) = ComboBox3
         .Protect "nf"
        End With

        With Sheets("Feuil2")
         DerniereLigne2 = .Cells(Rows.Count, 1).End(xlUp).Row + 1
         .Unprotect "nf"
         .Cells(DerniereLigne2, 1) = ComboBox1
         .Cells(DerniereLigne2, 2) = ComboBox2
         .Cells(DerniereLigne2, 3) = ComboBox3
         .Protect "nf"
        End With

  End If
End If
End Sub

Bonjour

Tout d'abord merci pour les réponses

La dernière à l'air de fonctionner sur mon fichier essai, seulement dans mon fichier projet c'est un peu plus compliqué.

Raison pour laquelle je souhaiterais conserver mes VBA d'origine qui fonctionnent bien.

J'aimerais pouvoir seulement y ajouter le déblocage de la protection puis la remettre. Ca serait plus simple pour moi car il faut aussi enlever la protection pour l'étape supprimer et modifier la ligne.

Si une autre idée est possible je suis preneur

En tous les cas merci du temps passé

Ci joint le fichier essai qui fonctionne sans la protec mais pas avec ....

Cdt

No

Bonjour,

il y a 2 lignes importante,

à chaque fois qu'une feuille protégée doit être modifiée

placer cette ligne avant le(s) code qui modifiera les cellules d'une feuille protégée

Sheets("NomDeLaFeuille").Unprotect "LemotDePasse"

une fois la modification des cellules, on remet le mot de passe

Sheets("NomDeLaFeuille").Protect "LemotDePasse"

Bonjour

Merci pour cette nouvelle réponse

Je l'ai mis en place dans le fichier ci joint,mais ça ne fonctionne pas....

J'ai des message d'erreur sur

Sheets("Feuille1").Unprotect "nf " ???

Cdt

No

Bonjour,

il n'y a pas d'onglet portant le nom "Feuille1" dans votre fichier

Bonjour

Je ne comprends pas très bien.

"il n'y a pas d'onglet portant le nom "Feuille1" dans votre fichier"

Dans mon classeur quand je l'ouvre, j'ai bien Feuil1 et Feuil 2 qui sont toutes les deux cadenassées car protégées.

vous avez dit:

J'ai des message d'erreur sur

Sheets("Feuille1").Unprotect "nf " ???

et là vous dite:

Dans mon classeur quand je l'ouvre, j'ai bien Feuil1 et Feuil 2

vous ne voyez pas la différence entre Feuille1 et Feuil1 ?

C'est simplement une erreur d'écriture....

Je joins à chaque fois le fichier pour démontrer que ça ne fonctionne pas , et là il n'y pas de confusion avec feuil 1 et feuille 1

Fichier à nouveau joint

C'est simplement une autre erreur d'écriture....

vous avez écrit " nf " au lieu de "nf"

Re Bonsoir

Super ...

Apparemment l'erreur venait donc de nf.

J'ai fait des essais dans mon fichier source et ça fonctionne.

Merci beaucoup pour l'aide apporté et le temps consacré..

Cdt

No

A présent je cherche comment, l'emplacement et quel code je dois mettre pour avoir un message pendant que la macro s'exécute

" modification en cours "

Merci pour ce retour, au plaisir!

si le problème est résolu, s.v.p. pour clôturer le fil, cliquer sur le bouton V vert du post à coté du bouton EDITER, merci!

Rechercher des sujets similaires à "feuille protegee vba"