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 :

Ecrire dans un nouveau classeur apres l'avoir créé en macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 28
    Points : 14
    Points
    14
    Par défaut Ecrire dans un nouveau classeur apres l'avoir créé en macro
    Bonjour à tous,

    J'ai un petit soucis pour la création de macro...
    Je dois, à partir d'un fichier excel, créer un nouveau classeur en fonction du nom de la personne (un classeur par nom de personne).
    Dans ce classeur, il faut que j'ajoute un "header" avec toujours les mêmes noms de colonnes. Par exemple pour la première colonne : colonne1
    Je dois ensuite copier des données du classeur de base ou est enregistré ma macro à ces classeurs.

    Pour le moment, j'en suis à la première étape : création d'un fichier : c'est ok grâce à ce code trouvé sur internet.
    Je n'ai pas encore pu faire le tri en fonction des noms de la personne mais je suppose que ça sera quelque chose comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each nompersonne 
    --- code ci dessous ---
    end foreach
    Donc voici ce code :

    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
    Sub AddNewWorkbook()
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    OutputRow = 1
    InputRow = 2
     
        'On créer l'objet Excel
        Set xlApp = CreateObject("Excel.Application")
        'On défini le nombre d'onglets (ici 1)
        xlApp.SheetsInNewWorkbook = 1
        'On ajoute un classeur
        Set xlBook = xlApp.Workbooks.Add
        'On donne un nom au classeur
        xlBook.SaveAs ("C:\Desktop\test_macro\customer-1.xls")
        'On rend le classeur visible
        xlApp.Visible = True
        'On créer l'objet onglet dans le nouveau classeur créé
        Set xlSheet = xlBook.Worksheets(1)
        'On affecte un nom aux l'onglets
        xlSheet.Name = "export-YREB"
        'ajout des noms de ligne
         Sheet1.Activate
     
        'affichage lignes des noms des champs des onglets
        Sheet1.Cells(1, 3) = "colonne1"
     
        'On ferme l'application
        xlApp.Quit
     
    End Sub
    Mon problème est pour la création du header. J'ai ajouté une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     'affichage lignes des noms des champs des onglets
        Sheet1.Cells(1, 3) = "colonne1"
    En pensant que ça pourrait fonctionner mais non...

    Deuxième question, comme "écrire" le fait de copier une donnée du classeur A, vers le classeur B?

    Si quelqu'un peut m'aider...
    Merci d'avance!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Perso je'utiliserai un modèle tu pourrais ainsi garde ta mise en page et ton colonage.

    tu ouvre un fichier vierge (avec le format et le colonage qui va bien) et tu l'enregistre sous un type modèle!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim xlBook as Workbook
    set  xlBook = xlApp.Workbooks.Add("C:\Model.XLT")
    xlBook.SaveAs "C:\Desktop\test_macro\" & environ("userName") & ".xls"
    Dernière modification par Invité ; 18/05/2015 à 13h32.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Merci pour ta réponse!

    Mais est-ce que grâce à ce modèle, je pourrais en créer un en fonction de chaque personne? et ainsi importer toutes les données en fonction de chaque personne? de façon le plus automatisé possible?
    Car le fichier de base n'est pas le même, il faudra que je replace au bon endroit dans le nouveau fichier les données au moment de la copie.
    Le plus beau serait juste de lancer la macro et que ça créé les classeurs en fonction de chaque personne... est-ce possible?

  4. #4
    Invité
    Invité(e)
    Par défaut
    oui bien sur!

    j'ai imaginé que l'utilisateur environ("userName") exécutait lui même la macro mais si tu veux exporter en fonction d'une liste d'utilisateurs défini dans ton fichier excel tu peux utiliser un filtre élaboré pour exporter tes donnée si c'est bien ça que tu veux faire!

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Oui c'est bien ce que je veux faire! Je n'avais pas vu les choses comme ça, il faut que j'essaye

    Pour le filtre, on le fait dans la macro?

    J'ai oublié de préciser que je ne connais rien en développement et que je me sers seulement du code trouvé sur internet

Discussions similaires

  1. [VBA][Excel]Copier une feuille dans un nouveau classeur
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2020, 13h51
  2. Réponses: 0
    Dernier message: 28/09/2011, 18h32
  3. [XL-2007] classeur fermé => ecrire dans un nouveau classeur
    Par re dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/08/2009, 10h07
  4. Copies de feuilles dans un nouveau classeur
    Par malkkom dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/09/2007, 11h45
  5. [VBA-E] Copie par valeur d'une feuille dans un nouveau classeur
    Par MatMeuh dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/05/2006, 23h38

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