VBA extraire des données d'une database

Résolu
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 !!!

8 réponses

  1. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  3. Aude
     
    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
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      tu peux supprimer la ligne 118 de pivots (oubli de ma part)
      0
    2. Aude
       
      ç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
    3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      je n'ai pas regardé l'onglet report !
      vu la météo, j'm'y met
      0
    4. Aude
       
      Hihi Merci Michel ;))
      Ici aussi (en Auvergne), on est bien qu'au coin du feu (malgré le soleil pourtant présent!!)
      0
    5. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour Aude,
    Peut-être selon le poste 1!
    0
    1. Aude
       
      Merci beaucoup, je suis en train de regarder ça !! ;))
      0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. Aude
       
      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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
    3. Aude
       
      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
    4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
    5. Aude
       
      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
  8. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Eh oui c'est un superbe travail.
    0
  9. Aude
     
    Résolu, MErci beaucoup à vous tous :))
    0