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 :

Automatiser un tableau par macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 42
    Par défaut Automatiser un tableau par macro
    Bonjour à tous et à toutes.

    Je créer ce sujet afin de pouvoir bénéficier de votre aide concernant l'automatisation d'un tableau. Je réalise ce tableau chaque semaine sur un nouveau fichier mais la structure reste la même (seul les données changent). J'ai déjà réussi à effectuer la macro qui consiste à copier le tableau du fichier précédent sur une nouvelle feuille.

    Il me reste donc à compléter (automatiquement) ce tableau. Pour compléter ce tableau je dois récupérer pour chaque ligne la valeur correspondante à un tcd d'un autre onglet. Je dois également récupérer les valeurs de plusieurs feuilles mais selon certains critères c'est à dire en appliquant un filtre.


    Je ne sais pas si je me fais bien comprendre mais je recherche des procédures qui retourne la valeur à partir d'un tcd, et à partir d'un filtre qu'on applique à certaines feuilles.


    Merci pour votre aide

  2. #2
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Citation Envoyé par frutz Voir le message
    Bonjour à tous et à toutes.
    ... J'ai déjà réussi à effectuer la macro qui consiste à copier le tableau du fichier précédent sur une nouvelle feuille...
    Tu nous montres ce que tu as déjà fait ?

    Je pense que tu auras plus d'aides avec plus de détail sur tu tableaux (ils sont fait comment)

    A+

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 42
    Par défaut
    Merci igloobel pour ta réponse. Voici le code que j'ai réalisé pour copier le tableau précédent.


    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
     
    Sub test()
    'Cet macro va copier le tableau Recap sur la feuille active.
    Dim wkA As Workbook, wkB As Workbook
    Dim chemin As String, fichier As String
     
    'classeur A qui contient la macro
    Set wkA = ThisWorkbook
     
    'chemin ou se trouve le fichier B
    chemin = "U:\Mes documents\"
     
    'nom du fichier B
    fichier = "L1.xls"
     
    'ouvre le fichier B
    Workbooks.Open chemin & fichier
     
    'met en variable le classeur B
    Set wkB = ActiveWorkbook
     
    wkB.Sheets("Recap").Copy After:=wkA.Sheets("Clubs")
     
    MsgBox ("La feuille est maintenant copiée") 'message pour dire que la feuille est copiée.
     
    wkB.Close True 'ferme et enregistre le classeur B
     
    End Sub

    C'est la première étape que je cherche à faire la suite serait donc à partir de ce tableau copier, pouvoir l'automatiser après sa copie.

    Je vous joins un exemple fictif d'un fichier qui reprend la même manip à effectuer, je pense que ma demande sera plus claire.


    Merci à vous.
    Fichiers attachés Fichiers attachés
    • Type de fichier : xls L1.xls (32,5 Ko, 77 affichages)

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 42
    Par défaut
    C'est de nouveau moi, j'ai toujours pas réussi à trouver le code pour automatiser mon tableau, je reviens vers vous pour essayer d'obtenir une aide.

    Peut-être qu'en passant par une recherche v, ça marcherait pour remplir la première colonne ) partir du TCD.


    Au plaisir de vous lire.

  5. #5
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    bonjour,
    grace a ton fichier j'ai un peu mieux compris ce que tu veux (enfin je pense)

    il me semble qu'il y a un défaut de conception dans tes tableaux. dans ton onglet carton rouge tu affecte une date a un club je pense que tu devrais affecter cette date au joueur (celui qui a un carton rouge pas à l'équipe)

    du coup tu te retrouves avec un seul tableau: equipe - joueur - date et c'est un jeu d'enfant de faire un seul TCD qui contient tout.

    De plus au niveau maintenance tu n'a juste qu'a rajouter un nouveau joueur qui a un carton rouge et d'actualiser !

    tu dis

    A+

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 42
    Par défaut
    Merci pour ce retour Igloobel,
    l'exemple que j'ai fourni est fictif est n'a pas de sens. Dans mon véritable fichier il y a pas des onglets différents qu'on ne peut pas regrouper dans le tcd. Ce que j'essaie de faire c'est de trouver deux procédures pour compléter ces deux colonnes. L'une se fait à partir d'un tcd et l'autre à partir d'un onglet auquel on applique un filtre.

    J'ai commencé ce petit bout de code pour compléter à partir d'une tcd, ça marche pour la première valeure mais ensuite ça coince.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Macro_tableau()
        Range("C4:E10").Select
        Selection.ClearContents
          Dim Pvt As PivotTable
     
        ' Définit le TCD dans la feuille
         Set Pvt = Worksheets("Tcd").PivotTables("Tableau croisé dynamique1")
        'Renvoie la valeur 'Nombre de joueur', pour le champ 'reference' Lyon
          Var1 = Pvt.GetData("'Nombre de JOUEURS' 'Equipe' 'Lyon' ")
          Worksheets("Tableau").Range("C6").Value = Var1
    End Sub

    Et donc lorsque je déclare plusieurs variables, ça pose problème. Aurais-tu une idée ?


    Au plaisir de te lire !

  7. #7
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    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 564
    Par défaut
    Bonjour

    Sur l'exemple fictif, il suffit d'ajouter une colonne dans l'onglet Cartons rouges pour récupérer par formule (NB.SI) le nombre de joueurs se trouvant dans l'onglet Clubs.
    Reste plus qu'à faire le TCD qui donnera les 2 infos.

    Maintenant si ton cas réel est différent de ton cas fictif, je ne vois comment on peut te donner une solution.

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 42
    Par défaut
    Merci chris pour ta réponse. Les deux colonnes de mon tableau ne sont pas directement liées dans mon véritable fichier, c'est pour cela que je ne peux pas faire directement à partir du TCD.


    Dans mon exemple la méthode serait de remplir la deuxième colonne comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    D6 =NB.SI('Cartons rouge'!A2:A28;"Lyon")
    comme je connais pas trop la syntaxe de la fonction count if, je dois préciser l'onglet cartons rouges, ensuite la colonne de recherche ne dois pas être fixe.

    Est-ce que c'est possible en passant par cette méthode ?


    Merci beaucoup pour le temps que vous consacrez pour m'aider.

  9. #9
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    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 564
    Par défaut
    Bonjour


    Je le répète, fais un exemple représentatif car "la colonne de recherche ne dois pas être fixe" ne permet de te donner justement une solution tant qu'on ne sait pas comment la repérer...

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 42
    Par défaut
    Mais en déterminant sur cette colonne la dernière cellule non vide, ça permettrait de definir la plage de recherche ?

  11. #11
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut ??????
    Je suis perdu

    Peux-tu tout reprendre depuis le début

    -Le but atteindre (but intermediaire si il y a, but final)
    -les données se trouvent où

    Merci

    A bientôt

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 42
    Par défaut
    OK je vais tout reprendre depuis le début, parce que je vois que j'ai du mal à me faire comprendre.

    Le véritable but (final) c'est d'automatiser le tableau, si on reprend mon exemple c'est l'onglet (Tableau). Dans mon véritable fichier que j'essaie d'adapter à cet exemple, le tableau comporte 3 colonnes.

    La question est de savoir comment compléter ces 3 colonnes, la procédure manuelle consiste à remplir la première colonne à partir des valeurs d'un TCD (en l'ocurrence dans l'exemple c'est l'onglet tcd). Donc pour chaque équipe on veut le nombre de joueur (colonne 1).

    Ensuite pour la deuxième colonne elle doit se remplir par l'intermédiaire d'un autre onglet, parce que l'information n'est pas la même. Du coup il faut procéder par une autre méthode, toujours dans l'exemple, cela revient à compter le nombre de cartons rouges par club, cette information se trouve donc dans l'onglet Cartons Rouges et n'est pas lié au TCD.

    Est-ce que ça vous paraît plus clair ?

  13. #13
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    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 564
    Par défaut
    RE

    Plu clair pas vraiment : je n'ai toujours pas compris ce qui empêche d'utiliser ma proposition du #7...

  14. #14
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 42
    Par défaut
    Plu clair pas vraiment : je n'ai toujours pas compris ce qui empêche d'utiliser ma proposition du #7... .
    Je pense avoir compris ce qui pose problème dans mon exemple. C'est d'un point de vu logique.

    Chris48 ce que tu me propose c'est de connaitre le nombre de joueur ayant eu un cartons rouges, donc voilà pourquoi tu me parles de l'onglet clubs.
    Mais en réalité c'est plus simple que ça, je ne veux uniquement le nombre de cartons rouges par clubs.

    C'est à dire compter combien de clubs ont eu un cartons rouges, cette information est disponible dans l'onglet Cartons rouges et suffit simplement de compter pour chaque club la valeur retournée.
    Exemple : le club OM a recu 4 cartons rouges donc dans le tableau D8 doit prendre la valeur 4.

    Nom : Capture.PNG
Affichages : 316
Taille : 4,7 Ko

Discussions similaires

  1. [XL-2010] Projet : Mise à jour d'un tableau par macro
    Par l.mattera dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/12/2013, 11h46
  2. Accès aux données d'un tableau par macro
    Par Monfy29 dans le forum QlikView
    Réponses: 2
    Dernier message: 23/11/2012, 17h57
  3. copie de tableau par macro
    Par number8326200 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/10/2012, 08h30
  4. [XL-2003] Concatener des valeurs dans un tableau par macro
    Par kernkraft dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/01/2011, 06h39
  5. [XL-2007] Reorganistion d un tableau par macro
    Par dodo28 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/07/2009, 18h32

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