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 :

Programmation Macro - étendre une macro sur certains onglets


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    a
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : a

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Par défaut Programmation Macro - étendre une macro sur certains onglets
    Bonjour à tous,

    Je suis complètement novice à la programmation en VBA, et j'ai besoin d'un peu d'aide.
    Pour faire simple, j'ai une macro de base très simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Range("A1:M66").Select
    Application.Run macro:="EssMenuRetrieve"
     
       End Sub
    J'aurais besoin de faire appliquer cette macro sur tous les onglets de mon classeur dont la colonne N1="retrieve"

    Pouvez-vous m'aider svp ?

    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    En fait il faut voir ta macro et appliquer l'action a toutes les feuilles avec une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For each ws in worksheets
    'Action
    next ws
    Montre ta macro et op on va te dire

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Déjà, il faudrait savoir que fait la macro "EssMenuRetrieve" ? Agit elle sur une feuille en particulier ou sur la feuille active ?
    J'aurais besoin de faire appliquer cette macro sur tous les onglets de mon classeur dont la colonne N1="retrieve"
    Je suppose que tu parles de la cellule N1 car il n'existe pas de colonne N1 !
    Dans ton bout de code on voit la plage "A1:M66", la macro agit dessus ? Le Select me pique les yeux

    Hervé.

  4. #4
    Candidat au Club
    Homme Profil pro
    a
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : a

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Par défaut
    Bonjour,

    Alors la macro ne doit s'appliquer que pour les onglets dont la cellule (sorry pour l'erreur dans ma demande) N1 est écrit "retrieve" (c'est un repère que je me suis donné).
    Si c'est le cas, elle doit s'appliquer sur la plage A1:M66 des onglets en question.

    merci de votre aide, je suis complètement perdu !

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Re,

    Une piste en lançant la proc "Test ci-dessous. Montre ta proc "EssMenuRetrieve" pour voir comment l'adapter au mieux :
    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
    26
    27
    28
    29
    30
    31
    32
     
    Sub Test()
     
        Dim Fe As Worksheet
     
        For Each Fe In Worksheets
     
            If Fe.Range("N1").Value = "retrieve" Then
     
                'appel de la proc ("Application.Run" étant inutile)
                EssMenuRetrieve Fe
     
            End If
     
        Next Fe
     
    End Sub
     
    Sub EssMenuRetrieve(Fe As Worksheet)
     
        With Fe.Range("A1:M66")
     
            'ici le code devant intervenir sur la plage
            '...
     
            'affiche le nom de la feuille où se trouve "retrieve" en cellule N1
            'c'est juste pour le test, tu peux le virer..!
            MsgBox Fe.Name
     
        End With
     
    End Sub
    Hervé.

Discussions similaires

  1. Implanter une macro par une macro
    Par indiannajones dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/07/2011, 12h42
  2. [XL-2003] Désactiver une macro avec une macro
    Par Sibuxian dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/10/2010, 00h54
  3. utiliser une macro dans une macro
    Par Calimero33 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2010, 17h48
  4. Creer une macro via une macro
    Par GlasgowBoy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/05/2009, 14h54
  5. [VBA-E] Execution d'un programme Perl depuis une macro Excel
    Par DaBeam dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/09/2007, 15h21

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