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 :

Module de classe automatique [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Par défaut Module de classe automatique
    bonjour
    j'ai le macro suivant qui copie un tableau et le coller dans un nouveau fichier excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Macro2()
     
        Range("Tableau1").Copy
        Workbooks.Add
        Range("A2").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Sheets("Feuil1").Name = "GR"
        Range("A1").Select
     
    End Sub
    svp comment ajouter ce module classe d'une façon automatique dans ce nouveau fichier excel "Feuil1" juste après l’exécution du macro 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Intersect(Target, Range("A1")) Is Nothing Then
           ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=5, Criteria1:=Range("A1")
      End If
     
    Range("A1").Select
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je ne vois pas de module de classe mais c'est pas grave!

    Utilises un classeur modèle Xltm qui lui contiendra ta macro!
    Workbooks.Add "c:\myrep\modèle.xltm"

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    C'est pas un module de classe mais un module de feuille, mais c'est pas grave!
    Pour créer un module par macro et y insérer une macro regardes ici :
    http://silkyroad.developpez.com/VBA/...cEditor/#LIV-A

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    le module d'une feuille de calculs comme celui du classeur ThisWorkbook sont bien
    des modules de classe - certes spécifiques - car exportés aussi en .cls comme un simple module de classe …

    Terminologie microsoftienne quand tu nous tiens !  

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  5. #5
    Invité
    Invité(e)
    Par défaut
    Pour utiliser VBProject il faut explicitement l'autoriser dans le options d'excel c'est donc pour cela que je préconise un modèle xltm avec les macros implémenter dedans!

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Pour utiliser VBProject il faut explicitement l'autoriser dans le options d'excel c'est donc pour cela que je préconise un modèle xltm avec les macros implémenter dedans!
    VBProject n'est qu'une alternative, et effectivement utiliser un modèle est bien plus simple.

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour Robert,
    Pour utiliser VBProject il faut explicitement l'autoriser dans le options d'excel c'est donc pour cela que je préconise un modèle xltm avec les macros implémenter dedans!
    Entièrement d'accord avec toi

    On peut également faire la copie de la feuille vers un nouveau classeur et ainsi copier le code VBA du module de celle-ci
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ThisWorkbook.Worksheets("Feuil4").Copy
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Membre éclairé
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Par défaut
    bonjour et merci pour votre réponses


    je vous explique

    au début j'ai mis le macro2 dans module1
    en suite le private sub dans feuil1 et j'ai enregistrer le tous dans un fichier type macro complémentairement excel copie.xlam
    après j'ai ajouter une icone dans la barre d'outil rapide pour exécuter cette macro2 facilement
    je souhaite que le private sub qui existe dans copie.xlam feuil1 seras copier automatiquement dans le nouveau fichier excel feuil1 après l’exécution de macro2

  9. #9
    Membre éclairé
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour Robert,

    Entièrement d'accord avec toi

    On peut également faire la copie de la feuille vers un nouveau classeur et ainsi copier le code VBA du module de celle-ci
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ThisWorkbook.Worksheets("Feuil4").Copy
    SVP est ce que je peux ajouter le nom du fichier copie.xlma dans votre code
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbook("copie").Worksheets("Feuil4").Copy
    merci

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    On peut bien entendu copier la feuille d'un classeur suffixé xlam rérérencé comme macro complémentare mais ce n'est pas tout à fait la même façon de travailler.
    Le classeur xla ne fait pas partie de la collection Workbooks mais de AddIns et celle-ci ne permet pas, d'après mes recherches de visualiser les feuilles du complément.
    Il faut donc partir d'une procédure présente dans la macro complémentaire qui elle pourra effectuer la copie d'une ou plusieurs feuilles
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  11. #11
    Membre éclairé
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Par défaut
    j'ai beaucoup cherché et grace a Mr Norman j'ai trouvé cette solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub test()
        ThisWorkbook.Sheets(1).Copy
        ActiveWorkbook.Sheets(1).Name = "GR"
    Run "Macro2"
    End Sub

  12. #12
    Invité
    Invité(e)
    Par défaut
    Effectivement, le chemin de l'enfer étant pavé de bonnes intentions il m'es impossible de trouver mieux!

  13. #13
    Membre éclairé
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Effectivement, le chemin de l'enfer étant pavé de bonnes intentions il m'es impossible de trouver mieux!
    merci

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Si il te faut intervenir sur toutes les machines pour autoriser l'utilisation du VBProject, pourquoi pas installer le xlam et prendre la solution de Philippe ou mon modèle xltm?

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

Discussions similaires

  1. [VBA] Module de classe et évènement
    Par Caroline1 dans le forum Access
    Réponses: 9
    Dernier message: 20/03/2013, 23h23
  2. [Module de classe] Fonction non liée à l'instance?
    Par Caroline1 dans le forum Access
    Réponses: 6
    Dernier message: 07/04/2006, 20h13
  3. Réponses: 4
    Dernier message: 31/03/2006, 15h16
  4. Réponses: 8
    Dernier message: 22/02/2006, 15h09
  5. variables publiques ou module de classe ?
    Par niclalex dans le forum Access
    Réponses: 3
    Dernier message: 04/10/2005, 18h49

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