Macro et mot de passe

Résolu/Fermé
eric2027 - Modifié par eric2027 le 21/01/2015 à 19:17
 eric2027 - 23 janv. 2015 à 20:15
Bonjour, le Forum,

j'ai un gros problème, j'ai un fichier ou j'ai mis des formules de calcul avec un mot de passe
( erreur d'exécution 1004), ainsi q'une macro, quand j'ouvre l'userform et je clique sur une zone de cette dernière, ma macro se bloque.

Aussi ma question, est ce qu'une macro et des formules avec un mot de passe ne vont pas ensembles ?

Par avance, merci pour me renseigner

Cordialement

Éric2027



12 réponses

via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
21 janv. 2015 à 20:53
Bonsoir

C'est parfaitement compatible mais qu'as tu protégé ? une feuille ou le classeur ?
Si ta macro intervient sur la feuille (entrée, modification de données) ou sur sa structure il faut en début de macro déprotéger la feuille ou le classeur et reprotéger avant la sortie

Impossible d'en dire plus sans voir un exemple de ton fichier et de sa macro

Cdlmnt
0
bonsoir via55,

Je t'envois mon fichier sur cijoint

http://cjoint.com/?EAwtOf0OeqP

Par avance, merci, parce quee j'essaie plein de truc et je me perd et puis je n'arrive pas a comprendre

Si ta macro intervient sur la feuille (entrée, modification de données), je ne trouve pas entrée,
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
22 janv. 2015 à 20:42
Bonsoir eric

Quand je disais entrée je parlais d'entrée de données

Ta macro fonctionne sur les feuilles de ton classeur non protégées et bloque bien sûr sur la feuille protégée, comme je te le disais dans mon précédent message il faut déprotéger la feuille en début de macro et la reprotéger à la fin

Private Sub GrLabel_Click()
ActiveSheet.Unprotect ("tonmotdepasse")
  Selection.Interior.Color = GrLabel.BackColor
  Selection.Font.Color = GrLabel.ForeColor
  Selection.Value = GrLabel.Caption
ActiveSheet.Protect ("tonmotdepasse")
End Sub


En remplaçant bien sur tonmotdepasse par ton vrai mot de passe !

Cdlmnt
0
via55

un message qui me bug

WithEvents GrLabel As Msforms.Label

alors là, pour moi c'est le néant
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J'ai beau essayer divers manipulations, mais rien ni fait, tout me bug
maintenant c'est "Userform.show" en jaune qui me fait bugger
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
22 janv. 2015 à 22:34
Re

As tu modifié la macro comme je t'ai indiqué ?

Je ne sais pas ce que tu as fait donc pas moyen de savoir ce qui cloche

Renvoie moi le fichier avec tes modifications et en indiquant surtout le mot de passe utilisé (tu peux en changer avant de m'envoyer le fichier et tu remettras le tien après)

0
ok, je t'envois mon fichier

mdp open

http://cjoint.com/?EAwxlKv9a2F

j'ai du m'emmêler les pieds mais je ne comprend plus rien certainement la fatigue

encore mille merci de m'aider et de te prendre ton temps
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
Modifié par via55 le 22/01/2015 à 23:28
Je ne sais pas ce que tu as fait sur le second fichier et tu utilises un classmodul avec lequel je ne suis pas familier

J'ai repris ton premier fichier qui fonctionnait et remis dans la macro du Classmodul la deprotection et la reprotection de la feuille avec le mot de passe open; j'ai également ajouté une 1ere ligne pour sortir de la macro sans rien faire si on clique au-delà de la colonne 5 , sinon on risquait d'effacer les formules

https://www.cjoint.com/?0AwxH3oXBlz

Je ne comprends pas tout ce que tu veux faire avec ces manipulations mais je pense que tu te compliques la vie et qu'il y a plus simple pour arriver au même résultat !

Cdlmnt



"L'imagination est plus importante que le savoir." A. Einstein
0
via,

ça marche super bien, je suis encore éblouie par ton savoir sur mon problème, j'ai tellement galéré que j'aurai du demander de l'aide sur CCM, moi qui suis un habitué récurant de ce site parce que vous êtes toujours à l'écoute des gens comme moi qui n'ont pas votre savoir, et vous , vous investissez avec autant de foi et de gentillesse que grâce à vous, à toi , je me sors de cette galère.

Une dernière question ; j'ai également ajouté une 1ere ligne pour sortir de la macro sans rien faire si on clique au-delà de la colonne 5 , sinon on risquait d'effacer les formules ,

là, je suis à l'ouest, je ne comprend pas ? peux-tu m'expliquer stp
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
23 janv. 2015 à 00:09
Dans Classlabel j'ai rajouté en début de macro cette ligne :
If ActiveCell.Column > 5 Then Exit Sub

En effet ta macro a pour effet de copier la couleur et le texte choisi dans ta Listbox et de l'appliquer à la cellule active de la feuille (celle dans laquelle on clique), comme pour que cette action puisse avoir lieu la feuille est momentanément déprotégée par la ligne suivante de la macro ActiveSheet.Unprotect ("open"), si on clique par mégarde dans une des 2 colonnes 6 ou 7 (F ou G) la macro fera son travail et du coup effacerait la formule (ce que tu a voulu éviter en protégeant la feuille).
D'où la ligne rajoutée, tant qu'on clique dans une colonne inférieure à la 5eme la macro s'effectue sinon il y a sortie (Exit Sub) avant d'effectuer les actions des lignes suivantes

Voilà

Bonne suite

0
Bonjour via, j'ai refais la macro point par point et c'est génial

Encore merci à toi et au Forum.

Peux-tu mettre en résolu s'il te plait parce que je n'ai pas accès à résolu.

Éric 2027
0
Bonjout
pour le plaisir
tu a 41 Label

Private Sub UserForm_Activate()
T = 6
   For I = 1 To 41
      Me("Label" & I).BackColor = Sheets("couleurs").Cells(I, 1).Interior.Color
      Me("Label" & I).ForeColor = Sheets("couleurs").Cells(I, 1).Font.Color
      Me("Label" & I).Caption = Sheets("couleurs").Cells(I, 1)
      Me("Label" & I).ControlTipText = Sheets("couleurs").Cells(I, 2)
      Me("Label" & I).Top = T
      Me("Label" & I).Height = 12
      Me("Label" & I).Left = 6
      Me("Label" & I).Width = 72
      T = T + 12
         Set Lbl(I).GrLabel = Me("Label" & I)
   Next I
   With UserForm1 'Enlever 2 si userform 1
      .Left = 1150 'modifie les chiffre pour faire déplacer la userform
      .Top = 150
   End With
End Sub

A+
Maurice
0
Bonjour,

j'ai essayé mais cela ne m'apporte rien sinon, bogage
@+
0