Bonjour,

Ci-dessous une petite macro pour recopier des données d'une feuille (toujours celle juste avant) sur une autre (la suivante).
Elle fonctionne, mais là encore, j'ai beaucoup d'étapes, et je ne sais pas comment alléger le contenu.
J'ai essayé de mettre moins de ôter protection et protéger, en changeant l'ordre, mais la copie ne fonctionnait pas.

Je me demande si je n'aurais pas intérêt à identifier le nom des 2 feuilles concernées pour les utiliser au lieu de répéter ? Si oui, comment procéder svp ?

J'ai aussi ajouté une question dans le code sur les fonctions Index et Count

Par avance je vous remercie de vos réponses, d'autant plus que je vous sollicite beaucoup depuis mon inscription ;-)


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
' copier données fiche suivi précédent proto
 
    ActiveSheet.Unprotect
 
    Sheets(1 + (ActiveSheet.Index + Sheets.Count - 2) Mod Sheets.Count).Activate
'j'avais trouvé ça sur Internet; mais est-ce que ceci serait aussi correct ? :
'Sheets((ActiveSheet.Index + Sheets.Count -1) Mod Sheets.Count).Activate
 
    Réponse = InputBox("Voulez-vous COPIER la fiche  " + ActiveSheet.Name + " ?           REPONDRE oui ou non")
    If Réponse <> "oui" Then Exit Sub
 
    ActiveSheet.Unprotect
    Range("A11:T57").Select
    Selection.Copy
 
    Sheets(1 + ActiveSheet.Index Mod Sheets.Count).Activate
    Range("A11:T57").Select
    ActiveSheet.Paste
    ActiveSheet.Select
    Application.CutCopyMode = False    'je ne sais pas à quoi cette phrase sert ?
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFormattingCells:=True
 
    Sheets(1 + (ActiveSheet.Index + Sheets.Count - 2) Mod Sheets.Count).Activate
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFormattingCells:=True
 
    Sheets(1 + ActiveSheet.Index Mod Sheets.Count).Activate