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 vers un autre classeur dont le nom change


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Points : 28
    Points
    28
    Par défaut Copier une feuille vers un autre classeur dont le nom change
    Bonjour,
    J'ai un petit probleme que je n'arrive pas a resoudre

    A partir d'un classeur Nommer "A" par example contenant plusieurs feuilles

    Je crée un nouveau classeur avec le code suivant:
    Dans le module 1
    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
    Sub creation_nouvelle_gamme_contrat()
    '
    ' creation_nouvelle_gamme_contrat Macro
    '
     
    Dim classeur As Workbook
    Dim WB2 As Workbook
     
     
    nom = InputBox("Entrer le nom du Contrat", "Créatio du fichier")
    Set classeur = Application.Workbooks.Add
     
    With classeur
    ChDir "G:\GAMME DE MAINTENANCE 2013"
    ActiveWorkbook.SaveAs Filename:=nom
    End With
    Set WB2 = ActiveWorkbook
    Windows("Biblioteque Gammes de maintenance 2013.xls").Activate
    WB2.Activate
    End Sub
    Dans un second temps ,je sélectionné une feuille dans le classeur"A" avec le code suivant:
    Dans le module 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub SELECTIONDELAFEUILLE()
     
    On Error Resume Next
     
    nom = SELECTION.Value
    Sheets(nom).Activate
     
    On Error GoTo 0
     
    End Sub
    Maintenant, je voudrais faire une copie de la feuille selectionné vers le classeur cree avec le premier code en passant par la variable qui a servi
    a le nommé
    voici mon problème

    Merci de votre aide

    Jimmy

    Jimmy

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Le plus simple serait d'enregistrer le classeur créé.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par Daniel.C Voir le message
    Bonjour,

    Le plus simple serait d'enregistrer le classeur créé.
    je ne comprend pas ta reponse ?

    le classeur cree est est enregistré,je le retrouve bien dans le dossier

    Tu peu m'expliquer stp ?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Au temps pour moi. Tu déclares WB2 en tête d'un module standard :

    et tu copies la feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(nom).Copy After:=WB2.Sheets(WB2.Sheets.Count)
    (syntaxe pour la copier en dernière position.)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    Toujours quelque probleme

    Je te joint le fichier qui me sert de test ,pourrait tu me dirte ce que je fait de travers

    Merci beaucoup
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    "Nom" doit être déclarée comme "string" et non comme "workbook", puisque tu t'en sers pour nommer le classeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:=Nom
    ensuite, tu reprends "nom" en tant que nom de feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(Nom).Copy After:=WB2.Sheets(WB2.Sheets.Count)
    Est-ce que ça ne devrait pas être plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(nomfeuille).Copy After:=WB2.Sheets(WB2.Sheets.Count)

  7. #7
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub creation_nouvelle_gamme_contrat()
    Dim classeur As Workbook
    Dim ClasseurMyApplication As Workbook
    Dim NewClasseur As Workbook
    Set ClasseurMyApplication = ActiveWorkbook
    nom = InputBox("Entrer le nom du Contrat", "Créatio du fichier")
    Set NewClasseur = Application.Workbooks.Add
     
    Dim S As Integer
    For S = 1 To ClasseurMyApplication.Sheets.Count
        ClasseurMyApplication.Sheets(S).Copy After:=NewClasseur.Sheets(NewClasseur.Sheets.Count)
    Next
    NewClasseur.SaveAs Filename:="G:\GAMME DE MAINTENANCE 2013\" & nom
    End Sub

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    merci de ton aide,par contre j"aimerais exécuter les choses en deux fois ,je m'explique.
    1 - Avec le bouton Nouveau classeur je crée le nouveau classeur:
    2 - Avec le bouton Nouvelle Gamme je voudrais et c'est la ou je seche copier une feuille et que la feuille a copier dans le nouveau classeur soit celle choisis dans la colonne A, par example ci je suis positionner sur la cellule contenant le mot feuill2 je voudrais que ce soit Feuil2 qui soit copier et coller dans le nouveau classeur .

    Merci d'avance pour toute cette aide, car je quitte la Macro 4.0 pour la VBA, et le changement est rude.

  9. #9
    Invité
    Invité(e)
    Par défaut Bonjour,
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     Public NomNewFichier As String
    Sub creation_nouvelle_gamme_contrat()
    Dim NewClasseur As Workbook
    NomNewFichier = ""
    NomNewFichier = InputBox("Entrer le nom du Contrat", "Créatio du fichier")
     
    If NomNewFichier = "" Then Exit Sub
    NomNewFichier = "G:\GAMME DE MAINTENANCE 2013\" & NomNewFichier & ".xls"
    If Fichier_Exist(NomNewFichier) = True Then
        If MsgBox("Ce fichier existe voulez vous le supprimer", vbQuestion + vbYesNo) = vbYes Then
            Kill NomNewFichier
        Else
            Exit Sub
        End If
    End If
    Set NewClasseur = Application.Workbooks.Add
     
    'Dim S As Integer
    'For S = 1 To ClasseurMyApplication.Sheets.Count
    '    ClasseurMyApplication.Sheets(S).Copy After:=NewClasseur.Sheets(NewClasseur.Sheets.Count)
    'Next
    NewClasseur.SaveAs NomNewFichier
    NewClasseur.Close
    Set NewClasseur = Nothing
    End Sub
     
    Sub SELECTIONDELAFEUILLE()
    CopyFeeuille Sheets(Selection.Value)
    End Sub
    Sub CopyFeeuille(Feuille As Worksheet)
    Dim Classeur As Workbook
    If NomNewFichier = "" Then
        MsgBox "Le nom du fichiern'a pas été renseigné", vbCritical
    Exit Sub
    End If
    If Fichier_Exist(NomNewFichier) = False Then
        MsgBox "Fichier introuvable"
    Exit sub
    End If
    Set Classeur = Workbooks.Open(NomNewFichier)
    Feuille.Copy After:=Classeur.Sheets(Classeur.Sheets.Count)
    Classeur.Save
    Classeur.Close
    Set Classeur = Nothing
    End Sub
    'Vérifie lexistance d'un   fichier
     Function Fichier_Exist(Fichier As String)
    Dim Fso As Object
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Fichier_Exist = Fso.FileExists(Fichier)
    Set Fso = Nothing
    End Function
    évites les On Error resume next ça demande à VB ne ne pas ternir compte des erreur.
    dans l'état actuel des chose je ne pense pas que tu sois capable de le gérer.
    réserves le pour des cas il peut y avoir de problème d'environnements (Serveur inaccessible, coupure réseau), indépendant de toute volonté.
    pour le reste fais des testes comme je l'ai fait dans mes macros.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    Bonsoir, et tout d'abord un grand merci pour ce code qui m"a fait comprendre pas mal de chose notamment sur la déclaration de la variable en public.
    je travaille depuis tout a l"heure sur la deuxième partie du code et quand j’exécute il me renvoie systématiquement le msgbox suivant:

    Le nom du fichiern'a pas été renseigné

    mais je ne comprend pas ce que gere cette partie du code, de quel fichier s'agit il ?

    a savoir que le fichier crée peut rester ouvert après création , pour ça je pense que je doit supprimer l'instruction NewClasseur.Close tout simplement, sans que ça interfère sur le reste du code.
    je joint le classeur au cas ou tu voudrais faire une simulation


    Merci encore de toute l'aide que tu m'apporte

    Cordialement Jimmy
    Fichiers attachés Fichiers attachés

  11. #11
    Invité
    Invité(e)
    Par défaut
    ça marche très bien, si je referme le fichier c'est pour ne pas avoir de conflit avec les selection.value du classeur ou ce trouve la macro mais ma macro CopyFeeuille ré-ouvre le fichier copie la feuille dans le classeur et le referme la variable public NomNewFichier contient le nom complet du fichier.

    j'ai fait des test et c'est OK.
    Fichiers attachés Fichiers attachés
    Dernière modification par Invité ; 08/09/2013 à 00h15.

  12. #12
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    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 : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Plutôt que de créer un nouveau classeur par la méthode Add de la collection Workbooks, de sauver ce nouveau classeur sous un nom et d'ensuite copier une feuille vers ce nouveau classeur.
    Il est plus simple de copier directement la feuille vers un nouveau classeur, et de sauver ce nouveau classeur.
    Exemple 1 : Copie de la feuille nommée [db] vers un nouveau classeur et sauver celui-ci sous le nom contenu dans la variable FileName dans le répertoire du classeur contenant le code VBA (ThisWorkbook)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ThisWorkbook
     .Worksheets("db").Copy
     ActiveWorkbook.SaveAs .Path & "\" & FileName
    End With
    Exemple 2 : Copie de deux feuilles nommées respectivement [db] et [Synthèse] vers un nouveau classeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ThisWorkbook
     .Sheets(Array("db", "Synthèse")).Copy
     ActiveWorkbook.SaveAs .Path & "\" & FileName
    End With

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    ça marche très bien, si je referme le fichier c'est pour ne pas avoir de conflit avec les selection.value du classeur ou ce trouve la macro mais ma macro CopyFeeuille ré-ouvre le fichier copie la feuille dans le classeur et le referme la variable public NomNewFichier contient le nom complet du fichier.

    j'ai fait des test et c'est OK.
    Bonjour,
    oui effectivement ça marche super bien ! , en réalité le problème viens de mon application Excel, si je lance directement mon fichiers a partir de l'explorer j'ai le problème ,par contre si je le lance a partir de Ms Excel tout va bien, je vais désinstaller et refaire l'installe pour essayer de corriger cette anomalie.

    En attendant mille merci ,j'ai vraiment apprécié cette aide.
    de plus je après avoir décortiqué chaque ligne de tes codes je commence a y voir un peu plus claire tout en pouvant avancé dans ce projet .

    Un grand merci encore une fois du temps que tu bien voulu prendre pour m'aider.

    Jimmy

  14. #14
    Invité
    Invité(e)
    Par défaut Bonjour, Philippe
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Plutôt que de créer un nouveau classeur par la méthode Add de la collection Workbooks, de sauver ce nouveau classeur sous un nom et d'ensuite copier une feuille vers ce nouveau classeur.
    Il est plus simple de copier directement la feuille vers un nouveau classeur, et de sauver ce nouveau classeur.
    Exemple 1 : Copie de la feuille nommée [db] vers un nouveau classeur et sauver celui-ci sous le nom contenu dans la variable FileName dans le répertoire du classeur contenant le code VBA (ThisWorkbook)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ThisWorkbook
     .Worksheets("db").Copy
     ActiveWorkbook.SaveAs .Path & "\" & FileName
    End With
    Exemple 2 : Copie de deux feuilles nommées respectivement [dle ] et [Synthèse] vers un nouveau classeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ThisWorkbook
     .Sheets(Array("db", "Synthèse")).Copy
     ActiveWorkbook.SaveAs .Path & "\" & FileName
    End With
    ton raisonnement me parait tout à fait pertinent.
    c'est juste le concept de notre ami qui m'a pousser vers ce raisonnement.
    un bouton pour créer un ficher et un bouton pour copier coller.
    si j'ajoute 50 fichier je me retrouve avec 50 ouverts, don 1 seule pour le copier coller?
    si le traitement ce faisait sur la création du fichier (Créer, copier coller, refermer) je serrais en accord total avec toi.
    la vision du traitement, de notre amis, me parait un peut bizarre

  15. #15
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    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 : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour Robert,
    Mon intervention ne visait en aucune manière une réponse particulière mais en parcourant en vitesse l'ensemble des interventions, j'ai constaté que l'on était resté dans la même approche que l'initiateur de ce fil.
    Je me suis dit qu'il n'était pas inintéressant de rappeler cette possibilité qu'offre la copie ou le transfert d'une ou plusieurs feuilles d'un classeur vers un nouveau classeur.
    Possibilité souvent inconnue de l'utilisateur d'excel qui a tendance à passer par le classique Copier/Coller ou Coupe/Coller.
    Il m'arrive souvent de reprendre également l'idée initiale de la personne posant une question en n'ayant pas le réflexe de montrer la meilleure voie à prendre.

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    Bonjour A vous deux,
    Si je comprend votre discution, ma façon d'aborder ce projet vous semble quelque peu illogique d'un point de vue VBA.
    En faite j'ai surtout envisagé la chose par rapport a mon peu de connaissance en VBA.

    Cependant je ne vois pas comment faire autrement.
    Je vais essayer de poser mon projet d'une autre manière en expliquant quel sont mes impératifs.

    A parti d'un classeur contenant un nombre très importants de feuille contenant des tableaux de prestation servant a établir des propositions de contrat je doit:

    1 - crée un classeur portant le nom d'un client
    2 - avoir la possibilité d'obtenir un aperçu des différentes feuille de prestation avant leur éventuel sélection afin d'en vérifier en détail leur contenu.
    3 - sélectionner un certain nombre de ces feuilles de prestation (en fonction de la proposition à faire au client) en les sélectionnant en une ou plusieurs fois si possible par le biais d'un liste contenu dans une colonne,avec par la suite la possibilité d'en ajouter.
    4 - Garder le classeur ouvert si possible a la fin des différentes copie de feuille.
    5 - définir une mise en page commune a toute les feuilles copier afin d’évité d'avoir a la faire feuille par feuille au moment de l'impression du classeur crée.

    Vola une partie du projet , dite moi si il a plus simple d'aborder ou d'organiser ce projet je suis preneur d'avis quel-qu’il soit afin que j’apprenne aussi a bien ficeler des le départ mes projets.


    Merci pour l'aide que vous m'apporterez

    Jimmy

  17. #17
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    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 : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si je comprend votre discution, ma façon d'aborder ce projet vous semble quelque peu illogique d'un point de vue VBA.
    En faite j'ai surtout envisagé la chose par rapport a mon peu de connaissance en VBA.
    Souvent il ne s'agit même pas d'une méconnaissance du VBA mais tout simplement des possibilités qu'offre excel au travers de ces outils.
    Pour revenir à ton problème. Je ne sais pas comment sont organisées tes données mais tu évoques des feuilles de prestations.
    Il faudrait voir s'il ne serait pas possibles de revoir la manière de gérer ces données en rassemblant toutes les prestations dans une seule feuille tous clients et prestations
    mélangés.
    Si c'est possible, un filtre avancé permettrait d'exporter les données suivant un ou plusieurs critères vers une feuille d'exportation et ensuite de copier cette feuille vers un nouveau classeur en le nommant du nom du client ou même du nom du client associé au mois en cours etc...
    Avec des données organisées comme des tables dans Access on finit par réduire le code VBA à quelques lignes. La priorité est de bien penser à cela avant de commencer à travailler.
    Pour ce qui est de la mise en page commune de feuille. Il est possible de créer une feuille qui serait un modèle où l'exportation pourrait avoir lieu.
    Ce modèle pourrait utiliser les paramètres prévus à cet effet (Nom du classeur, de la feuille etc...).

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    Bonsoir,
    Je comprend mieux votre point de vue ,en faite on a tendance a exagérer le code VBA pour faire des choses que l'on pourrais effectuer par les fonctions première d'Excel.

    Par contre pour ce qui est des feuilles de prestation a copier elle doive rester indépendante les une des autre dans le classeur crée pour le client car un autre logiciel récupère les informations de celle ci par la suite et donc fixe l'organisation de celle ci.

    Jimmy

  19. #19
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    souvent, les débutants VBA on la fâcheuse tendance à vouloir effectuer des programmes VB au dessus de leurs force et le vieux briscards se trouvent dans l’obligation de réfréner leurs ardeurs.

    ici c'est pas le cas. ton premier poste donnait l'impression que tu t’intéressais au sujet mais sans projet précis. ce qui dans la suite grâce au poste de Philippe, qui a orienté le débat sur une autre Niveau, montrait que ce n'était pas le cas.

    le problème qui nous occupe ici ce n'est pas VB, mais le résonnement. Ta demande revient à faire une macro qui exécute ce que l’utilisateur aurait tout aussi vite fait de faire à la main.
    créer un classeur copier une feuille et la coller sur le nouveau classeur.

    si je fais un click droit sur un onglet je peux demander à Excel de déplace coller dans un nouveau classeur.

    vb est inintéressant quand il apporte une plus-value (un gain de temps)

    je comprends bien que ton fichier puisse contenir un certain nombre de modèles sou forme d'onglets, mai autant utiliser un UserForm ou tu saisirais le nom de ton fichier et ou tu sélectionnerais un ou plusieurs onglet dans une liste à multi sélection. ainsi tu générerais ton fichier et ses onglets associés en une seule opération.

    bien sur tu ne connais pas bien Vb et nous sommes là pour t’aiguiller, mais pour définir ce que tu veux exactement faire, il n'y a que toi.

Discussions similaires

  1. [XL-2000] Erreur lors de la copie d'une feuille vers un autre classeur qui vient d'être créé
    Par Hankow dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/04/2015, 09h10
  2. [XL-2002] Macro pour copier une feuille dans un autre classeur
    Par JBeaunez dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/02/2012, 21h46
  3. [XL-2003] Copier une feuille dans un autre classeur
    Par mistermail dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/10/2009, 18h06
  4. Copie d'une feuille vers un autre classeur
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/10/2008, 16h08
  5. [VBA]comment copier une ligne vers un autre classeur
    Par iboulaye1980 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/05/2007, 18h22

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