Macro et feuille protegé
Bonjour,
Je dois développer un logiciel pour cela j'ai eu recours à plusieurs macro. Mais je rencontre un problème mes macros insère une ligne sur une feuille protégé j'avais réussi pour toutes mes feuilles à ce que mes macros fonctionnent mais je rencontre un problème voir fichier joint. on m'a dit d'ajouter ceci au début de ma macro
Rows ( ; ) Select
Selection.Locked=False
Selection.FormulaHidden=False
et à la fin de ma macro
Rows(;) Select
Selection.Locked=True
Selection.FormulaHidden=False
Mais encore un message d'erreur voir problème 2
Pour voir le fichier c'est gestion des étalons du 6oct mot de passe effluents
Bonjour melanie27,
Je te propose ce code VBA :
Option Explicit
Sub Macro31()
'Insertion d'une ligne
Dim col As Byte
Worksheets("ci annions").Select
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Rows("9:13").Select: Selection.Copy
Selection.Insert shift:=xlDown
With Worksheets("Feuil1")
[C9] = Worksheets("Etalons chlorure 1000ppm").[C9]: .[C9] = ""
[C10] = Worksheets("Etalon Nitrite 1000 ppm").[C9]: .[C10] = ""
[C11] = Worksheets("Etalon Nitrate").[C9]: .[C11] = ""
[C12] = Worksheets("Etalon Phosphate").[C9]: .[C12] = ""
[C13] = Worksheets("Etalon Sulfate").[C9]: .[C13] = ""
[B9] = .[B9]: .[B9] = ""
For col = 4 To 7
Cells(9, col) = .Cells(9, col): .Cells(9, col) = ""
Next col
ActiveSheet.Protect
.Activate
End With
End Sub
Vérifie bien le nom de tes feuilles (caractères et espaces) ; par exemple :
est-ce "Etalons chlorure 1000ppm" ou "Etalon chlorure 1000 ppm" ?
Merci de me dire si ça te convient.
Cordialement
Non désolé ça ne marche pas
Dans ton message initial, tu as écrit : « ... mais je rencontre un problème voir fichier joint. »
et plus loin : « Pour voir le fichier c'est gestion des étalons du 6oct mot de passe effluents »
mais je n'ai vu aucun fichier joint ; il y a bien un cadre dont le titre est « FICHIERS JOINTS »,
mais ce cadre contient uniquement 2 images .png (pour chacune, c'est un code VBA).
J'ai cherché un sujet dont le titre est « Gestion des étalons » mais je n'en n'ai pas trouvé
(ni daté du 6 octobre, ni d'une autre date).
Comme il n'y avait pas de fichier, j'ai écrit mon code VBA à partir de ton image "problème.png"
sans pouvoir le tester car je n'ai pas ton vrai classeur (avec noms des feuilles exacts et données) ;
écrire un code VBA ainsi (on dit « à l'arrache ») n'est pas facile ! c'est pas toujours évident que
ça marche du 1er coup, et j'espérais qu'en cas de problème, tu aurais su adapter le code VBA.
Au lieu de 2 images .png, peux-tu joindre ton fichier Excel sans données confidentielles ?
Si le mot de passe a changé entre-temps, n'oublie pas de l'indiquer.
Précise aussi ce qui ne marche pas : quel est le problème ? erreur lors de l'exécution du code ?
erreur lors de la compilation ? quelle est la ligne VBA en cause ? s'il y a un message d'erreur,
lequel est-ce exactement ?
À te lire pour la suite.
Merci beaucoup pour ton aide finalement j'ai réussi en mélangeant ma vba à la tienne et ça fonctionne très bien
Bonjour,
Faire des mélanges sans savoir où l'on va n'est pas la bonne solution !
Si la feuille est protégée, il te suffit de la déprotéger avant intervention et de la protéger à nouveau ensuite, en indiquant le mot de passe comme argument de la méthode (.Unprotect ou .Protect).
Modifier le verrouillage des cellules, indiqué dans ton premier post, n'était évidemment pas un conseil adéquat.
Cordialement.
Bonjour MFerrand,
La solution que tu indiques est bien ce que j'ai fait dans le code VBA qui est inclus
dans mon post du 6 octobre à 21:49 ; l'essentiel est que le demandeur melanie27
aie pu résoudre son problème (même si elle n'a pas cliqué sur le bouton ☑).
J'aurais dû mettre :
Cordialement
Salut Dhany !
La réponse de Mélanie à ton post du 6 à 21h49 était :
Non désolé ça ne marche pas
le même jour à 22h10.
Suite à ta réponse, elle a indiqué le 8 à 18h02 :
Merci beaucoup pour ton aide finalement j'ai réussi en mélangeant ma vba à la tienne et ça fonctionne très bien
C'est au vu de la partie surlignée que je suis intervenu à 18h12 :
Faire des mélanges sans savoir où l'on va n'est pas la bonne solution !
En effet, vu le code initialement cité par ses soins, je doute fort que le mélager avec des éléments de ton code produise un code de la qualité minimale que l'on puisse souhaiter.
J'ai poursuivi, afin de clarifier mon propos, en précisant la modification, nécessaire et suffisante, à apporter...
Je n'ai aucunement exprimé que ton code n'apportait pas cette modification !
Mais tu ne faisais pas état de la possibilité que la protection soit assortie d'un mot de passe et de la nécessité dans un tel cas d'indiquer le mot de passe dans le code, ce qui pouvait être à la source de la première réaction de résultat négatif...
J'aurais pu citer ton code pour le préciser clairement !
Cordialement.
Merci pour ton complément d'info.