Voilà, en pièce jointe.si tu peux me le mettre dans le code et me refiler le fichier
bonsoir TooFatBoyBonjour,
As-tu essayé de ne protéger la feuille que pour l'interface utilisateur ?
C'est-à-dire protéger la feuille avec "UserIntefaceOnly".Interface utilisateur c'est a dire ?
Sans la protection la macro fonctionne parfaitement
Mais euh !!!Oh la vache ! Je viens d'ouvrir ton fichier... tu bosses avec des déficients visuels ou bien ???
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.
Bon, je suppose que c'est ton premier fichier Excel.Mais euh !!!
Ca se colle dans l'instruction qui protège la feuille.et je colle ça ou UserinterfaceOnly !?
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
oh la vache 48 !!! sans doute une erreur ...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.
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.
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 !?
Oui, aux guillemets près, c'est bon.
Mais pourquoi ne laisses-tu pas les paramètres publics ?
For i = 0 To UBound(Tablo = Array ("E10", "K11", "B10", "K12", "F10", "M12", "J10", "O12", "N10", "Q12", "R10", "S12") Step 2Je 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.
Je pense qu'il faut que tu vois avec la personne qui t'a donné ce code.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 )