Donnée variable dans une macro

Résolu
JL00700 Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   -  
Iama Messages postés 324 Statut Membre -
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. Iama Messages postés 324 Statut Membre 14
     
    bonjour

    Essaye

    Dim laFeuil As String
    laFeuil = ActiveSheet.Name


    Et remplacer "Calque" par laFeuil dans la macro

    cordialement
    0
  2. JL00700 Messages postés 90 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    0
    1. Iama Messages postés 324 Statut Membre 14
       
      Pour info

      Après sub

      cordialement
      0
  3. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

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

    Cdlmnt
    0
  4. JL00700 Messages postés 90 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour via55,
    Merci de me venir à nouveau en aide.
    J'ai remplacé tous les Worksheets par ActiveSheet
    j'ai "Erreur 438"
    Amicalement
    0
    1. JL00700 Messages postés 90 Date d'inscription   Statut Membre Dernière intervention  
       
      Re,

      OK, j'avais simplement oublié d'ôter "CALQUE"
      Je vérifie cela devrait marcher.
      Merci beaucoup
      Amicalement
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    0