Oter protection feuille protégée que quand usf lancée...

kohta

XLDnaute Occasionnel
Bonjour,

je possède un doc xls contenant une page de données qui est renseignée à l'aide d'une usf contenant des textbox à renseigner.
Chaque textbox voit donc son contenu copié dans une cellule de la feuille en question à l'aide de la commande:
Code:
Sheets("Volumes").Range("C4") = TextBox1.Value

Cependant, la feuille (Volumes) est protégée à l'ouverture de mon document contre la modification à l'aide de la commande:
Code:
Private Sub Workbook_Open()
          Sheets("Volumes").Protect UserInterfaceOnly:=True

Mon souci est que du fait de cette protection, mon usf ne parviens plus à fontionner (lors de la validation de la saisie, la fenetre de déboguage m'indique que la feuille (Volumes) est protégée contre l'écriture).

J'ai essayé de procéder de la manière suivante:

Déverrouillage de la feuille au lancement de l'Usf
Code:
Sheets("Volumes").Protect UserInterfaceOnly:=False

Puis re-vérouillage avant la commande de fermeture de l'usf, mais cela ne fonctionne pas..., le dévérouillage au démarrage de fonctionnant pas...

Comment puis-je procéder?:confused::confused::confused:

Merci de votre soutient et bonne journée

Kohta
 

Pierrot93

XLDnaute Barbatruc
Re : Oter protection feuille protégée que quand usf lancée...

Bonjour Kohta, Jean-Marie

Comprends pas trop le problème, car justement l'argument "UserInterfaceOnly" positionné à "True" doit permettre l'exécution du code sans ôter la protection de la feuille au préalable, enfin chez moi cela fonctionne ainsi, sous Excel2003. Mets peut être ton fichier en pièce jointe, sans données confidentielles, pour que l'on puisse approfondir.

Bonne fin d'après midi.
@+
 

kohta

XLDnaute Occasionnel
Re : Oter protection feuille protégée que quand usf lancée...

ReBonjour à tous et merci de votre aide.

Je vais joindre le code, il ne contient rien de confidentiel.

Au démarage ma page est vérouillée contre les modifs utilisateur avec ceci:
Code:
Private Sub Workbook_Open()
    Sheets("Volumes").Protect UserInterfaceOnly:=True

Voici le code de mon usf, qui copie toutes les valeurs des textbox dans une colonne de la feuille protégée, puis la colonne de la feuille protégée en question est copiée dans la colonne précisée dans la listbox de l'usf.
(je joint le code de "bouton valid click"
Code:
'Ecrit dans cellules la valeur des Textbox
         Sheets("Volumes").Range("C4") = TextBox1.Value
         Sheets("Volumes").Range("C5") = TextBox2.Value
         Sheets("Volumes").Range("C6") = TextBox3.Value
         Sheets("Volumes").Range("C7") = TextBox4.Value
         Sheets("Volumes").Range("C8") = TextBox5.Value
         Sheets("Volumes").Range("C10") = TextBox6.Value
         Sheets("Volumes").Range("C11") = TextBox7.Value
         Sheets("Volumes").Range("C12") = TextBox8.Value
         Sheets("Volumes").Range("C13") = TextBox9.Value
         Sheets("Volumes").Range("C14") = TextBox10.Value
         Sheets("Volumes").Range("C15") = TextBox11.Value
         Sheets("Volumes").Range("C16") = TextBox12.Value
         Sheets("Volumes").Range("C19") = TextBox13.Value
         Sheets("Volumes").Range("C20") = TextBox14.Value
         Sheets("Volumes").Range("C21") = TextBox15.Value
         Sheets("Volumes").Range("C22") = TextBox16.Value
         Sheets("Volumes").Range("C23") = TextBox17.Value
         Sheets("Volumes").Range("C24") = TextBox19.Value
         Sheets("Volumes").Range("C25") = TextBox20.Value
         Sheets("Volumes").Range("C28") = TextBox21.Value
         Sheets("Volumes").Range("C29") = TextBox22.Value
         Sheets("Volumes").Range("C30") = TextBox23.Value
         Sheets("Volumes").Range("C31") = TextBox24.Value
         Sheets("Volumes").Range("C32") = TextBox25.Value
         Sheets("Volumes").Range("C33") = TextBox26.Value
         Sheets("Volumes").Range("C9") = TextBox32.Value
         Sheets("calcul heures théor.").Range("E13") = TextBox27.Value
         Sheets("calcul heures théor.").Range("E18") = TextBox28.Value
         Sheets("calcul heures théor.").Range("E14") = TextBox29.Value
         Sheets("calcul heures théor.").Range("E19") = TextBox30.Value
         Sheets("calcul heures théor.").Range("E16") = TextBox31.Value
    'Déplacement d'une page à l'autre
         Sheets("calcul heures théor.").Range("E13") = TextBox27.Value
         Sheets("calcul heures théor.").Range("E18") = TextBox28.Value
         Sheets("calcul heures théor.").Range("E14") = TextBox29.Value
         Sheets("calcul heures théor.").Range("E19") = TextBox30.Value
         Sheets("calcul heures théor.").Range("E16") = TextBox31.Value
         Sheets("calcul heures théor.").Range("E17") = TextBox33.Value
    'Copie la colonne semaine en cours vers semaine destination
         Range(Cells(4, ComboBox1.ListIndex + 168), Cells(49, ComboBox1         .ListIndex + 168)).Value = Sheets("Volumes").Range("C4:C49").Value
    'Ferme l'USF
         Unload Me
End If
End Sub

voila...:eek:

j'aurais besoin de dévérouiller la page quand mon usf est lancée (même totalement, s'il le faut, vu que la page est innaccessible quand le usf est lancée), et la revérouiller lors de la validation de l'usf.

