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

probleme probleme2

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. Et le fait qu'un code fonctionne ne sera jamais suffisant à me faire dire qu'il s'agit d'un bon code !

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 ! Je ne l'ai pas fait car cela m'aurait conduit à un examen critique ligne par ligne (présence de Select, ActiveSheet, Activate... qui ne sont jamais l'indice d'un code optimal) et j'ai donc préféré m'abstenir.

Cordialement.

Merci pour ton complément d'info.

Rechercher des sujets similaires à "macro feuille protege"