XL 2010 mise à jour tdc par vba sur feuille protégée

  • Initiateur de la discussion Initiateur de la discussion Anne13
  • 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 !

Anne13

XLDnaute Nouveau
Bonjour,
je crée mes premiers formulaires en vba afin de compléter un tableau de stock.
J'ai protégé mes feuilles avec user interface only afin de pouvoir exécuter mes macros sans déprotéger à chaque fois, seulement la mise à jour de mon tableau croisé dynamique ne se fait pas . Je n'ai pas de message d'erreur mais les nouvelles entrée ne sont pas prises en compte. Je ne trouve pas quelle propriété rajouter.Le code fonctionne si je déprotège la feuille contenant le tdc avant la mise à jour.
Merci de votre aide.

voici comment je protège :

Private Sub Workbook_Open()

Dim mdp As String
mdp = "toto"

Worksheets("stock").protect mdp, userinterfaceonly:=True, DrawingObjects:=False, Contents:=True, Scenarios:= _
True, AllowFiltering:=True, AllowUsingPivotTables:=True
Worksheets("bilan").protect mdp, userinterfaceonly:=True, DrawingObjects:=False, Contents:=True, Scenarios:= _
True, AllowFiltering:=True, AllowUsingPivotTables:=True

et comment je mets à jour :
ActiveWorkbook.RefreshAll
 

Pièces jointes

Bonjour,

comme ça , je vois une erreur dans la déclaration de noligne 🙂
niveau des mots de passe, les ai retiré pour tester ceci 🙂
(ps: tes zone ne sont pas dans un ordre "normal" , on passe d'une à l'autre pas très logiquement)

Code:
Private Sub CommandButton1_Click()
Dim noLigne As Long ' numérique !
Dim Ws1 As Worksheet
'copie les données dans le tableau
With Sheets("stock")
   noLigne = .Range("a65000").End(xlUp).Row + 1
   .Cells(noLigne, 1) = CDate(dateBox)
   .Cells(noLigne, 1).NumberFormat = "m/d/yyyy"
   .Cells(noLigne, 2) = TextBox1.Value
   .Cells(noLigne, 3) = UCase(TextBox3.Value)  'Ucase met en majuscule
   .Cells(noLigne, 4) = UCase(LotBox.Value)
   .Cells(noLigne, 5) = CDbl(masseBox.Value)
End With
Worksheets("bilan").Select
ActiveWorkbook.RefreshAll
Unload Me
End Sub

P.
 
Merci de ton aide, pour l'ordre des box,c'est que j'ai modifié rapidement la forme pour l'envoyer. Mon problème venait justement des mots de passes, le refreshlall n'actualisant pas le tdc. J'ai contourné le problème en mettant dans la feuille du tdc une mise à jour à l'activation, mais sans comprendre pourquoi je ne peux pas le faire dans mon module.
Bonne journée
 
- 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
546
Retour