Est-ce un peu plus clair??? :confused::eek:
 

kohta

XLDnaute Occasionnel
Re : Oter protection feuille protégée que quand usf lancée...

J'ajoute que le debogueur m'arrete à la ligne suivante::confused::confused:

Code:
 Range(Cells(4, ComboBox1.ListIndex + 168), Cells(49, ComboBox1.ListIndex + 168)).Value = Sheets("Volumes").Range("C4:C49").Value

Cette ligne me permet de copier une colonne (C4:C49) dans la colonne précisée par la valeur choisie dans mon usf, grâce à la listbox.

Visiblement c'est ici que ca coince...:mad:
 

Pierrot93

XLDnaute Barbatruc
Re : Oter protection feuille protégée que quand usf lancée...

Bonjour Kohta, Jean-Marie

A priori ce n'est pas un pronlème de protection, d'ailleurs à ce niveau, des lignes de code ont déjà renvoyées des valeur sur cette feuille.

Il faudrait voir le numéro de "listindex" renvoyé par la combo, et préciser peut être le nom de la feuille, si celle ci n'est pas active lors de l'exécution du code.

bonne fin d'après midi
@+
 

kohta

XLDnaute Occasionnel
Re : Oter protection feuille protégée que quand usf lancée...

Bonjour à tous,

ok merci Jean Pierre pour ta réponse.

Le fait est que la page "volumes" n'est pas active lors du fonctionnement de l'usf, étant donné que le bouton de lancement de l'usf se trouve sur la page "accueil".

Tu penses donc que je devrais préciser la feuille concernée par le combobox.listindex?

Cela devrait ressembler à quelque chose de ce type?

Code:
Range(Cells(4, [B]Sheets("Volumes").[/B]ComboBox1.ListIndex + 168), Cells(49, [B]Sheets("Volumes").[/B]ComboBox1.ListIndex + 168)).Value = Sheets("Volumes").Range("C4:C49").Value

Je ne suis pas sur du tout du bon placement de l'argument Sheets("Volumes")...

Et sinon, serait-il possible de simplifier les choses en affichant la feuille "volumes" au lancement de mon usf? Comme cela la feuille serait active...:confused::confused::confused:

Merci de votre soutient et bonne journée:)
 

Pierrot93

XLDnaute Barbatruc
Re : Oter protection feuille protégée que quand usf lancée...

Bonjour Kohta

Essaye peut être comme ci dessous, mais il eut été préférable d'avoir le fichier,sans donnée confidentielles, avec les objets et le code complet :
Code:
With Sheets("Volumes")
 .Range(.Cells(4, ComboBox1.ListIndex + 168), .Cells(49, ComboBox1.ListIndex + 168)).Value = .Range("C4:C49").Value
End With

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi