Récuper données Excel sur plusieurs feuilles

balthordu Messages postés 58 Statut Membre -  
 Karits -
Bonjour a tous
Voila mon problème: j'ai des données sur une feuille Excel contenant sur une colonne des nom de produits et sur une autre colonne sa date de parution. Sur une autre j'ai des noms des produit ainsi que ces ventes de cette année.
Le problème est que les noms des produits de la 2ème feuilles ne sont pas tous identiques. C'est à dire que seuls quelques produits sont dans les 2 feuilles. Ce que je voudrait, c'est retiré des articles avec leur ventes en fonction de la date de parution qui est sur l'autre feuille. Mon résultat sera la liste des produits en fonction de la date de parution en fonction des ventes. Mais que ceux qui sont en commun avec les 2 feuilles
Je ne sais pa comment faire. Peut etre avec les tableaux dynamiques, j'ai regardé mais je ne vois pas la marche a suivre. En résumé je veux recuper des données dans une feuille qui sont aussi présente dans une autre en fonction d'un critère sur une feuille.
Merci de votre réponse, en m'indiquant la marche à suivre.
Configuration: Windows 2003
Internet Explorer 7.0

4 réponses

  1. Patrick Ono limo Messages postés 2 Statut Membre
     
    Avez-vous déjà essayé de trier ces données par date?
    0
  2. Jefrale Messages postés 98 Statut Membre 34
     
    Bonjour,

    Soit il faut utiliser la fonction SI qui permet de faire une selection suivant certains critères. Soit il faut développer une macro.
    Je fais du dévelllopement dans excel en VBA mais pour réaliser ce petit programme il me faut plus de détails (le mieux serait un exemple concret)
    Je reste à disposition si necessaire.
    Cordialement.
    0
    1. balthordu Messages postés 58 Statut Membre 14
       
      Merci en premier de votre attention.
      Tres bien je vous donne un exemple:désolé je ne pouvais pas aligner les colonnes. Mais je pense que vous n'aurai aucun problème a lire

      Feuille 1:
      nom du produit + date de fabrication

      prod1 2000
      prod2 2000
      prod3 2000
      prod7 2000

      feuille 2

      nom du produit + vente

      prod1 12
      prod2 32
      prod4 41
      prod5 21
      prod6 12
      prod8 31

      Voici le résultat obtenu

      feuille 1 ou 2 ou 3 (peu importe où se trouve le résultat)

      nom du produit + année + vente

      prod1 2000 12
      prod2 2000 41

      Ce que je veux est afficher les produit que je trouve dans les 2 feuille en fonction de la date 2000. Sachant que dans la feuille 2 les dates se sont pas renseignées. Mais il y a des produits en commun entre les 2 feuilles.
      Voila j'espere avoir été clair.
      Cordialement
      0
  3. Jefrale Messages postés 98 Statut Membre 34
     
    Bonjour,
    Voilà le code à insérer dans un module qui ensuite peut-être lié à un bouton

    Sub cherche()
    l = 1
    Worksheets("Feuil1").Activate
    For nl = 2 To 10
    Worksheets("Feuil1").Activate
    pdt1 = Cells(nl, 1)
    an = Cells(nl, 2)
    Worksheets("Feuil2").Activate
    pdt2 = Cells(nl, 1)
    vte = Cells(nl, 2)
    If pdt1 = pdt2 Then
    Worksheets("Feuil3").Activate
    l = l + 1
    Cells(l, 1) = pdt1
    Cells(l, 2) = an
    Cells(l, 3) = vte
    Worksheets("Feuil1").Activate
    End If
    If nl = 10 Then
    Worksheets("Feuil3").Activate
    End
    End If
    Next

    End Sub

    Bon courage
    0
    1. balthordu Messages postés 58 Statut Membre 14
       
      je suis désolé mais je ne trouve pas encore ce que je veux. Voila ma premiere feuille:
      prod1 2000
      prod2 2001
      prod4 2001
      prod5 2003
      prod6 2000
      prod8 2000

      la deuxieme:

      prod1 2
      prod2 6
      prod3 8
      prod5 4
      prod6 3
      prod7 1

      et le résultat:

      prod2 2001 6
      prod5 2003 4
      prod6 2000 3
      ce resulat je le trouve avec votre algo. Or ici ce que je veux c'est :

      prod1 2000 2
      prod6 2000 3



      Ce que he ne trouve pas dans le code c'est l'endroit où l'on séléctionne la date que l'on veut selectionner dans la première feuille. Car ici le résultat que je veut ce doit etre que les produit avec leur ventes en 2000

      Merci
      0
    2. Jefrale Messages postés 98 Statut Membre 34 > balthordu Messages postés 58 Statut Membre
       
      Il fallait le dire.
      Aujourd'hui je n'ai pas le temps de m'en occuper, peut-être ce soir.
      Si j'ai bien compris il faut ajouter une boite de dialogue pour demander la saisie d'une année.
      A ce sujet est-ce seulement l'année (aaaa) ou est-ce la date en entier (jj/mm/aaaa) ?
      0
    3. balthordu Messages postés 58 Statut Membre 14 > Jefrale Messages postés 98 Statut Membre
       
      Non la boite de dialogue n'est pas du tout neccessaire. Car votre algo permet de selectionner les nom commun des deux feuille et c'est ce que je veux. Il me suffit de faire un simple tris dans la feuille 3 avec les dates. Donc le probleme des dates est réglé. Ne vous pencher pas du tout sur ce sujet.
      Par contre je viens de voir que il y a un autre probleme plus genant. En effet votre algo marche que si le nb de ligne est le meme pour chaque feuillle. Or ce ce n'est pas du tout le cas. La feuille avec les date contient 2 fois moins de données que l'autre.

      Par contre pouvez vous me dire a quoi sert cette partie du code:

      If nl = 10 Then
      Worksheets("Feuil3").Activate
      End
      End If

      Je posséde quelque connaissance en C c'est que qui me permet de comprendre un peu votre code.
      Si vous pouvez vous y pencher des que vous pouvez je vous remercie encore par avanve.
      Et merci de ce que deja vous avez fait pour moi.
      0
    4. Jefrale Messages postés 98 Statut Membre 34 > balthordu Messages postés 58 Statut Membre
       
      Re
      Cette partie du code sert à tester si mon c ompteur (nl) est arrivé à 10, chiffre que j'ai mis au départ de ma boucle For...Next.
      A ce sujet le chiffre 10 peut être changé en 100, 200, ou même 65536 qui est le nombre de lignes d'une feuille excel.
      Mettez-le au maximum de lignes que vous pouvez avoir.
      Cordialement.
      0
    5. balthordu Messages postés 58 Statut Membre 14 > Jefrale Messages postés 98 Statut Membre
       
      J'ai trouvé le probleme!
      Le truc c'est que votre algo compare ligne par ligne. Ce qui veut dire que si le prod2 se trouve a la ligne 2 dans les deux page il le selctionnera. Or il se trouve que comme je possède une base de données de 10000 articles un produit qui est present dans les 2 pages peut se trouver a la ligne 500 dans une et 1000 dans une autre. Comme le nb de ligne n'est pas le même je ne peux pas les avoir au meme niveau. Et moi je veux que ce produit soit quant meme selectionner. Voila apres je sui sur que sa sera bon. Il faut donc ajouter une deuxième boucle for.
      Donc ce que je pense l'algo doit faire c'est prendre un article de la page 1, parcourir TOUTE la page 2 et si il le trouve il le selectionne. Ensuite il prend le produit suivant de la page 1 et reparcourt TOUTE la page 2.
      Je pense qu'il doit y avoir 2 boucles for imbriquées. Je pene que l'ago que je vous propose est bon. Quand a le mettre en forme la je ne peux pas.
      J'espere que l'ago que je vous proposeva vous permettre de m'aider encore une fois si vous avez bien sur le temps.
      Cordialement
      0
  4. Karits
     
    Bonjour, je ne comprend pas cette partie du code : (plus particulierement cumvte)

    If pdt1 = pdt2 Then
    cumvte = cumvte + vte
    End If
    Next

    Worksheets("Feuil3").Activate
    If cumvte = 0 Then GoTo suite
    l = l + 1
    Cells(l, 1) = pdt1
    Cells(l, 2) = an
    Cells(l, 3) = cumvte
    cumvte = 0

    Merci
    0