Duppliquer onglet puis revenir sur l'original

Bonjour,

Je cherche à créer une macro qui fasse l'opération suivante :

(1) je sélectionne une plage de cellules dans un onglet

(2) quand je lance la macro, celle-ci dupplique mon onglet de travail actuel

(3) puis cache cette "copie" d'onglet

(4) puis efface le format de ma plage de cellules dans le "premier" onglet (l'onglet original)

Je suis pour l'instant arrivé à ce résultat :

Sub Macro1()
'Procédure pour afficher / supprimer le format des cellules

Dim numLigne As Integer, numColonne As Integer, numFeuille As Integer, nomFeuille As String
    numLigne = Selection.Row
    numColonne = Selection.Column
    numFeuille = ActiveSheet.Index
    nomFeuille = ActiveSheet.Name

' D'abord, la macro dupplique l'onglet de la sélection et le cache
With ActiveSheet
    .Copy After:=ActiveSheet
End With

With ActiveSheet
    .Visible = False
End With

'La macro fait ensuite disparaître le format de l'onglet principal
With Sheets(ActiveSheet.Index - 1).Select
    .Borders.LineStyle = xlNone
    .Interior.Pattern = xlNone
    .Interior.TintAndShade = 0
    .Interior.PatternTintAndShade = 0
    .Font.Color = 0
    .Font.Italic = False
    .Font.Bold = False
    .HorizontalAlignment = xlGeneral
    .VerticalAlignment = xlGeneral
End With

End Sub

La reference Sheets(ActiveSheet.Index-1).Select ne fonctionne pas.

Je ne comprends pas pourquoi, puisqu'il s'agit bien de la plage de cellules que j'ai sélectionnée avant de lancer la macro, non?

Merci beaucoup de votre aide.

Akilis

Bonjour

Essaie ainsi :

Option Explicit

Sub Macro1()
'Procédure pour afficher / supprimer le format des cellules

Dim numLigne As Integer, numColonne As Integer, numFeuille As Integer, nomFeuille As String
Dim f As Worksheet

Set f = ActiveSheet
    numLigne = Selection.Row
    numColonne = Selection.Column
    numFeuille = ActiveSheet.Index
    nomFeuille = ActiveSheet.Name

' D'abord, la macro dupplique l'onglet de la sélection et le cache

With ActiveSheet
    .Copy After:=ActiveSheet
End With

With ActiveSheet
    .Visible = False
End With

'La macro fait ensuite disparaître le format de l'onglet principal
f.Select

With Selection 'Sheets(ActiveSheet.Index - 1).Select

    .Borders.LineStyle = xlNone
    .Interior.Pattern = xlNone
    .Interior.TintAndShade = 0
    .Interior.PatternTintAndShade = 0
    .Font.Color = 0
    .Font.Italic = False
    .Font.Bold = False
    .HorizontalAlignment = xlGeneral
    .VerticalAlignment = xlGeneral
End With

End Sub

Bye !

Merci BEAUCOUP !

Akilis

Rechercher des sujets similaires à "duppliquer onglet puis revenir original"