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 :

Envoyer des feuilles à nom variables vers un nouveau classeur à nom variable


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2013
    Messages : 25
    Points : 18
    Points
    18
    Par défaut Envoyer des feuilles à nom variables vers un nouveau classeur à nom variable
    Bonjour à tous,

    Je suis à la recherche d'un morceau de code qui me permettrait d'envoyer des onglets portant des nom variables (mais dont l'index ne change pas) vers un nouveau classeur que je génère juste avant et que je choisi d'enregistrer qu'à la fin de ma procédure.
    Voici pour le moment ce que j'ai pu écrire mais cela ne fonctionne 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
    Sub enregistrezsous2()
     
    Dim Outilstats As ThisWorkbook 'j'enregistre dans ma macro que mon classeur de travail est celui ci
    Dim Nomfichier As String
    Nomfichier = Sheets("Accueil").Range("Z6").Value 'recupere la valeur d'une cellule de mon classeur de travail
    Workbooks.Add 'je crée un nouveau classeur qui va recevoir les onglets de mon classeur de travail
    If ThisWorkbook.Name Like "Classeur*" Then
     
    Workbooks(Outilstats).Sheets(3).Copy before:=Workbooks("classeur*").Sheets(1)
    Workbooks(Outilstats).Sheets(4).Copy before:=Workbooks("classeur*").Sheets(2)
    Application.Dialogs(xlDialogSaveAs).Show arg1:="c:\" & Nomfichier
    End If
     
    End Sub
    Si vous avez une solution je suis preneur, Merci !!

    François

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Plutôt quelque chose comme ceci (sans tester...) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Outilstats As Workbook 
    Dim Classeur As Workbook 
     
    Set Outilstats = ThisWorkbook
     
    Workbooks.Add 
    Set Classeur = ActiveWorkbook
    Outilstats.Sheets(3).Copy before:=Classeur.Sheets(1)
    ...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2013
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup pour ton aide parmi,

    La macro fonctionne (pas d'erreurs), Mais Excel crée deux nouveaux classeurs, et ne déplace pas les feuilles du classeur de travail. Bizarrement lorsque j'essaye avec d'autres feuilles que la 3 et la 4 cela fonctionne ... tu aurais une idée ?

    Je mets mon fichier en pièce jointe pour que ce soit plus facile à visualiser
    (sub enregistrezsous module SaveAs)

    François
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Je t'ai induit un peu en erreur avec mes Workbooks... désolé...

    Voici un bout de code un peu plus simple et plus court
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub enregistrezsous()
        Dim Nomfichier As String
     
        Nomfichier = Sheets("Accueil").Range("Z6").Value
     
        'Cette ligne va créer le nouveau fichier qui devient ActiveWorkbook
        'en même temps qu'elle copie les 2 onglets mentionnés
        Sheets(Array("Données du 23-10-2013", "TCD 23-10-2013")).Copy
     
        ActiveWorkbook.SaveAs "c:\" & Nomfichier
        ActiveWorkbook.Close False
     
    End Sub

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2013
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup de ta réponse parmi,

    Le code marche impeccable, j'ai juste changé les nom des feuilles dans le code par deux variables déclarées en fonction de la valeur de cellule pour qu'à chaque fois que le nom de des feuilles copiées change cela soit pris en compte !

    Super, merci pour ton aide précieuse !!

    François

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

Discussions similaires

  1. [XL-2010] extraire des feuilles vers un nouveau classeur
    Par Valentino46 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/12/2012, 10h35
  2. [XL-2003] Copier des onglets vers nouveau classeur avec Variable
    Par xbb12 dans le forum Excel
    Réponses: 2
    Dernier message: 24/03/2010, 16h26
  3. Copier feuille vers un nouveau classeur
    Par fred792 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/10/2008, 10h23
  4. Envoyer des informations en POST vers une url en vb6
    Par bugz57 dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 18/06/2008, 08h59
  5. envoyer des informations du controleur vers la vue
    Par leon1983 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/05/2008, 15h36

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