XL 2010 Copier/coller une feuille de calcul contenant un "bouton macro".

DAVID-44-

XLDnaute Occasionnel
Bonjour à tous,
j'ai copié/coller une feuille de calcul contenant un "bouton macro" dans le même classeur. Malheureusement, le "bouton macro" fonctionne dans la feuille de base et non sur la nouvelle feuille créée. J'aimerais savoir s'il était possible de copier la feuille complète avec ce "bouton macro" et le faire fonctionner indépendamment et uniquement dans les nouvelles feuilles créées.
Merci de votre aide.
Cordialement.
David.
 
Solution
David, essayez cela.
Ca suppose qu'avant de rentrer dans la macro vous soyez sur le bonne feuille.

VB:
Sub Macro7()
Set ws = ActiveSheet    ' selectionne la feuille active

Range("B10:J28").Select
ws.Sort.SortFields.Clear
ws.Sort.SortFields.Add Key:= _
Range("I10:I28"), SortOn:=xlSortOnValues, Order:=xlDescending, _
                    DataOption:=xlSortNormal
With ws.Sort
    .SetRange Range("B10:J28")
    .Header = xlGuess
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour David,
Ce bouton dupliqué accédera toujours à la même macro.
C'est dans celle ci que vous devez référencer la feuille dans laquelle il doit travailler, avec par exemple With ActiveSheet et modifier votre macro pour que toutes ses actions ce passe sur cette feuille de référence.
Par exemple si dans votre macro vous avez Sheets("Feuill1").Range("A1")=0, quelque soit la feuille à partir de laquelle fut lancée la macro, elle ne changera que la Feuil1.
Dans ce cas remplacez cette ligne par :
VB:
With ActiveSheet
    .Range("A1")=0
End With
Et il modifiera la feuille concernée.
 

DAVID-44-

XLDnaute Occasionnel
Bonjour Sylvanu,
Merci pour ta réponse.
J'ai essayé de modifier la macro, mais je ne suis pas très doué.
Voilà ce que j'ai et je ne sais pas où modifier la macro :

Sub Macro7()
'
' Macro7 Macro
'

'
Range("B10:J28").Select
ActiveWorkbook.Worksheets("BLANQUETTE DE POISSON").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("BLANQUETTE DE POISSON").Sort.SortFields.Add Key:= _
Range("I10:I28"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets("BLANQUETTE DE POISSON").Sort
.SetRange Range("B10:J28")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Merci de ton aide.
Cordialement.
David.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
David, essayez cela.
Ca suppose qu'avant de rentrer dans la macro vous soyez sur le bonne feuille.

VB:
Sub Macro7()
Set ws = ActiveSheet    ' selectionne la feuille active

Range("B10:J28").Select
ws.Sort.SortFields.Clear
ws.Sort.SortFields.Add Key:= _
Range("I10:I28"), SortOn:=xlSortOnValues, Order:=xlDescending, _
                    DataOption:=xlSortNormal
With ws.Sort
    .SetRange Range("B10:J28")
    .Header = xlGuess
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
End Sub
 

Discussions similaires

Réponses
56
Affichages
1 K

Statistiques des forums

Discussions
312 195
Messages
2 086 072
Membres
103 110
dernier inscrit
Privé