Déverrouiller une ligne entière
Résolu/Fermé
A voir également:
- Déverrouiller une ligne entière
- Comment déverrouiller un téléphone - Guide
- Hors ligne instagram - Guide
- Aller à la ligne excel - Guide
- Vente en ligne particulier - Guide
- Capture d'écran page entière - Guide
9 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
24 juil. 2017 à 15:21
24 juil. 2017 à 15:21
Bonjour Gontchiflor, bonjour le forum,
Peut-être comme ça :
Peut-être comme ça :
Selection.EntireRow.Cells.Locked = False
Bonjour ThauTheme,
Quand j'utilise ton code, ça marche pour la première cellule de la ligne mais pas pour toute la ligne. Je suis sûr du fait que je sélectionne toute la ligne car lorsque je remplace:
Cells.Locked = False par: Copy
j'ai réellement toute la ligne sélectionnée.
Quand j'utilise ton code, ça marche pour la première cellule de la ligne mais pas pour toute la ligne. Je suis sûr du fait que je sélectionne toute la ligne car lorsque je remplace:
Cells.Locked = False par: Copy
j'ai réellement toute la ligne sélectionnée.
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
24 juil. 2017 à 16:05
24 juil. 2017 à 16:05
Re,
Aors essaie en point 3 :
Et supprime le point 4...
Aors essaie en point 3 :
Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0).EntireRow.Cells.Locked = False
Et supprime le point 4...
Avec ce que tu viens de me donner j'ai le même résultat qu'avant. Je peux modifier la première cellule de la ligne mais pas la ligne entière.
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
24 juil. 2017 à 16:54
24 juil. 2017 à 16:54
Re,
Ton code est tellement mal ficelé !... La règle numéro 1 est d'éviter les Select inutiles qui ne font que ralentir l'exécution du code. Essaie comme ça :
Ton code est tellement mal ficelé !... La règle numéro 1 est d'éviter les Select inutiles qui ne font que ralentir l'exécution du code. Essaie comme ça :
Sub Macro1() Dim DL As Long 'déclare la variable DL (Dernière Ligne) Application.ScreenUpdating = False 'masque les rafraîchissements d'écran With ActiveSheet 'prend en compte l'onglet actif .Unprotect Password:="0000" 'déprotège l'onglet .Cells.Locked = True 'protèges toutes les cellules de l'onglet DL = .Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A .Rows(DL).Copy 'copie la ligne DL .Cells(DL, "A").Insert xlShiftDown 'insère la ligne copiée dans la cellule ligne DL + 1 colonne A .Rows(DL + 1).ClearContents 'efface le contenu de la ligne DL +1 .Rows(DL + 1).Cells.Locked = False 'déverrouille la ligne DL +1 .Protect Password:="0000" 'protège l'onglet End With 'fin de la prise en comtpe de l'onglet actif 'Application.ScreenUpdating = True est inutile puisque ça se fait automatiquement End Sub
Gontchiflor
>
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
25 juil. 2017 à 09:41
25 juil. 2017 à 09:41
Bonjour,
Cette fois ci, je peux modifier la première cellule de la dernière ligne utilisée.
Cette fois ci, je peux modifier la première cellule de la dernière ligne utilisée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
25 juil. 2017 à 10:05
25 juil. 2017 à 10:05
Re,
Chez moi ça fonctionne parfaitement en voici la preuve. Dans le fichier, essaie d'éditer n'importe quelle cellule. L'accès est refusé...
Lance la macro. Tu peux désormais éditer la dernière ligne seulement...
Relance la macro... Idem, seule la dernière ligne est accessible...
Mais c'est quand même un comble que ce soit moi qui soit obligé de fournir un fichier !...
https://www.cjoint.com/c/GGzieUbKx4c
Chez moi ça fonctionne parfaitement en voici la preuve. Dans le fichier, essaie d'éditer n'importe quelle cellule. L'accès est refusé...
Lance la macro. Tu peux désormais éditer la dernière ligne seulement...
Relance la macro... Idem, seule la dernière ligne est accessible...
Mais c'est quand même un comble que ce soit moi qui soit obligé de fournir un fichier !...
https://www.cjoint.com/c/GGzieUbKx4c
re,
Soit... je vois. Je vais revoir mon truc. Désolé de ne pas avoir donné de document précédemment mais je ne jugeai pas cela utile.
En tout cas merci pour ton aide.
Soit... je vois. Je vais revoir mon truc. Désolé de ne pas avoir donné de document précédemment mais je ne jugeai pas cela utile.
En tout cas merci pour ton aide.
voila le document en question. Je n'arrive vraiment pas à faire ce que je veux. je ne sais pas ce qui ne marche pas par rapport à ton document.
http://www.cjoint.com/c/GGzlM2ki63C
http://www.cjoint.com/c/GGzlM2ki63C
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
25 juil. 2017 à 14:00
25 juil. 2017 à 14:00
Re,
Dans les options pour la protection de l'onglet tout était décoché !?... Cela ne permettait même pas la sélection des cellules non verrouillées. J'ai rajouté une ligne qui permet de sélectionner ces cellules.
Le code modifié qui chez moi fonctionne avec ton fichier :
Dans les options pour la protection de l'onglet tout était décoché !?... Cela ne permettait même pas la sélection des cellules non verrouillées. J'ai rajouté une ligne qui permet de sélectionner ces cellules.
Le code modifié qui chez moi fonctionne avec ton fichier :
Sub Macro1() Dim DL As Long 'déclare la variable DL (Dernière Ligne) Application.ScreenUpdating = False 'masque les rafraîchissements d'écran With ActiveSheet 'prend en compte l'onglet actif .Unprotect Password:="0000" 'déprotège l'onglet .Cells.Locked = True 'protèges toutes les cellules de l'onglet DL = .Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A .Rows(DL).Copy 'copie la ligne DL .Cells(DL, "A").Insert xlShiftDown 'insère la ligne copiée dans la cellule ligne DL + 1 colonne A .Rows(DL + 1).ClearContents 'efface le contenu de la ligne DL +1 .Rows(DL + 1).Cells.Locked = False 'déverrouille la ligne DL +1 .Protect Password:="0000" 'protège l'onglet .EnableSelection = xlUnlockedCells End With 'fin de la prise en comtpe de l'onglet actif 'Application.ScreenUpdating = True est inutile puisque ça se fait automatiquement End Sub