VBA extraire des données d'une database
Résolu
Aude
-
Aude -
Aude -
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 !!!
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:
- VBA extraire des données d'une database
- Fuite données maif - Guide
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Borland database engine - Télécharger - Édition & Programmation
- Trier des données excel - Guide
8 réponses
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 :
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.
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
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
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 ;)
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 ;)
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
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
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)
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)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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...
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...
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
ç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
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
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
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 ;)
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 ;)
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 ?
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 ?
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
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