VBA extraire des données d'une database

Résolu/Fermé
Aude - 3 févr. 2012 à 13:59
 Aude - 13 févr. 2012 à 11:31
Bonjour à tous !!

Je cherche à extraire des infos contenues dans une database d'un fichier, vers des onglets de ce meme fichier.

on pourrait faire des tableaux croisés dynamiques sauf que je veux compter plusieurs colonnes à la fois...

Le fichier est ici :
http://cjoint.com/?3Bdn2KBeJEk

les 2 onglets rouges, contiennent des requetes pour lesquelles je sollicite votre aide, mes questions sont en rouge.
L'onglet bleu est la database.

N'hésitez pas si vous avez des question, d'avance merci beaucoup !!!
A voir également:

8 réponses

Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 452
3 févr. 2012 à 22:36
Bonjour,
Pas besoin de VBA, essayez d'utiliser la fonction SOMMEPROD() qui doit vous donner les résultats escompter, par exemple dans la cellule [D11] (car il n'y a pas de semaine 46 et 47 dans [Database]), cette formule :
=SOMMEPROD((Database!$C:$C=48)*(Database!$P:$P=Report!$A11))
A adapter pour les autres cellules.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par irongege le 6/02/2012 à 11:16
Bonjour Aude

Toujours dans les usines à gaz Excel à ce que je vois ! :o)

On peut effectivement le faire par formules pas tristes
https://www.cjoint.com/?3BepzlCxI2B

Mais puisque tu calcules sur uniquement la dernière semaine, pourquoi ne pas supprimer ou archiver les anciennes (petit coup de Vba). si ça reste quand m^me long on pourra passer par du VBA. Vu la météo, je jetterai peut-^tre un oeil demain

tu dis..

Michel
0
Coucou à tous et merci pour vos réponses !!!

Je regarde ça en détail dans l'après midi !!

Excellent journée à tous <frigorifiée!!>

Aude

PS: Michel, absolument ;) Et heureusement pour moi, tu n'es jamais loin ;)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 6/02/2012 à 17:21
re,

Ci joint version avec VBA beaucoup plus rapide:
https://www.cjoint.com/?3Bgrqpp9J2O

principe: on délimite les recherches à la nouvelle semaine (lig début, ligne fin)en renommant les colonnes utiles au calcul: pays, colonnes P à T, colonnes U à Z entre lig debut et ligne fin
les formules sommeprod ont ainsi beaucoup moins de parcours à faire donc + rapide
Michel
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
7 févr. 2012 à 09:22
tu peux supprimer la ligne 118 de pivots (oubli de ma part)
0
ça m'a tout l'air d'être simplement génial (comme d'hab!!!) !! pour l'onglet pivot ça me parrait idéal !
Pour l'onglet Report, tu as une idée ? le bouton de "pivot" n'a pas d'impact sur onglet report ;)

Un grand grand merci ;)))

Aude
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
7 févr. 2012 à 16:25
je n'ai pas regardé l'onglet report !
vu la météo, j'm'y met
0
Hihi Merci Michel ;))
Ici aussi (en Auvergne), on est bien qu'au coin du feu (malgré le soleil pourtant présent!!)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
7 févr. 2012 à 16:53
ici, en Sud-Ardèche ,c'est le mistral qui te change en glaçon dès que tu mets le nez dehors !

question:
je suis par exemple en semaine 3: comment est inscrit la colonne de la semaine 4 dans la feuille"report "? autrement dit, est ce la macro qui crée la colonne L ?

mine de rien, ca change la macro (pour l'instant dans ma t^te)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 452
7 févr. 2012 à 16:19
Bonjour Aude,
Peut-être selon le poste 1!
0
Merci beaucoup, je suis en train de regarder ça !! ;))
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
7 févr. 2012 à 18:37
https://www.cjoint.com/?3BhsBHai023

Lorsque tu appuies sur le bouton

Outre ce qu'il existait déjà

Le décalage de C:L vers B:K est effectué (y compris les lignes masquées: à voir éventuellement si pb)
le nom de la semaine est inscrit (Wxx) et les valeurs de la nouvelle semaine sont inscrites en colonne L
le tout par VBA sans formules

nota dans le code enlève l'apostrophe devant application.screenupdating au début de la macro
moralité:le jour où j'oublierai rien...
0
Coucou à vous ;)
ça a l'air magique ... !!

Je regarde ça cette après midi mais je n'attend pas pour vous dire à quel point je vous remercie, c'est sont facilement plusieurs heures de gagnées par semaine pour moi !

