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 :

Macros sur Plusieurs fichiers Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de Echizen1
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 44
    Points
    44
    Par défaut Macros sur Plusieurs fichiers Excel
    Salut,
    J'ai (encore) un petit problème.
    Je dispose de trois fichiers Excel : lancement.xls , AA1.xls et BB1.xls.
    Ils sont tous placés dans un même dossier, disons : "C:\TEMP\TOTO"

    Les fichiers AA1 et BB1 ne contiennent qu'un seul onglet (nommons-les : onglet_A pour AA1 et onglet_B pour BB1).

    Je souhaite qu'en appuyant sur un bouton (présent dans la feuille lancement),
    Il crée un nouveau classeur qui contiendra les onglets : onglet_A et onglet_B et qu'il sauvegarde le classeur sous le nom : fusion.xls.

    Comment faire ?

    J'ai ecrit un bout de code (mais je crée fusion.xls à la main et je mets pas le chemin "C:\TEMP\TOTO" en "macros variable pour pas répéter) en m'inspirant de plusieurs morceaux de la faq :

    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
    Private Sub CommandButton1_Click()
     
     
    Application.Workbooks.Open "C:\TEMP\TOTO\AA1.xls"
    Windows("AA1.xls").Activate
    Sheets("onglet_A").Select
    Sheets("onglet_A").Copy Before:=Workbooks("fusion.xls").Sheets(1)
     
     
    Application.Workbooks.Open "C:\TEMP\TOTO\AA1.xls"
    Windows("BB1.xls").Activate
    Sheets("onglet_B").Select
    Sheets("onglet_B").Copy Before:=Workbooks("fusion.xls").Sheets(1)
     
    Windows("fusion.xls").Activate
     
     
    End Sub

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Je ne suis pas certaine d'avoir bien compris ce que tu cherches à savoir... mais voici tout de même comment créer un nouveau classeur et l'enregistrer dans le dossier en cours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub ajoutClasseur(NomFichier As String)
        Workbooks.Add
        Workbooks(Workbooks.Count).SaveAs NomFichier
    End Sub
    Tu peux aussi éviter de sélectionner les objets, ce qui rend l'exécution du code plus directe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton1_Click()
    
    AjoutClasseur "fusion.xls"
    
    Application.Workbooks.Open "C:\TEMP\TOTO\AA1.xls"
    Windows("AA1.xls").Sheets("onglet_A").Copy Before:=Workbooks("fusion.xls").Sheets(1)
    
    Application.Workbooks.Open "C:\TEMP\TOTO\AA1.xls"
    Windows("BB1.xls")Sheets("onglet_B").Copy Before:=Workbooks("fusion.xls").Sheets(1)
    
    Windows("fusion.xls").Activate
    
    
    End Sub

  3. #3
    Membre du Club Avatar de Echizen1
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 44
    Points
    44
    Par défaut
    Merci pour cette réponse.

    en ne mettant pas le select, ça marche pas chez moi. donc je l'ai laissé.

    Voici ce que ça donne

    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
    33
    34
     
    'Creer un nouveau classeur
    Sub ajoutClasseur(NomFichier As String)
        Workbooks.Add
        Workbooks(Workbooks.Count).SaveAs NomFichier
    End Sub
     
     
    'fusion des onglets
    Private Sub CommandButton1_Click()
     
    ajoutClasseur "fusion.xls"
     
    Application.Workbooks.Open "C:\TEMP\TOTO\AA1.xls"
        Windows("AA1.xls").Activate
        Sheets("onglet_A").Select
        Sheets("onglet_A").Copy Before:=Workbooks("fusion.xls").Sheets(1)
     
    Application.Workbooks.Open "C:\TEMP\TOTO\BB1.xls"
        Windows("BB1.xls").Activate
        Sheets("onglet_B").Select
        Sheets("onglet_B").Copy Before:=Workbooks("fusion.xls").Sheets(1)
     
    Windows("fusion.xls").Activate
     
     
    Sheets("Feuil1").Select
    ActiveWindow.SelectedSheets.Delete
    Sheets("Feuil2").Select
    ActiveWindow.SelectedSheets.Delete
    Sheets("Feuil3").Select
    ActiveWindow.SelectedSheets.Delete
     
    End Sub
    Il me reste deux petits points noirs.
    - Est-il possible de créer une variable (chemin) qui contient : "C:\TEMP\TOTO" ? Comme ça je taperai : chemin\AA1.xls
    - Lors de la création du fichier fusion. On le sauvegarde. Est-il possible de le sauvegarder à un endroit précis ?


    Merci de vos réponses.

  4. #4
    Membre du Club Avatar de Echizen1
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 44
    Points
    44
    Par défaut
    Recoucou tlm,
    Rien à faire, je n'y arrive pas . J'ai quasiement tout essayé
    Help me

  5. #5
    Membre du Club Avatar de Echizen1
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 44
    Points
    44
    Par défaut
    Bonjour,
    Tout marche à merveille pour l'instant. Un grand merci à vous. C'est vraiment Génial.

    Je passe le topic en résolu. Super

+ 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. Réponses: 9
    Dernier message: 10/05/2007, 10h56

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