Donnée variable dans une macro [Résolu/Fermé]

Signaler
Messages postés
90
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
1 novembre 2019
-
Iama
Messages postés
316
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
5 janvier 2019
-
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

Messages postés
316
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
5 janvier 2019
14
bonjour

Essaye

Dim laFeuil As String
laFeuil = ActiveSheet.Name


Et remplacer "Calque" par laFeuil dans la macro

cordialement
Messages postés
90
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
1 novembre 2019

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
Iama
Messages postés
316
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
5 janvier 2019
14
Pour info

Après sub

cordialement
Messages postés
11621
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 janvier 2020
1 619
Bonjour

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

Cdlmnt
Messages postés
90
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
1 novembre 2019

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

Re,

OK, j'avais simplement oublié d'ôter "CALQUE"
Je vérifie cela devrait marcher.
Merci beaucoup
Amicalement
Messages postés
11621
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 janvier 2020
1 619
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