Récuper données Excel sur plusieurs feuilles
Fermé
balthordu
Messages postés
58
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
26 août 2010
-
30 mars 2007 à 11:45
Karits - 11 déc. 2007 à 16:53
Karits - 11 déc. 2007 à 16:53
A voir également:
- Récuper données Excel sur plusieurs feuilles
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Fusionner plusieurs feuilles excel en une seule - Guide
- Comment calculer la moyenne sur excel - Guide
- Si et excel - Guide
4 réponses
Patrick Ono limo
Messages postés
2
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
30 mars 2007
30 mars 2007 à 12:06
30 mars 2007 à 12:06
Avez-vous déjà essayé de trier ces données par date?
Jefrale
Messages postés
97
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
18 juillet 2007
34
30 mars 2007 à 12:40
30 mars 2007 à 12:40
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.
balthordu
Messages postés
58
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
26 août 2010
14
30 mars 2007 à 14:19
30 mars 2007 à 14:19
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
Jefrale
Messages postés
97
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
18 juillet 2007
34
1 avril 2007 à 10:59
1 avril 2007 à 10:59
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
balthordu
Messages postés
58
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
26 août 2010
14
2 avril 2007 à 09:03
2 avril 2007 à 09:03
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
Jefrale
Messages postés
97
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
18 juillet 2007
34
>
balthordu
Messages postés
58
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
26 août 2010
2 avril 2007 à 09:31
2 avril 2007 à 09:31
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) ?
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) ?
balthordu
Messages postés
58
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
26 août 2010
14
>
Jefrale
Messages postés
97
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
18 juillet 2007
2 avril 2007 à 09:48
2 avril 2007 à 09:48
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.
Jefrale
Messages postés
97
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
18 juillet 2007
34
>
balthordu
Messages postés
58
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
26 août 2010
2 avril 2007 à 09:53
2 avril 2007 à 09:53
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.
balthordu
Messages postés
58
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
26 août 2010
14
>
Jefrale
Messages postés
97
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
18 juillet 2007
2 avril 2007 à 10:46
2 avril 2007 à 10:46
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