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 :

macro pour créer un tableau avec des répétitions


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 80
    Points : 34
    Points
    34
    Par défaut macro pour créer un tableau avec des répétitions
    Bonjour,

    je n'ai jamais fait de macro excel et j'aimerais en faire une pour réaliser la manipulation suivante (mon fichier contient beaucoup plus de lignes et colonnes, ici c'est un exemple):

    j'aimerais ajouter une colonne "année" à droite de la colonne variété et reporter les valeurs de rendement pour chaque année afin d'avoir à la fin 3 colonnes: variété , puis une colonne année puis une colonne rendement. Donc les variétés se répétent pour les différentes années.

    A la main c'est beaucoup trop long et je me suis dit qu'une macro pourrait faire ça.

    Quelq'un pourrait m'aider SVP?

    J'ai mis un fichier "exemple" en PJ, colones A à D = le tableau initial et colones G à I, le tableau que j'aimerais obtenir.

    Merci par avance pour votre aide.
    Bien à vous,
    Margot.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut
    Hello,

    Désolé mais je n'ouvre pas les pièces jointes pour des raison évidentes de sécurité.
    Au vu de ce que vous expliquez dans votre énoncé , ou plutôt de ce que je comprends de celui-ci, le tableau de synthèse pourrait être réalisé sans macro via un tableau tableau croisé dynamique.

    Bav,
    MFoxy
    Michaël

    Si mon aide/avis vous a été profitable , n'hésitez pas à cliquer sur , ça fait toujours plaisir...
    _________________________________________________________________________________________________________________

    "Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu'il est stupide..."
    Albert Einstein

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Pas besoin de macro pour faire ça.

    Mets en I2 la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX($B$3:$D$5;EQUIV(G2;$A$3:$A$5;0);EQUIV(H3;$B$2:$D$2;0))
    Copie I2 vers le bas autant que nécessaire.

    Lire ça :
    https://support.microsoft.com/fr-fr/...2-b56b061328bd
    https://support.microsoft.com/fr-fr/...9-533f4a37673a
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 80
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Bonsoir,

    merci pour le retour mais mettre cette formule en I2 ne fonctionne pas pour créer les 3 colonnes comme je veux, je crois que j'ai finalement trouvé une solution avec une macro.

    Merci pour le message.

    Citation Envoyé par mfoxy Voir le message
    Bonsoir MFoxy,

    merci pour le retour.
    Un tableau croisé dynamique ne suffit pas pour faire ce que je veux (peut-être que c'est possible mais je n'y suis pas arrivée), j'ai finalement trouvé une solution macro pour passer de mon tableau 1 à mon tableau 2 (je les ai copié dessous). Vous pensez vraiment que c'est possible avec un TCD? même si j'ai trouvé une solution macro, cela m'intéresse.

    Merci par avance.
    Bien à vous,
    Margot.

    Tableau 1:

    rendement
    variété année1 année2 année3
    var1 2 3 4
    var2 na na 5
    var3 6 5 7

    Tableau 2:

    variété année rendement
    var1 année1 2
    var2 année1 3
    var3 année1 4
    var1 année2 na
    var2 année2 na
    var3 année2 5
    var1 année3 6
    var2 année3 5
    var3 année3 7

  5. #5
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 133
    Points : 83 972
    Points
    83 972
    Billets dans le blog
    15
    Par défaut
    Salut,

    Il est possible de le faire sans macro, mais avec Power Query disponible en add on si votre version Excel est 2013 et 2010, mais disponible en natif sur 2016 et plus.

    1. Convertir le tableau initial en tableau structuré
    2. lancer Power Query via le menu Données==> A partir d'un Tableau
    3. Se positionner sur la première colonne==> Faire un Clic Droit==> Choisir Dépivoter les autres colonnes

      Nom : Sans titre.png
Affichages : 344
Taille : 21,9 Ko
    4. Cliquer sur le menu Fermer et Charger.

      Nom : Sans titre1.png
Affichages : 324
Taille : 9,7 Ko


    L'avantage c'est que tu n'as pas besoin de lignes de code, et la mise à jour de ton tableau sera automatiquement intégrée, et pour cela il faut juste faire un Clic-Droit sur ton tableau final, et choisir Actualiser.
    Fichiers attachés Fichiers attachés
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 80
    Points : 34
    Points
    34
    Par défaut
    Bonjour Malick,

    merci pour les explications. J'ai excel 2016 mais ça ne fonctionne pas.

    J'arrive jusqu'ici:
    Nom : Capture1.JPG
Affichages : 335
Taille : 15,9 Ko

    je clic droit sur la colonne variété et je fais "dépivoter les colonnes" comme ceci:
    Nom : Capture2.jpg
Affichages : 321
Taille : 97,1 Ko

    et ça me donne ça:
    Nom : Capture3.JPG
Affichages : 324
Taille : 40,6 Ko
    je n'arrive pas à obtenir un tableau comme vous comme ça:
    Nom : Capture4.JPG
Affichages : 323
Taille : 23,5 Ko

    ou est-ce que je fais faux?

    Merci par avance pour votre aide,
    Margot.

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Margotte02 Voir le message
    merci pour le retour mais mettre cette formule en I2 ne fonctionne pas pour créer les 3 colonnes comme je veux, je crois que j'ai finalement trouvé une solution avec une macro.
    Mets en G2 la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(A$3:A$5;MOD(LIGNE()-2;NBVAL(A$3:A$5))+1)
    Mets en H2 la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(B$2:D$2;ENT((LIGNE()+1)/NBVAL(B$2:D$2)))
    Copie G2:I2 vers le bas autant que nécessaire.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 80
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    merci,
    ça fonctionne pour G et H mais ça ne mets pas les bons chiffres en I, ça donne ça:

    var1 année1 2
    var2 année1 na
    var3 année1 5
    var1 année2 3
    var2 année2 na
    var3 année2 7
    var1 année3 4
    var2 année3 5
    var3 année3 #N/A

  9. #9
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 133
    Points : 83 972
    Points
    83 972
    Billets dans le blog
    15
    Par défaut
    Salut,

    Citation Envoyé par Margotte02 Voir le message
    Bonjour Malick,

    merci pour les explications. J'ai excel 2016 mais ça ne fonctionne pas.
    Il faut se positionner sur la première colonne et choisir Dépivoter les autres colonnes
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  10. #10
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Margotte02 Voir le message
    ça fonctionne pour G et H mais ça ne mets pas les bons chiffres en I, ça donne ça:
    Il suffit de changer H3 en H2 dans la formule de ma première réponse.

    Franchement, tu pourrais faire un minimum d'effort pour essayer d'étudier les réponses qui te sont données.
    Nom : Becquée.png
Affichages : 325
Taille : 35,0 Ko
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    Salut.

    Si c'est un oneshot, on peut accepter les dernières formules de Menhir, mais comme il le dit, il faudra les tirer vers le bas jusqu'à avoir toutes les données => nombres de lignes * nombre d'années à dépivoter.

    Perso, je préfère de loin la solution de Malick avec Power Query. Si c'est du oneshot, on rompt la liaison après la manip, et si le travail est à répéter, il suffit de mettre à jour.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 80
    Points : 34
    Points
    34
    Par défaut merci
    merci à tous pour votre aide et vos conseils, je peux classer la question comme résolue

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

Discussions similaires

  1. [XL-2010] Macro pour écrire une formule avec des variables (cellule)
    Par xuan203 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/07/2017, 10h29
  2. Créer un tableau avec des items
    Par arm3366 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/09/2011, 11h18
  3. [PPT-2003] créer un tableau avec des largeurs de colonnes différentes
    Par headachemaster dans le forum VBA PowerPoint
    Réponses: 7
    Dernier message: 29/12/2010, 22h19
  4. Réponses: 0
    Dernier message: 11/08/2009, 16h21
  5. Créer un tableau avec des combobox
    Par Petugnia dans le forum Tkinter
    Réponses: 4
    Dernier message: 22/06/2009, 15h51

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