Aide pour convevoir une macro permettant d'ajouter une ligne en fin de tableau

dreamlife

XLDnaute Nouveau
Bonjour,
SVP je suis entrain de faire un fichier permettant la gestion des mouvements du stock. le fichier contient des colonnes ou il y a des formules que je veux protéger par mot de passe. Mon problème est le suivant:
je doit permettre à l'utilisateur d'ajouter des lignes pour les nouvelles entrées sans lui donner le mot de passe
pour ce faire j'ai commencer à faire une macro et j'ai réussi à oter la protection, inserer une ligne et reprotéger le fichier mais mon problème c'est que les formules ne sont pas copiées.
Merci de votre aide si vous trouvez une macro permettant d'ajouter une ligne en fin du tableau en gardant les formules.
voila mon fichier ci-joint pour comprendre mon cas. Je veux ajouter une ligne avec les formles unefois les lignes du tableau sont remplies
 

Pièces jointes

  • Classeur1.xlsx
    14.9 KB · Affichages: 405
  • Classeur1.xlsx
    14.9 KB · Affichages: 466
  • Classeur1.xlsx
    14.9 KB · Affichages: 486

Excel-lent

XLDnaute Barbatruc
Re : Aide pour convevoir une macro permettant d'ajouter une ligne en fin de tableau

Bonjour et bienvenu sur le forum Dreamlife,

Le plus simple et le plus formateur : lancer l'enregistreur de macro.

Puis copier la(es) formule(s) présente(nt) sur la dernière ligne
Coller (ou "collage spécial" - "formule") les formules précédement "copier"

Puis arrêter l'engistreur de macro.

Il te reste maintenant plus qu'à rajouter cette nouvelle macro à la suite de ta macro.

Bonne après midi
 

JNP

XLDnaute Barbatruc
Re : Aide pour convevoir une macro permettant d'ajouter une ligne en fin de tableau

Bonjour le fil :),
Je ne me souviens plus pour 2003, mais vu que tu es en 2010, au moment de protéger ta feuille, tu as une case à cocher "Insérer des lignes", ça devrait résoudre ton problème sans utiliser VBA :p...
Bonne suite :cool:
 

dreamlife

XLDnaute Nouveau
Re : Aide pour convevoir une macro permettant d'ajouter une ligne en fin de tableau

Bonjour,
Merci pour votre réponse mais malheureusement cette solution ne fonctionne pas. Je suis débutant en VBA c'est pour ca j'arrive pas à manipuler les codes tres bien. Voila la macro que j'ai enregisté pour inserer une ligne en gardant les formules de la dernière ligne du tableau que j'ai copié :
Sub Macro1()
Range("B1:T1").Select
[B65536:T65536].End(xlUp).Select
Selection.EntireRow.Insert
Rows("23:23").Select
Selection.Copy
Range("B1:T1").Select
[B65536:T65536].End(xlUp).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
 

dreamlife

XLDnaute Nouveau
Re : Aide pour convevoir une macro permettant d'ajouter une ligne en fin de tableau

Bonjour
JNP : Oui je connais l'astuce mais on peut juste inserer une ligne sans garder les formules et si on veut faire une inserersion des cellules copiées on peut pas et excel demande d'oter la protection avant de coller les formules ou d'inserer une ligne copiée.
Merci pour Votre réponse.
 
C

Compte Supprimé 979

Guest
Re : Aide pour convevoir une macro permettant d'ajouter une ligne en fin de tableau

Salut Dreamlife

Une solution
VB:
Sub InsertLigneFeuilleProtégée()
  Dim DLig As Long
  ' Avec la feuille active
  With ActiveSheet
    ' Supprimer la protection
    .Unprotect
    ' Trouver la dernière ligne du tableau
    DLig = .Range("B" & Rows.Count).End(xlUp).Row
    ' Insérer une ligne à la fin (selon présentation tableau)
    .Rows(DLig + 1).Insert
    ' Copier l'ancienne dernière ligne
    .Rows(DLig).Copy
    ' Coller les formules sur la nouvelle dernière
    .Range("A" & DLig + 1).PasteSpecial Paste:=xlPasteFormulas
    ' Sortir du mode copier/coller
    Application.CutCopyMode = False
    ' Remettre la protection
    .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
           , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
             AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True
  End With
End Sub

A+
 

dreamlife

XLDnaute Nouveau
Re : Aide pour convevoir une macro permettant d'ajouter une ligne en fin de tableau

Bruno M45: Merci infiniment c'est parfaitement ce que je veux ca marce hyper bien mais juste une remarque est ce qu'on peut pas copier que les formules parceque la macro copie les formules et le contenu de la dernière ligne.
Merci pour votre aide précieux.
 
C

Compte Supprimé 979

Guest
Re : Aide pour convevoir une macro permettant d'ajouter une ligne en fin de tableau

Re,

Dans ce cas, une autre possibilité ;)
VB:
Sub InsertLigneFeuilleProtégée()
  Dim DLig As Long
  ' Avec la feuille active
 With ActiveSheet
    ' Supprimer la protection
   .Unprotect
    ' Trouver la dernière ligne du tableau
   DLig = .Range("B" & Rows.Count).End(xlUp).Row
    ' Insérer une ligne à la fin (selon présentation tableau)
   .Rows(DLig + 1).Insert
   ' Copier l'ancienne dernière ligne
   .Rows(DLig).SpecialCells(xlCellTypeFormulas).Select
   .Range(Selection, Selection.Offset(1, 0)).FillDown
    ' Sortir du mode copier/coller
   Application.CutCopyMode = False
    ' Remettre la protection
   .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
           , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
             AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True
  End With
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 311
Messages
2 087 147
Membres
103 484
dernier inscrit
maintenance alkern