Rapatrier des données d'un excel

Résolu
Anthony -  
 anthony -
Bonjour,

voici le contexte
Je reçois tous les trimestres des données de mes fournisseurs.
Chaque onglet porte le nom de la substance et dans chaque onglet on a un tableau avec les valeurs des différents éléments chimiques (aluminium, calcium , ......)
J'ai un fichier excel dans lequel je compile tout ça au fil des trimestres et à l'heure actuelle je fais des saisies avec les risques que ça comporte.

Est il possible d'automatiser l'import des données sous le principe de la rechercheV (pour être sûr de bien mettre la valeur correspondant à l'intitulé de la ligne)
Les valeurs m'intéressant étant toujours en colonne H

Les variables étant le nom du fichier qu'on reçoit et le répertoire dans lequel il est enregistré (boîtes de saisie ?!)

Ainsi une fois dans mon fichier de compilation, je lancerai la macro, j'insère le nom du fichier source dans une première boîte de dialogue, le répertoire dans une autre et la macro va chercher les données correspondantes dans chaque onglet

Dans la théorie ça semble jouable mais dans la pratique :-(
http://www.cijoint.fr/cjlink.php?file=cj201104/cijQCw4SNx.zip

1 réponse

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    re

    est ce que ça commence à ressembler à ce que tu veux?
    j'ai fait ça sur la feuille RECAP
    http://www.cijoint.fr/cjlink.php?file=cj201104/cijpocWTZs.xls
    j'ai defusionné quelques cellules
    http://www.cijoint.fr/cjlink.php?file=cj201104/cijHdEbWne.xls

    RQ2. grrrr!!!! Ah les fautes de frappes et les cellules fusionnées

    bonne suite
    0
    1. ccm81 Messages postés 11033 Statut Membre 2 434
       
      re
      desolé, il y avait un pb de fichier actif, remplacer le fichier recap1 par celui ci
      http://www.cijoint.fr/cjlink.php?file=cj201104/cijSV3XORr.xls
      bonne suite

      re-modif
      dans le fichier de données, et dans chacune des feuilles, il y a des pb de cellules fusionnées dans la plage A11:Cxx, ce qui crée quelques problèmes, en particulier, on ne recupère pas les données de la feuille TRANS avec le code précédent)
      une solution 'acrobatique et momentanée'
      Const PlageElements_FD  =  "A11:C100"
      et plus loin dans le code, comme on n'a besoin que de la ligne où se trouve l'élément
      With Workbooks(Fic).Sheets(NumFe) 
                Set c = .Range(PlageElements_FD).Find(Element, LookIn:=xlValues, MatchCase:=False, SearchDirection:=xlPrevious)
      RQ1. il sera préférable de fusionner ou dé-fusionner tout
      RQ2. il faudra être vigilant sur les fautes de frappe
      bonne suite
      0
    2. anthony
       
      ah oui effectivement je n'avais pas fait attention qu'ils envoyaient un fichier avec cellules fusionnées pour l'intitulé des éléments

      je regarde demain si le fonctionnement est ok, à cette heure ci je pense ne pas avoir les idées assez claires pour le lancer dans les essais
      0
    3. anthony
       
      hello,
      suite à tes remarques j'ai laissé tomber l'idée car il y a beaucoup trop de risques vu que chaque fournisseur fournit un fichier différent, donc une macro spécifique par fournisseur et autant de maintenance à faire, le tout pour une fréquence trimestrielle
      bref le jeu n'en vaut certainement pas la chandelle.

      par contre ça me donne uen base pour autre chose :-)
      merci à toi de me répondre toujours aussi rapidement et toujours en répondant à mes demandes les plus folles ^^
      0