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 -
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.
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
-
bonjour
Essaye
Dim laFeuil As String laFeuil = ActiveSheet.Name
Et remplacer "Calque" par laFeuil dans la macro
cordialement -
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 -
Bonjour
Plus simplement tu peux dans la macro remplacer tous les Worksheets("Calque") par ActiveSheet
Cdlmnt
-
Bonjour via55,
Merci de me venir à nouveau en aide.
J'ai remplacé tous les Worksheets par ActiveSheet
j'ai "Erreur 438"
Amicalement -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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