IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Partage de macro sur plusieurs fichiers excel (2013)


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Octobre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Octobre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Partage de macro sur plusieurs fichiers excel (2013)
    Bonjour,

    J'ai fait une macro que je voudrait pouvoir utiliser sur d'autres fichiers excel.
    J4ai suivi beaucoup de tuto qui permettent de le faire. Leur exemple fonctionne mais quand je l'applique à mon cas ca ne marche pas.
    Situation: je suis daltonien. Office a eu la "bonne" idée d'utiliser la couleur verte pour encadrer les cellules actives. Je ne la vois pas.
    J'ai donc chercher sur internet comment résoudre mon problème. Solution trouvé, utiliser la macro suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static Rng As Range
     
    If Not Rng Is Nothing Then Rng.Interior.ColorIndex = xlNone
    Target.Interior.ColorIndex = 12
    Set Rng = Target
    End Sub
    Elle fonctionne très bien. Je la transforme donc en .XSLAM pour la partager avec mes autres feuilles. Je la valide deans les macros complémentaire mais rien ne se passe. Je met en pièce jointe le fichier XLSM car le XLSA n'est pas accepté par ce site.

    Merci par avance pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Les évènements Worksheet sont propres à la feuille de calcul dans laquelle ils sont enregistrés.
    Donc, les mettre dans un autre fichier "générique" n'est pas une bonne idée.

    Pour que ça concerne toutes les feuilles de tous les fichiers, il faut utiliser l'évènement Application.SheetChange.
    https://msdn.microsoft.com/library/0...ice.15%29.aspx

    Perso, je n'ai jamais touché aux évènements de Application. Je ne vois donc pas où il faut les placer.
    Peut-être que d'autres pourront l'indiquer ou que tu trouveras des infos sur le sujet.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Octobre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Octobre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci de ton aide. Je vais regarder si je trouve quelque chose a ce sujet.

  4. #4
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Octobre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Octobre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bon malgré toutes mes recherches je n'arrive a rien. Quequ'un peux m'aiguiller s'il vous plait?
    Merci par avance.

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    Avec une MFC plutôt, pour ne pas perdre les mises en forme.
    à mettre dans ThisWorkbook :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Option Explicit
     
    Private WithEvents App As Application
     
    Private Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
        Dim fc     As FormatCondition
        For Each fc In Sh.Cells.FormatConditions
            If fc.Formula1 = "=""MFC_Sel""<>""""" Then fc.Delete
        Next fc
        With Target
            .FormatConditions.Add Type:=xlExpression, Formula1:="=""MFC_Sel""<>"""""
            .FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
            With .FormatConditions(1).Interior
                .PatternColorIndex = xlAutomatic
                .Color = 52479
                .TintAndShade = 0
            End With
            .FormatConditions(1).StopIfTrue = False
        End With
    End Sub
     
    Private Sub Workbook_Open()
        'récupérer l'application Excel à l'ouverture
        Set App = Application
    End Sub
    Si tu modifies Sub App_SheetSelectionChange() relancer Workbook_Open() pour que les événements soient pris à nouveau en compte.

    Par contre toute macro fait perdre l'annulation possible des dernières saisies (Ctrl+z).
    Tu devrais fouiller du coté des 'Paramètres d'apparence avancés...' (clic-droit sur le bureau) pour voir s'il n'y aurait pas une solution plus générale. Je n'ai pas trouvé mais peut-être que quelqu'un a fouillé plus profondément de ce coté.
    eric

    PS: je n'arrive pas à insérer le fichier donc lancer Workbook_Open() pour tester.

  6. #6
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Octobre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Octobre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Désolé pour la réponse tardive.
    Ca marche super. Un grand merci toi.
    Ca va enormement m'aider au quotidien.

    J'avais déjà fouillé du coté apparence avancé mais sans résultat.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/08/2017, 16h55
  2. Réponses: 1
    Dernier message: 11/02/2011, 14h14
  3. Creer un macro qui verifie une info sur plusieur fichier excel
    Par Esmax666 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/07/2009, 16h42
  4. Réponses: 10
    Dernier message: 28/08/2008, 09h15
  5. Macros sur Plusieurs fichiers Excel
    Par Echizen1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2006, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo