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 :

Utiliser Array avec Submacros


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de Souriane
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2009
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2009
    Messages : 541
    Par défaut Utiliser Array avec Submacros
    Bonjour,

    Je suis plutôt bonne en VBA, mais j’ai toujours travaillé avec essai-erreur sachant très bien que parfois, je complique ma macro pour rien. Mais je parviens toujours à mes fins. Mais cette fois-ci quelque chose cloche et je me doute que c’est parce que je ne fais pas selon les règles de l’art. Donc voici.

    J’ai plusieurs macros qui appellent d’autres submacros pour agir sur chacun des onglets de certains fichiers.

    La MacroA appelle la submacro MaMacro1 + MaMacro 3 + MaMacro 8
    La MacroB appelle la submacro MaMacro1 + MaMacro 5 + MaMacro 8

    Comment dois-je faire, par exemple, dans « MaMacro1 » pour être sûre que la macro agisse bien sur « MaFeuille » de l’array?

    Exemple de la macro MacroA :

    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
    Sub MacroA()
     
    Dim MesFeuilles As Sheets
    Dim MaFeuille As Worksheet
    Set MesFeuilles = Worksheets(Array("Dossier1", "Dossier2", "Dossier3", "Dossier4"))
     
    For Each MaFeuille In MesFeuilles
     
            Module.MaMacro1
     
            Module.MaMacro3
     
            Module.MaMacro8
     
    Next MaFeuille
     
    End Sub
    Exemple de ce que j’écris ACTUELLEMENT dans MaMacro1 et qui semblait fonctionner jusqu’ici mais depuis quelques jour, on dirait que rendu au 2e Array, il continue d’agir sur le 1er array…?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub MaMacro1()
    'Tri le tableau final
        ActiveSheet.Cells.Select
            Selection.Sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlNo, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
    End Sub
    C’est au niveau du « ActiveSheet.Cells.Select » que j’ai l’impression que ce n’est plus suffisant…?

    Merci de votre aide!


    Souriane

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Souriane Voir le message
    Bonjour Souriane,

    Sinon, tu pourrais rendre tes macros paramétriques comme ceci :
    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
    Sub MacroA()
     
    Dim MesFeuilles As Sheets
    Dim MaFeuille As Worksheet
     
        Set MesFeuilles = Worksheets(Array("Dossier1", "Dossier2", "Dossier3", "Dossier4"))
     
        For Each MaFeuille In MesFeuilles
            MaMacro1 MaFeuille
            MaMacro3 MaFeuille
            MaMacro8 MaFeuille
        Next MaFeuille
        Set MesFeuilles = Nothing
     
    End Sub
     
     
    Sub MaMacro1(ByVal MaFeuille2 As Worksheet)
     
        'Tri le tableau final
        With MaFeuille2
             .Cells.Sort Key1:=.Range("E1"), Order1:=xlDescending, Header:=xlNo, _
             OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
        End With
     
    End Sub
    Dernière modification par Invité ; 27/05/2020 à 21h29. Motif: Déplacé dans le bon forum

  3. #3
    Membre émérite Avatar de Souriane
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2009
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2009
    Messages : 541
    Par défaut
    Tellement merci pour la réponse, c'est exactement ce dont j'avais besoin!

    Souriane

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/05/2007, 19h36
  2. Utilisation iterator avec une classe perso
    Par SteelBox dans le forum C++
    Réponses: 19
    Dernier message: 07/03/2005, 11h30
  3. Réponses: 6
    Dernier message: 24/02/2005, 09h44
  4. PB de vue utilisant UNION avec ENTERPRISE MANAGER
    Par punglas dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/12/2004, 15h18
  5. Réponses: 12
    Dernier message: 02/02/2004, 13h41

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