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 :

Comparer 2 tableaux [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 99
    Par défaut Comparer 2 tableaux
    Bonjour, je viens cherche un coup de main, parce que j'ai du mal à optimiser l'opération suivante :

    J'ai, sur une feuille un tableau de X lignes et 78 colonnes
    Chaque Ligne possède 4 champs communs avec une autre ligne du même tableau (Colonnes A, B, C, et D)
    Exemple:
    A B C D E
    Pomme Rouge Variété1 Traitement1 ProducteurA
    Pomme Rouge Variété1 Traitement2 ProducteurA
    Pomme Rouge Variété1 Traitement3 ProducteurA
    Pomme Rouge Variété1 Traitement4 ProducteurA
    .....
    Pomme Rouge Variété1 Traitement1 ProducteurB
    Pomme Rouge Variété1 Traitement2 ProducteurB
    Pomme Rouge Variété1 Traitement3 ProducteurB
    Pomme Rouge Variété1 Traitement4 ProducteurB
    .....
    Ainsi, il n'est nécessaire que de boucler jusqu'à la moitié du tableau
    J'aimerai pouvoir sommer les colonnes AG à BZ des 2 lignes ayants les mêmes 4 champs communs.
    Ensuite, sur une autre feuille, je remplis X/2 lignes les 4 champs de critère différents, et le résultat.
    J'ai essayé cette macro avec une boucle sur chaque ligne, mais elle dure 20 minutes.
    Je pense qu'il y a moyen d'aller plus vite avec l'utilisation de tableaux définis, mais je ne sais pas comment m'y prendre.

    Merci de votre aide.

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    merci de poster le code en utilisant l’icône dédiée #

    Un classeur exemple avec une feuille source et une feuille résultat désiré éclaircirait quelque peu …

    Je me demande même si c'est réalisable sans code directement par formules de calculs …

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 99
    Par défaut
    Merci Marc-L

    Ci-joint un fichier d'exemple, avec les données brutes sur la feuille Fruits, ainsi que le résulat souhaité sur la feuille Synthèse (colonnes I à K): Pommes.xlsx
    Ce n'est pas mon fichier final, mais un exemple de ce que je voudrais obtenir.
    J'ai déjà essayé d'utiliser des formules, mais celà est bien trop lourd (le fichier met 3 minutes à s'ouvrir même si je désactive le calcul automatique).
    Dans cet exemple aussi, les résultats sont obtenus par formules, et celà fonctionne très bien dans ce cas précis. Cependant, je souhaiterai utiliser une macro qui me semble bien moins lourde que d'avoir à attendre l'ouverture du fichier ainsi que le recalcul de tout le document à la moindre sauvegarde.

    PS : Certaines données brutes sont en ALEA() dans l'exemple juste pour avoir des données différentes.

    Merci du coup de main

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Et il est où le code ?!

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 99
    Par défaut
    Désolé, mais je ne voyais pas l'intérêt d'ajouter un code qui ne fonctionne pas correctement.
    Selon moi, la méthode que j'utilise n'est pas optimale, c'est pour ça que je voulais repartir de zéro.
    Mais si ca peut aider, je l'ajouterai lundi, dès que j'aurais de nouveau acces au fichier.

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,


    Citation Envoyé par Korleone Voir le message
    Désolé, mais je ne voyais pas l'intérêt d'ajouter un code qui ne fonctionne pas correctement.
    Des fois, cela peut être à cause d'une niaiserie (dans le sens québécois du terme qui excède un peu le sens du dictionnaire) que l'on peut corriger en quelques minutes.

    Selon moi, la méthode que j'utilise n'est pas optimale
    C'est bien difficile de juger sans le code. Mais en général, il n'y a pas de solution unique. Le critère d'optimalité peut être extrêmement variable d'une situation à un autre.

    c'est pour ça que je voulais repartir de zéro.
    Attention, c'est un forum d'entraide, pas un service de programmation gratuite à partir de rien

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 99
    Par défaut
    Merci pour votre aide. Cependant, je ne cherchait pas un code "tout fait", mais de l'aide sur une autre méthode.

    Pour info, je m'en suis sorti différement.
    Plutôt que de faire un tri à partir d'un seul onglet, j'ai crée 2 onglets (Producteur 1 et Producteur 2)
    Etant donné que dans mon exemple, les variétés sont les mêmes (toujours) chez le Producteur 1 et le Producteur 2 (et qu'il n'y a que 2 producteurs).
    Je peux donc effectuer facilement une comparaison entre les différents onglets (les données seront à la même adresse puisque le filtre est identique sur les 2).
    Ainsi, j'évite les formules matricielles qui prennait beaucoup de temps de calcul.

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    De toute manière d'après le classeur joint ce n'est pas un tri mais une somme !
    Quelle que soit la méthode utilisée en VBA, peu de lignes de code pour un traitement inférieur à un dixième de seconde …

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

Discussions similaires

  1. [Tableaux] Comparer 2 tableaux à 2 dimensions
    Par lili2704 dans le forum Langage
    Réponses: 3
    Dernier message: 16/11/2007, 14h21
  2. Comparer deux tableaux
    Par gefrey54 dans le forum Powerbuilder
    Réponses: 0
    Dernier message: 12/09/2007, 10h58
  3. [Tableaux] Comparer 2 tableaux
    Par lama85 dans le forum Langage
    Réponses: 3
    Dernier message: 08/08/2006, 15h19
  4. comparer deux tableaux
    Par djibril dans le forum Langage
    Réponses: 4
    Dernier message: 15/11/2005, 15h26

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