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 :

VBA Regroupement de Doublons


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 39
    Par défaut VBA Regroupement de Doublons
    Bonjour,
    Je dois faire un bouton qui va additionner mes doublons, selon 1 critère. Par exmple: J'ai 5 collone a prendre en considération. Tissu, produit, quantité, largeur, hauteur.

    Je veux regrouper les largeur et hauteur similaire et additionner les quantité de la même ligne, tout en regardant si le tissu et produit est le même avant de les grouper.

    Avant
    Tissu Produit Quantité Largeur Hauteur
    Polyester A 5 55 90
    Laine A 2 55 90
    Polyester A 3 55 90
    Laine B 4 55 90
    Polyester A 1 75 90

    Apres
    Tissu Produit Quantité Largeur Hauteur
    Polyester A 8 55 90
    Laine A 2 55 90
    Laine B 4 55 90
    Polyester A 1 75 90


    Le nombre de ligne n'est jamais le même selon le cas. Il peut três bien y avoir 5 ligne comme 150, mais normalement 150 ligne est le maximum. De plus les mesure ne sont pas toujours en ordre comme dans l'exemple ici présent.

    Merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 66
    Par défaut
    Salut,
    à moins que je n'ai aps bien compris, ca n'a pas l'air très sorcier.

    la premier des choses c'est de faire un tri de ton classeur selon le tissu et le produit.

    tu obtiens ton tableau classer et tu n'as maintenant plus qu'à parcourir ton tableau en partant de la première ligne jusqu'à la dernieres, lignes apres lignes...
    je m'explique mieux

    l'architecture pourrait etre celle ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    for i = premiere_ligne to derniere_ligne
    if cells(i,1).value <> "" and cells(i+1,1).value then 'on verifie qu'on est pas à la fin du tableau
      if cells(i,1).value= cells(i+1,1).value and if cells(i,2).value= cells(i+1,2).value  then
            cells(i,3).value=  cells(i,3).value + cells(i+1,3).value 
            cells(i,4).value=  cells(i,4).value + cells(i+1,4).value 
            cells(i,4).entirerow.delete shift := xlup
            i = i-1 'permet de reprendre la meme première ligne et aglomérer une troisième commande du même textile
      end if
    end if
    next i
    j'ai rien vérifié, mais ca devrait fonctionner pas trop mal

  3. #3
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    Je vois plusieurs façons de faire bien différentes :

    1. le TCD C'est une façon très simple de faire des regroupements et le calcul se fait rapidement. Si la présentation du résultat dans un TCD peut convenir, c'est le mieux. MAis si tu dois y récupérer les résultats pour les présenter autrement, cela se complique.

    2. la requête. Là encore le regroupement est facile à faire car c'est SQL qui s'en charge. Il faut alors coller le jeu d'enregistrement dans une feuille résultat. Si les données sont très nombreuses (x0 000) cela peut prendre qq secondes.

    3. le traitement. Il s'agit là de faire soi même le code de regroupement en utilisant une variable tableau. Ce n'est pas simple ni rapide à écrire. Par contre, le temps d'exécution devrait être court.

    Finalement, suivant la présentation de tes données et la présentation du résultat que tu veux, tes contraintes de temps de calcul et l'énergie que tu veux y mettre, tu devrais trouver une solution.

    Cordialement,

    PGZ

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 39
    Par défaut
    Merci la formule pour éléminer et combiner les doublon fonctionne très bien

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

Discussions similaires

  1. code vba pour détecter doublons
    Par max76 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/12/2012, 16h08
  2. 2 regroupements avec doublons
    Par nawfal_saber dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 08/07/2010, 14h30
  3. VBA Regrouper des données dans un fichier unique
    Par oracle7556 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/04/2010, 22h28
  4. [XL-2003] VBA : stocker sans doublon
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/04/2010, 17h13
  5. VBA regroupement date selon choix option (par jour, par mois)
    Par IndyJones dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/12/2006, 20h06

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