Récuper données Excel sur plusieurs feuilles
balthordu
Messages postés
58
Statut
Membre
-
Karits -
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.
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.
A voir également:
- Récuper données Excel sur plusieurs feuilles
- Liste déroulante excel - Guide
- Trier des données excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Word et excel gratuit - Guide
4 réponses
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.
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.
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
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
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
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
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
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
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.
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.
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.
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.
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
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