Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Insérer des lignes avec cellules protégées

SMEAGOAL

XLDnaute Junior
Bonjour,
J'aimerais pouvoir insérer une ligne type dans un tableau mais il y a des cellules protégées donc ce n'est pas possible, (voir exemple ligne 3).
Existe-t-il une macro simple pour pouvoir l'effectuer? (Je n'ai jamais réussi à comprendre le fonctionnement des macros...)
Merci.
 

Pièces jointes

  • Insérer des lignes copiées avec protection.xlsm
    12.3 KB · Affichages: 14
Solution
Bonjour SMEAGOAL, Phil69970,

Il faut copier les valeurs de la plage B3:J3 mais aussi entrer la formule en colonne A :
VB:
Sub Insertion()
'se lance par les touches Ctrl+I
Feuil1.Activate
If ActiveCell.Row < 6 Then MsgBox "Sélectionnez une cellule sous la ligne 5...", , "Insertion": Exit Sub
ActiveSheet.Protect "toto", UserInterfaceOnly:=True 'mot de passe à adapter
With ActiveCell.EntireRow
    .Insert
    .Rows(0).Font.Bold = False
    .Cells(0, 1).FormulaR1C1 = "=MAX(R5C:OFFSET(RC,-1,))+1"
    .Cells(0, 2).Resize(, 9) = [B3:J3].Value 'copie les valeurs
End With
End Sub
A+

job75

XLDnaute Barbatruc
Bonjour SMEAGOAL, Phil69970,

Il faut copier les valeurs de la plage B3:J3 mais aussi entrer la formule en colonne A :
VB:
Sub Insertion()
'se lance par les touches Ctrl+I
Feuil1.Activate
If ActiveCell.Row < 6 Then MsgBox "Sélectionnez une cellule sous la ligne 5...", , "Insertion": Exit Sub
ActiveSheet.Protect "toto", UserInterfaceOnly:=True 'mot de passe à adapter
With ActiveCell.EntireRow
    .Insert
    .Rows(0).Font.Bold = False
    .Cells(0, 1).FormulaR1C1 = "=MAX(R5C:OFFSET(RC,-1,))+1"
    .Cells(0, 2).Resize(, 9) = [B3:J3].Value 'copie les valeurs
End With
End Sub
A+
 

Pièces jointes

  • Insérer des lignes copiées avec protection(1).xlsm
    21 KB · Affichages: 7

SMEAGOAL

XLDnaute Junior
Bonjour job75,
Alors là plus que parfait, merci pour la formule décaler!
Question: pourquoi y a t'il un mot de passe à l'intérieur de la macro?
A+
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous

Voici ma version avec l'insertion de la formule d’origine sur la colonne A
*J'ai pas pu répondre plus tôt car absent toute la journée.

@Phil69970
 

Pièces jointes

  • Insérer des lignes copiées avec protection V4.xlsm
    25.4 KB · Affichages: 7

Phil69970

XLDnaute Barbatruc
@job75
J'ai vu mais du coup cela te fait un doublon c'est pourquoi je suis parti de l'idée de refaire les formules de la colonne A et après la nouvelle insertion pour remettre comme à l'origine


De plus un truc me chagrine c'est sur la manière de numéroter la colonne A car pour moi :

Référence de stock devrait correspondre à un même article avec une référence unique mais je dis ça je dis rien

@Phil69970
 

job75

XLDnaute Barbatruc
Je ne comprends pas, ma formule ne peut pas créer de doublon en colonne A.

Il est sûr que si l'on veut attacher un numéro unique à chaque article il ne faut pas de formule.

Mais alors pourquoi mettre des numéros ?

Bonne nuit.
 

SMEAGOAL

XLDnaute Junior
Bonjour Phil,
Je ne vois pas de doublon non plus avec la formule de job75,
Quant au tableau, j'ai pris un modèle disponible dans excel, je souhaite adapter la macro à mon fichier, histoire de me faire progresser sur VBA... (et c'est pas évident!)
Merci en tous cas!
 

SMEAGOAL

XLDnaute Junior
Bonjour à tous,
J'ai essayé d'adapter la macro à mon fichier mais je n'y suis pas arrivé!
J'ai abandonné la protection des cellules pour le moment,
Je cherche juste avec insérer les lignes type 122&123 (ensemble) et adapter la formule de la colonne D (comme a si bien fait job75).
Si vous pouvez m'aider là dessus?
Merci.
 

Pièces jointes

  • Insérer lignes copiées.xlsm
    109.3 KB · Affichages: 2

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…