Merci beaucoup, je vous confirme tout ça un petit peu plus tard;)

Bonne journée, sous la neige, ici !

Aude
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
8 févr. 2012 à 09:28
bonjour,
dans mon dernier envoi, je n'ai pas traité le cas où, au départ, "database" est vide ou qu'il n'y ait moins de 11 semaines de traitées; à mon avis, il faudrait traiter ce cas
Tu dis

sous la neige, ici
C'est mercredi,les gosses vont s'en donner à coeur joie avec les boules de neiges; donc, attention en sortant du boulot ! :-D
0
Coucou !

Alors les datas de ton exemple jusqu'à la week 4 sont parfaites !

Alors j'ai testée, en rajoutant la semaine 5 et ses infos:
http://cjoint.com/?BBililICshD

J'ai des questions: dans l'onglet "Pivots Performances by country"
les colonnes "Volume logged weekly" des 2 tableaux n'indiquent pas le même volume pour chaque pays !
Ce qui n'est pas logique (et effectivement, ça ne se produisait pas dans ton exemple sans la week 5).

Pour les colonnes "Errors", il y a aussi un problème dans les nombres reportés d'erreurs par pays qui ne correspondent pas avec la database

J'ai pas regardé l'onglet "reports" car j'ai une modification à faire dans la database (transformer "Address" par "Wrong address logged" par exemple pour que ça match.
Mais ça à toutefois l'air parfait

J'ai peut être surement ratée quelques chose pour la première partie ?!

Merci beaucoup ;)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
8 févr. 2012 à 12:01
les colonnes "Volume logged weekly" des 2 tableaux n'indiquent pas le même volume pour chaque pays !
effectivement, mais tu n'avais pas demandé de formule: il suffit de recopier C58:C70 en colonne H

Pour les colonnes "Errors", il y a aussi un problème dans les nombres reportés d'erreurs par pays qui ne correspondent pas avec la database
Si c'est la différence entre les 2 tableaux, c'est normal; par exemple il y a des "all ok "colonne P et une erreur sur la colonne U ou vide et réciproquement
regarde le secteur des lignes 15570 à 15600
autrement, je ne comprend pas car la formule est identique....si c'est bon pour 4 c'est bon pour 5
la première ligne et à la dernière sem 5 calculée par la macro sont correctes 15290 et 17228

A ce propos, je n'ai pas trop compris le pourquoi des colonnes P à T pour compter les erreurs
par exemple ligne 15371 tu as en P: une erreur d'adresse et des précisions sur cette erreur colonnes Q et R (town et zip code) ce qui fait 2 erreurs et non 3 (si on prend P à T) mais il y a certainement une raison!

autrement quelle est ta réaction à mon poste de 9:28 h ?
0
Alors, pour le volume loggued c'est ok ! juste je n'avais pas compris ;)

Pour les errors si je filtre la database pour n'avoir que la week 5, que le pays "Sweden" et colonne U je filtre tout sauf non vide et All ok: il reste 59 cellules remplies entre les colonnes U et Z mais ça me report 60 en H58

Idem pour "Austria/Germany/Switzerland" si je compte les erreurs colonne U à Z j'en trouve 53 (à la main) mais il m'en affiche 55 (2 de +)

Pour répondre à ta question sur les erreurs d'addresse, en fait on considère que "Address" c'est le nom/numéro de la rue, et ensuite zip code et city sont des champs différents, donc ça permet de cibler ce qui est faux (quand tout est faux c'est pas très interressant effectivement mais quand c'est qu'une partie de l'addresse qui est fausse, ça permet de faire remonter l'info la plus précise possible.:) )

Pour répondre à ton message précédent, la database n'est jamais vide :)
Par contre je ne suis pas sur d'avoir compris ça:
"qu'il n'y ait moins de 11 semaines de traitées; à mon avis, il faudrait traiter ce cas"
Tu veux dire que ça peut ne pas fonctionner correctement si il y a moins de 11 semaines différentes dans la database ? (si c'est ça, je crois que le fichier que je t'ai renvoyé n'a que 10 semaines différentes dans la database. :)

J'espère que je suis suffisamment claire, sinon n'hésites pas à me demander ;)

Merci pour ton aide précieuse Michel ;)

Aude
0
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 452
7 févr. 2012 à 22:05
Bonjour,
Eh oui c'est un superbe travail.
0
Résolu, MErci beaucoup à vous tous :))
0