Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 vba impossible feuille protégée

Quicksland

XLDnaute Occasionnel
Bonjour le forum

Sur mon fichier il est impossible de faire la mise a jour a cause de la protection

Merci pour votre aide

ps si besoin du mot de passe " UPC-LM22"
 

Pièces jointes

  • 1 ASTUCE SIRENE 1.xlsm
    34.5 KB · Affichages: 26

TooFatBoy

XLDnaute Barbatruc
Oh la vache ! Je viens d'ouvrir ton fichier... tu bosses avec des déficients visuels ou bien ???



Interface utilisateur c'est a dire ?
Sans la protection la macro fonctionne parfaitement
C'est-à-dire protéger la feuille avec "UserIntefaceOnly".

Comme ça la feuille est protégée pour les utilisateurs mais pas pour VBA. Ainsi plus de problème de macro qui n'arrive pas à travailler à cause d'une protection de feuille.


Ceci dit, déjà je ne vois aucune instruction Unprotect, donc si la feuille est protégée, c'est sûr que tu ne vas pas pouvoir la modifier.
 
Dernière édition:

Quicksland

XLDnaute Occasionnel
Mais euh !!!
et je colle ça ou UserinterfaceOnly !?
si tu peux me le mettre dans le code et me refiler le fichier
Merci
 

TooFatBoy

XLDnaute Barbatruc
Bon, je suppose que c'est ton premier fichier Excel.
Mais quand même, ça ne te choque pas d'écrire en taille 48 ???
Et du coup tes listes déroulantes sont minuscules et donc illisibles.
Mais bon, c'est vrai que tu n'es pas venu ici pour ça. Et si ça te convient, alors c'est parfait. Pas de souci.



et je colle ça ou UserinterfaceOnly !?
Ca se colle dans l'instruction qui protège la feuille.
Donc peut se mettre par exemple à l'ouverture du fichier, ou dans la macro d'activation de la feuille.
 

TooFatBoy

XLDnaute Barbatruc
Tu peux, soit déprotéger la feuille, écrire dedans, et reprotéger la feuille, doit protéger la feuille uniquement pour les utilisateurs mais pas pour VBA.
La deuxième solution peut se faire ainsi :

Code:
    With Workbooks(CeFichier).Sheets(NomOnglet)                 ' Avec le fichier à écrire
        .Protect userinterfaceonly:=True, Contents:=True, Password:="UPC-LM22"
        For i = 0 To UBound(Tablo) Step 2                       ' Mise à jour des données
            .Range(Tablo(i)) = Workbooks(NomFichier).Sheets(OngletLu).Range(Tablo(i + 1))    ' Ecriture de la donnée
        Next i
    End With
 

Quicksland

XLDnaute Occasionnel
oh la vache 48 !!! sans doute une erreur ...
 

Quicksland

XLDnaute Occasionnel
VB:
With Workbooks(1 ASTUCE SIRENE 1).Sheets(PRINTEMPS 1)                 ' Avec le fichier à écrire
        .Protect userinterfaceonly:=True, Contents:=True, Password:="UPC-LM22"
        For i = 0 To UBound(Tablo) Step 2                       ' Mise à jour des données
            .Range(Tablo(i)) = Workbooks(MISE A JOUR PIC NIC).Sheets(MISE A JOUR PRINTEMPS).Range(Tablo(i + 1))    ' Ecriture de la donnée
        Next i
    End With[
/CODE]

C'est bon comme ça !?
 

Quicksland

XLDnaute Occasionnel
Re
je n'y connais pas grand chose !
Ce code ma été donner sur le forum ( un code " mise a jour " universelle qui me sert sur plusieurs fichier que j'adapte en fonction des cellules a copier et a lire )

J'ai cette ligne ci-dessous qui passe en jaune

For i = 0 To UBound(Tablo) Step 2 ' Mise à jour des données
 

TooFatBoy

XLDnaute Barbatruc
Je suppose que la variable "Tablo" est vide, ce qui provoque une erreur.

Cette variable "Tablo" est remplie dans la macro Mise_a_jour_onglets :
Tablo = Array("E10", "K11", "B10", "K12", "F10", "M12", "J10", "O12", "N10", "Q12", "R10", "S12")

E10 est la cellule du fichier que tu as posté dans laquelle tu vas écrire le contenu de la cellule K11 du fichier ouvert en lecture.
De même pour les paires B10 et K12, F10 et M12, etc.
 
Dernière édition:

Quicksland

XLDnaute Occasionnel
For i = 0 To UBound(Tablo = Array ("E10", "K11", "B10", "K12", "F10", "M12", "J10", "O12", "N10", "Q12", "R10", "S12") Step 2

Comme ceci la ligne passe en rouge ...
je suis perdu
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…