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 :

Copier une feuille d'un classeur existant sur un nouveau classeur avec vba


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Copier une feuille d'un classeur existant sur un nouveau classeur avec vba
    Bonjour,

    Je travaille sur la réalisation d'un quiz en vba. Lorsqu'une personne s'inscrit à l'examen, un nouveau classeur doit s'ouvrir lorsqu'il rentre son numéro d'étudiant.
    S'il rentre un numéro incorrect, un message d'erreur s'affiche.
    Voici le code pour la création du nouveau classeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ' Si le numéro étudiant est valide, on crée un nouveau classeur
    ' On fait figurer le numéro étudiant dans le nom du classeur
     
    If NoExiste = True Then
    NomFichier = NoEtudiant & "_MatriceEtudiant.xls"
    Set xlApp = CreateObject("Excel.Application")
        Set wb = xlApp.Workbooks.Add
        wb.SaveAs (NomFichier)
        xlApp.Visible = False
    Else: MsgBox ("Votre numéro est incorrect")
     
    End If
    Mon problème est que pour le transfert des résultats, je souhaite copier une feuille d'un classeur existant dans le nouveau classeur généré par l'inscription de l'étudiant. Voici le code (mais il ne fonctionne pas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set MatriceEtudiant = ActiveWorkbook
    ActiveWorkbook.Worksheets("Donnees").Select
    Worksheets("Donnees").Copy After:=Workbooks(NomFichier).Sheets(2)
    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonjour,

    Tu dis être sous excel mais alors pourquoi ouvrir une 2° application excel ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set xlApp = CreateObject("Excel.Application")

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Effectivement la question d’instancier un nouvel Excel me semble inutile. De plus pourquoi instancier des objets Workbook Si tu ne les utilise pas ?
    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
    ' Si le numéro étudiant est valide, on crée un nouveau classeur
    ' On fait figurer le numéro étudiant dans le nom du classeur
     Dim ActClasseur As Workbook
     Dim NewClasseur As Workbook
    If NoExiste = True Then
    NomFichier = NoEtudiant & "_MatriceEtudiant.xls"
    Set ActClasseur = ActiveWorkbook
    'Set xlApp = CreateObject("Excel.Application")
        Set NewClasseur = Application.Workbooks.Add
       ActClasseur.Worksheets("Donnees").Copy After:=NewClasseur.Sheets(2)
     
        NewClasseur.SaveAs (NomFichier)
        NewClasseur.Close
    '    xlApp.Visible = False
    Else: MsgBox ("Votre numéro est incorrect")
     
    End If

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    pour créer ton nouveau classeur avec ta feuille tu peux faire simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Donnees").Copy
    eric

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. [XL-2003] copier une feuille sur un classeur fermé
    Par zangaloni dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/01/2012, 20h23
  3. Réponses: 3
    Dernier message: 20/08/2008, 16h29
  4. je veu copier une feuille d'un classeur et il affiche erreur 424
    Par booskap dans le forum Macros et VBA Excel
    Réponses: 58
    Dernier message: 26/07/2007, 10h31
  5. [VBA-E] Copier une feuille d'un fichier 1 sur un fichier 2
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/03/2007, 17h47

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