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 :

Copie de données dans TCD vers un autre classeur Excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Approvisionneur
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Approvisionneur
    Secteur : Transports

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Copie de données dans TCD vers un autre classeur Excel
    Bonjour à vous tous,

    j'ai passé ces derniers jours à parcourir vos réponses mais je n'arrive pas à écrire une macro me permettant de récuperer des données d'un TCD pour les copier dans une feuille Excel dans des zones bien précises
    Il faut dire que je n'ai que très peu de notions de VBA.
    Donc je vous appelle à l'aide, voici mon problème
    Le tableau Croisé
    Container Modele Qté
    x x x
    y y y
    y y
    y y
    z z z
    z z
    La donnée Nr de container x doit venir dans une zone A d'une feuille Excel, puis je dois copier toutes les lignes X du modèle dans une zone B et toutes les Qté x dans une zone C et ainsi de suite avec les autres containers, en sachant qu'à chaque changement de container, les données doivent être copiées dans une nouvelle feuille qui ont toutes le même format.
    Si quelqu'un veut bien me donner un peu de son temps pour m'aider à écrire cette procédure, ce serait super sympa.
    J'attends vos réponse avec impatience et merci d'avance

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 409
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 409
    Points : 16 250
    Points
    16 250
    Par défaut
    Bonjour

    Si tu places container en champ de page tu peux générer automatiquement d'un clic autant d'onglets avec un TCD que de containers, chaque TCD en affichant 1 différent.

    Si tu utilise l'enregistreur macro en le faisant tu auras le code.

    A l'avenir, essaie de joindre une copie d'écran ou au moins une exemple un minimum illustratif...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Candidat au Club
    Femme Profil pro
    Approvisionneur
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Approvisionneur
    Secteur : Transports

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Copie de données dans TCD vers un autre classeur Excel
    Bonjour Chris,

    merci beaucoup pour ta réponse rapide mais mon objectif est de transformer le TCD en des feuilles Excel simples (avec format prédéfini puisque je dois les envoyer à mon prestataire).
    Ci-joint les fichiers que j'utilise

    Stuffing plan 14210-667.xlsTest macro packing.xls
    Le stuffing plan est le TCD (tu l'avais deviné en l'ouvrant )
    et le test macro packing : le fichier dans lequel pour l'exemple suivant je devrais avoir 8 feuilles (une pour chaque container avec le contenu de chaque container)
    En espérant que ce sera plus clair pour toi...
    Merci encore

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 409
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 409
    Points : 16 250
    Points
    16 250
    Par défaut
    Re

    Ton exemple ne semble pas correspondre à tes explications : tu fais une somme en colonne D : n'est-ce pas celle qui devrait recevoir les quantités ?

    Tu utilises 2010, pourquoi un format xls qui n'offre pas les mêmes possibilités concernant les TCD que le format xlsx ?

    Dans la mesure où tu veux autant d'onglets que de containers, il faut dupliquer l'onglet : or il contient tous un tas de noms, associés essentiellement à des constantes dont je ne vois pas l'intérêt mais qui complique la duplication.

    Bref : un peu plus de rigueur dans l'exemple comme dans les explications permettrait d'avancer...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Candidat au Club
    Femme Profil pro
    Approvisionneur
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Approvisionneur
    Secteur : Transports

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour Chris,

    merci pour ta réponse. J'avais oublié de supprimer tous les noms liés au fichier Packing list CTNR et j'ai enregistré les fichiers en version xlsx.
    Je te les remets en pièce jointe
    Dans le module du fichier test macro packing, tu pourras voir le résultat de l'enregistreur de macro avec le report en colonne D des quantités.
    Mon besoin est également de pouvoir appliquer cette macro à d'autres fichiers en fonction des arrivées.
    N'hésites pas si je n'ai pas encore été assez claire.
    MerciStuffing plan 14210-667.xlsxTest macro packing.xlsm

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 409
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 409
    Points : 16 250
    Points
    16 250
    Par défaut
    Bonjour

    Avec 2010 tu peux simplifier ta formule en I8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(RECHERCHEV(A22;'T:\Temp\[Récap CTNR 2015.xlsm]Base articles'!A:D;4;0);"")
    Ne pas oublier le quatrième argument (tu ne l'avais pas mis dans le test) sinon tu auras un réponse aléatoire en cas de non existence de l'élément recherché mais jamais d'erreur

    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
    32
    33
    Sub pivolig()
     
    Dim sh As Worksheet, pvt As PivotTable, pvtFld As PivotField, i As Long, sel As Variant
     
    Dim PvIt As PivotItem
     
        Set Entree = ThisWorkbook
        Entree.Worksheets("Packing list CTNR").Activate
     
        NomFichierSortie = Application.GetOpenFilename("Fichier Excel (*.xls*), *.xsl*")
        Set Sortie = Workbooks.Open(NomFichierSortie)
     
        Set pvt = Sortie.Worksheets("Sheet2").PivotTables("plan")
        Set pvtFld = pvt.PivotFields("Actual Container")
     
            For j = 1 To pvtFld.PivotItems.Count
                Entree.Sheets("Packing list CTNR").Copy After:=Entree.Sheets(1)
                Set sh = ActiveSheet
     
     '      Copies des cellules de la feuille d'entrée vers la feuille de sortie
             sh.Cells(14, 3) = pvtFld.PivotItems(j).Caption
             pvtFld.PivotItems(j).LabelRange.Offset(0, 1).Copy
             sh.Cells(22, 1).PasteSpecial xlPasteValues
             pvtFld.PivotItems(j).LabelRange.Offset(0, 2).Copy
             sh.Cells(22, 4).PasteSpecial xlPasteValues
     
              'Nommage onglet     
             sh.Name = pvtFld.PivotItems(j).Caption
            Next
     
            Sortie.Close
     
    End Sub
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  7. #7
    Candidat au Club
    Femme Profil pro
    Approvisionneur
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Approvisionneur
    Secteur : Transports

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Wouah, je suis bluffée, il y a juste un petit souci sur les containers avec plusieurs articles ou on ne voyait apparaître que le premier article. Mais en modifiant, l'affichage du TCD avec répétition des étiquettes de ligne, le problème est réglé.
    Enfin plus de Ctrl C Ctrl .......
    Encore un grand merci!!! et la discussion est résolue pour moi

  8. #8
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 409
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 409
    Points : 16 250
    Points
    16 250
    Par défaut
    Re

    Arf j'avais oublié de le dire : c'est ce à quoi je faisais allusion dans mon post #4 en parlant des possibilités de 2010.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

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

Discussions similaires

  1. [XL-2007] Transfert Userform vers un autre classeur Excel
    Par Assonou dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/10/2012, 03h22
  2. Copier un onglet vers un autre classeur excel
    Par saigon dans le forum VBScript
    Réponses: 0
    Dernier message: 16/10/2012, 11h22
  3. [XL-2003] Copié des données dans une feuille vers une autre
    Par guillaumepops dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/03/2012, 15h43
  4. [XL-2007] exporter les une ligne excel vers un autre classeur excel en vba
    Par Maxim0 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/06/2011, 21h55
  5. [XL-2007] exporter les donnée excel vers un autre classeur excel en vba
    Par aminee1666 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/06/2011, 10h58

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