Macrocommande dans plusieurs feuille

Résolu
M'man -  
 M'man -
Bonjour,


Je cherche comment utiliser une même macrocommande, dans différentes feuilles d'un même classeur Excel. Par contre, je ne voudrais pas que la commande soit simultané dans toutes les feuilles, mais plutôt dans la feuille active seulement.
A voir également:

2 réponses

g Messages postés 1265 Date d'inscription   Statut Membre Dernière intervention   577
 
Bonjour,

Tu mets la macro dans un Module standard puis tu la commandes depuis la feuille active souhaitée.

Cordialement.
0
M'man
 
Merci de votre aide, par contre étant pas mal débutante, je ne connais qu'une seule façon pour faire les macrocommandes, soit d'enregistrer les commandes que je veux répéter. Donc par:
Enregistrer une macro
Choisir la touche raccourci
Faire les commandes à enregistrer
Arrêter l'enregistrement.
Et exécuter ou supprimer les macros.
Je suis capable d'accéder au module pour faire de simple modification, mais pas d'en programmer un au complet. Quand je proçède de cette façon, le module inscrit toujours le nom de l'onglet dans lequel je me trouvais lors de la création de la macro. Donc, si j'essaie d'exécuter ma macro dans un autre onglet, le travail se fait toujours dans l'onglet d'origine. Est-possible de remplacer le nom de cet onglet dans le module par une commande lui demandant d'agir dans tous les onglets où je serais situé?
0
Paf
 
Bonjour,

il suffit de supprimer les références de la feuille dans votre macro pour qu'elle s'exécute dans la feuille active.
Pour gagner du temps montrez nous le code de la macro, pour confirmer la faisabilité.

A bientôt
0
M'man
 
Voici un exemple. J'ai essayé d'enlever les références, d'enlever worsheets et les références. Mais ça empêche le fonctionnement de la macrocommande.

Sub samplanchedossard()
'
' samplanchedossard Macro
'
' Touche de raccourci du clavier: Ctrl+o
'
Range("A3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ActiveWorkbook.Worksheets("samPlanche13").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("samPlanche13").Sort.SortFields.Add Key:=Range( _
"C4:C12073"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("samPlanche13").Sort
.SetRange Range("A3:O12073")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
0
Paf
 
re,
le code fourni permet d'identifier 4 actions:
1- on selectionne une plage de cellule;
2- on annule les critère de tri sur la feuille
3- on rajoute un critère de tri et on trie la feuille
4- on trie la feuille avec d'autres critères

quel est le but de cette macro ? quel est votre besoin ? est ce de trier une plage selon une colonne?
a priori il s'agit d'excel 2007, je n'ai que 2003 et la syntaxe des tris est différente mais 2003 doit fonctionner sur 2007

A+
0
M'man
 
Elle sert à trier toutes les lignes à partir d'une colonne par ordre de dossard d'une compétition. D'autres servent à trier par ordre alphabétique des participants ou par résultat.
0
Paf
 
Re

D'accord, il y a plusieurs lignes de code qui ne s'exécute pas dans la même macro

Range("A3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 
permet de selectionner de la cellule A3 jusqu'à la cellule renseignée la plus "en bas à droite".

Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
permet de trier la plage selectionnée dans l'ordre croissant de la colonne A quelque soit la feuille ou l'on est positionnée. Changer A3 en indiquant la colonne sur laquelle doit s'effectuer le tri . ( peut être par l'intermédiaire d'une inputbox?)

sinon sans modifier le code remplacer ActiveWorkbook.Worksheets("samPlanche13")
par ActiveSheet pour faire fonctionner le code sans gros changements

A+
0
M'man
 
Merci beaucoup, ça fonctionne avec ActiveSheet. Ce sera très utile.
0