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.

2 réponses

  1. g Messages postés 1285 Statut Membre 578
     
    Bonjour,

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

    Cordialement.
    0
    1. 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
  2. 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
    1. 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
    2. 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
    3. 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
    4. 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
    5. M'man
       
      Merci beaucoup, ça fonctionne avec ActiveSheet. Ce sera très utile.
      0