XL 2016 Créer une macros pour insérer une ligne en gardant les formules (document protégé)

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

Graounette92

XLDnaute Nouveau
Bonjour,

J'ai un tableau recensant les effectifs et leur carrière.
Bien sur, pour éviter toutes mauvaises manipulations, les cellules contenant des formules sont protégées par un mot de passe.
J'utilise une macro qui me permet d'insérer en ligne en copiant la ligne du dessous pour garder les formules :
Sub InsèreCopieLigne()
ActiveSheet.Unprotect "RH"
ActiveCell.EntireRow.Insert
Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row)
On Error Resume Next
Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 1).ClearContents
ActiveSheet.Protect "RH", True, True, True
End Sub

Maintenant, j'aimerai que la macro vide les cellules non protégées de cette nouvelle ligne. Le but étant d'insérer une ligne vide à remplir lors de l'arrivée d'un nouvel effectif, tout en gardant les formules.
Savez-vous comment faire ?

Je vous remercie.

(PS : Je ne maîtrise absolument pas les VBA. ^^')
 
Solution
C
Bonjour Graounette92

Pour le code, le voici optimisé et dans le bon ordre 😉
VB:
Sub InsèreCopieLigne()
  ActiveSheet.Unprotect "RH"
  ' Copier la ligne actuelle
  ActiveCell.EntireRow.Copy
  ' Insérr une nouvelle ligne avec les données
  ActiveCell.EntireRow.Insert
  On Error Resume Next
  ' Effacer les cellules contenant des valeurs
  ActiveCell.EntireRow.SpecialCells(xlCellTypeConstants, 23).ClearContents
  ActiveSheet.Protect "RH", True, True, True
End Sub

@+
Bonjour Graounette92

Pour le code, le voici optimisé et dans le bon ordre 😉
VB:
Sub InsèreCopieLigne()
  ActiveSheet.Unprotect "RH"
  ' Copier la ligne actuelle
  ActiveCell.EntireRow.Copy
  ' Insérr une nouvelle ligne avec les données
  ActiveCell.EntireRow.Insert
  On Error Resume Next
  ' Effacer les cellules contenant des valeurs
  ActiveCell.EntireRow.SpecialCells(xlCellTypeConstants, 23).ClearContents
  ActiveSheet.Protect "RH", True, True, True
End Sub

@+
 
Bonjour Graounette92

Pour le code, le voici optimisé et dans le bon ordre 😉
VB:
Sub InsèreCopieLigne()
  ActiveSheet.Unprotect "RH"
  ' Copier la ligne actuelle
  ActiveCell.EntireRow.Copy
  ' Insérr une nouvelle ligne avec les données
  ActiveCell.EntireRow.Insert
  On Error Resume Next
  ' Effacer les cellules contenant des valeurs
  ActiveCell.EntireRow.SpecialCells(xlCellTypeConstants, 23).ClearContents
  ActiveSheet.Protect "RH", True, True, True
End Sub

@+
Merci beaucoup ! Ça marche parfaitement !! 😀
 
- 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

Retour