Donnée variable dans une macro

Résolu
Bonjour,

Excel 2013 - Windows 8.1

Dans un document j''ai un Onglet nommé CALQUE qui comporte la macro suivante :

Sub Tri_Budget()
'
' Tri_Budget Macro
'

'
Range("A4:J400").Select
ActiveWorkbook.Worksheets("Calque").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Calque").Sort.SortFields.Add Key:=Range("J4:J400"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Calque").Sort
.SetRange Range("A4:J400")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Cet Onglet me sert de référence pour créer au fil du temps via la fonction "Déplacé_Copier" 12 nouveaux Onglets Janvier, Février..... Décembre.
Est-ce qu'il est possible de compléter cette macro afin que le nom "Calque" prenne le nom de l'Onglet dans laquelle elle s'exécute.
Je reste bien entendu à votre entière disposition si nécessaire et vous remercie par avance de votre attention.
Cordialement.

5 réponses

  1. bonjour

    Essaye

    Dim laFeuil As String
    laFeuil = ActiveSheet.Name


    Et remplacer "Calque" par laFeuil dans la macro

    cordialement
    1. Bonjour Iama,

      Merci de ta réponse.
      Je ne suis pas un as de la macro !
      Comment et où intégrer ce que tu proposes, avant ou après Subtri ?
      Y-a-t-il des instructions à ajouter ?
      Merci par avance de ta réponse.
      Amicalement
      1. Pour info

        Après sub

        cordialement
    2. Bonjour

      Plus simplement tu peux dans la macro remplacer tous les Worksheets("Calque") par ActiveSheet

      Cdlmnt
      1. Bonjour via55,
        Merci de me venir à nouveau en aide.
        J'ai remplacé tous les Worksheets par ActiveSheet
        j'ai "Erreur 438"
        Amicalement
        1. Re,

          OK, j'avais simplement oublié d'ôter "CALQUE"
          Je vérifie cela devrait marcher.
          Merci beaucoup
          Amicalement
      2. Re

        Chez moi cela fonctionne très bien

        As tu bien modifié ainsi ? :

        Sub Tri_Budget()
        '
        ' Tri_Budget Macro
        '

        '
        Range("A4:J400").Select
        ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
        ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("J4:J400"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.ActiveSheet.Sort
        .SetRange Range("A4:J400")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
        End With
        End Sub

        Cdlmnt