Copie de données dans une feuille protégée et filtrage de données

Renaud22

XLDnaute Junior
Bonjour à tous,

J'aurais besoin qu'on aide à concevoir une macro permettant de copier des données dans une feuille protégée.

Dans le fichier "Exemple.xlsm", ci-joint, j'ai une feuille "BDLOGBOOK" dans laquelle les données sont copiées. La feuille est protégée en écriture dans la plage "A9 : CP697".

Cependant, dans la feuille 'MODEL" qui peut être dupliquée plusieurs fois, je désire copier les données de la plage "R3:DF3 dans la feuille "BDLOGBOOK" dans la plage "B9:CP9". Une fois les données copiées, la feuille est protégée à nouveau en écriture dans la plage "A9 : CP697". Si j'exécute à nouveau la macro de copie à partir de la feuille "MODEL" ou d'une autre feuille créée à partir de la feuille "MODEL", je désire que les données présentes à la ligne 9 ("B9:CP9") descentent à la ligne 10 et que les nouvelles données soient copiées dans la plage "B9:CP9" et ainsi de suite. Après chaque copie, la feuille "BDLOGBOOK" doit être protégée en écriture dans la plage "A9 : CP697".

Finalement, je désire utiliser au besoin le filtrage des cellules (ligne 8 - "BDLOGBOOK"). Lorsque le filtrage est sélectionné, les cellules dans la plage "A9 : CP697" ne seront plus protégées afin de permettre le filtrage des données. Une fois le filtrage des données complété, la feuille "BDLOGBOOK" sera à nouveau protégée en écriture dans la plage "A9 : CP697".

Je vous remercie par avance pour votre précieuse collaboration et n'hésitez pas à me contacter pour toutes informations complémentaires.

Salutations

Renaud22
 

Pièces jointes

  • Exemple.xlsm
    322.8 KB · Affichages: 22

kingfadhel

XLDnaute Impliqué
bonsoir/bonjour, selon le fuseau horaire, le forum
@Renaud22

VB:
Sub COPIE()
    With Sheets("BDLOGBOOK")
    ActiveSheet.Unprotect
        lig = [B659].End(xlUp).Row
        If lig > 8 Then
            Range("B9:CP" & lig).Cut Destination:=Range("B10:CP" & lig + 1)
            Range("B9:CP9").Borders.LineStyle = xlContinuous
        End If
    ActiveSheet.Protect
    End With

    With Sheets("MODEL")
    .Range("R3:DF3").Copy
    Sheets("BDLOGBOOK").Activate
    ActiveSheet.Unprotect
    Sheets("BDLOGBOOK").[B9].PasteSpecial Paste:=xlPasteValues
    ActiveSheet.Protect
    End With
Sheets("MODEL").Activate
End Sub
 

Renaud22

XLDnaute Junior
bonsoir/bonjour, selon le fuseau horaire, le forum
@Renaud22

VB:
Sub COPIE()
    With Sheets("BDLOGBOOK")
    ActiveSheet.Unprotect
        lig = [B659].End(xlUp).Row
        If lig > 8 Then
            Range("B9:CP" & lig).Cut Destination:=Range("B10:CP" & lig + 1)
            Range("B9:CP9").Borders.LineStyle = xlContinuous
        End If
    ActiveSheet.Protect
    End With

    With Sheets("MODEL")
    .Range("R3:DF3").Copy
    Sheets("BDLOGBOOK").Activate
    ActiveSheet.Unprotect
    Sheets("BDLOGBOOK").[B9].PasteSpecial Paste:=xlPasteValues
    ActiveSheet.Protect
    End With
Sheets("MODEL").Activate
End Sub


Bonsoir kingfadhel,

Merci d'avoir répondu si promptement à ma demande.

Lorsque j'exécute votre macro, les données en "R3:DF3" sont copiées une seule fois. Je dois copier cette plage de données à plusieurs reprises car la feuille "MODEL" sera dupliquée (MODEL (1), MODEL (2),...) Les feuilles de données sont créées à partir de la feuille "MODEL" et les données sont différentes d'une feuille de données à l'autre. A chaque copie, les données présentes sous la plage "B9:CP9" ("BDLOGBOOK") doivent descendre d'une ligne pour permettre l'insertion des nouvelles données dans la plage "B9:CP9".

Au plaisir de vous relire,

Salutations,

Renaud22
 

Pièces jointes

  • Exemple 2.xlsm
    342.6 KB · Affichages: 20

Renaud22

XLDnaute Junior

Merci kingfadhel pour votre réponse. La copie est effectuée parfaitement.

J'ai fait un test avec une date en "DF3". Cependant, lorsqu'on copie les données, le format de la date en "DF3" (feuilles de données) n'est pas conservé dans la colonne "CP" de la feuille "BDLOGBOOK". Une fois une copie effectuée, la ligne 9 de la feuille "BDLOGBOOK" et les suivantes doivent être protégées en écriture. Seul l'accès est possible lors de la copie des données. Les colonnes contenant les données dans la feuille "BDLOGBOOK" doivent être également accessibles lorsque le filtrage est sélectionné (ligne 8 - "BDLOGBOOK") et protégées à nouveau une fois le filtrage terminé.

Est-ce possible pour vous de m'aider une dernière fois afin de réaliser ceci ?

Salutations,

Renaud22
 

Pièces jointes

  • Exemple 3.xlsm
    334.4 KB · Affichages: 26

Renaud22

XLDnaute Junior
Merci pour les dernières modifications. Dans la feuille ""BDLOGBOOK" où les données ont été copiées, je veux utiliser au besoin le tri des colonnes à la ligne 8. Une fois le tri effectué sur une colonne de mon choix, la plage "B9:CP9" doit être à nouveau protégée afin de ne pas écrire dans cette plage. Seul la copie ou le tri est permis dans cette plage.
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote