XL 2016 Importer des données de plusieurs fichiers

alexMert

XLDnaute Nouveau
Bonjour tout le monde,
je cherche à importer des données de plusieurs fichiers, j'ai pu arriver à quelque chose mais plusieurs contraintes.
1) les fichiers d'où je veux importer les données doivent être dans le même dossier et le fichier où je veux faire l'importation ne doit pas être avec eux dans le dossier (cela ne me dérange pas je ne veux pas le changer)
2) Les fichiers comportent les données ont 2 colonnes, la première c'est la bulle et c'est de cette forme comme exemple 5(A) mais si c'est 11(B) je n'arrive pas à placer la valeur dans mon tableau la cellule reste vide.
3) Vu que je veux faire ça pour d'autres fichiers dans d'autres fichiers c'est par exemple 2(A) 11(A) ou même 2(A) 2(A) dans ce que la 2eme valeurs écrase la première.
Si vous avez des suggestions je serai très ravi de les essayer.
Merci
 

Pièces jointes

  • 190263-2.xls
    25 KB · Affichages: 7
  • 190263-5.xls
    32.5 KB · Affichages: 4
  • Tableau.xlsm
    53 KB · Affichages: 9

CHALET53

XLDnaute Barbatruc
Bonjour,
Avec 11(B), ton programme ne peut pas fonctionner : tu recherches la lettre sur le 3ème caractère. Avec 5(A), ça marche mais avec 11(B), le B est le 4ème caractère
Tu peux procéder ainsi :
Dans ta boucle, tu modifies le calcul de colonne2 ainsi (en 2 lignes):
tableau = Split((Workbooks(2).Worksheets(1).Cells(i, 1)), "(")
colonne2 = Left(tableau(1), 1)

Par contre, il y a quelque chose qui m'étonne dans ton fichier récap
Tu es censé écrire dans la première ligne disponible. Or certaines lignes sont obtenues par formule (exemple : B3, B5, B4)

a+
 
Dernière édition:

alexMert

XLDnaute Nouveau
Bonjour,
Avec 11(B), ton programme ne peut pas fonctionner : tu recherches la lettre sur le 3ème caractère. Avec 5(A), ça marche mais avec 11(B), le B est le 4ème caractère
Tu peux procéder ainsi :
Dans ta boucle, tu modifies le calcul de colonne2 ainsi (en 2 lignes):
tableau = Split((Workbooks(2).Worksheets(1).Cells(i, 1)), "(")
colonne2 = Left(tableau(1), 1)

Par contre, il y a quelque chose qui m'étonne dans ton fichier récap
Tu es censé écrire dans la première ligne disponible. Or certaines lignes sont obtenues par formule (exemple : B3, B5, B4)

a+

Merci de ta réponse mais je n'arrive pas à la faire fonctionner.
Oui parce que j'ai des lignes qui sont vide mais ce n'ai pas là où je veux ajouter la valeur. La structure du tableau ne change pas donc c'est a la 10ème ligne que je commence à importer les données.
 

CHALET53

XLDnaute Barbatruc
Les 2 instructions que je t'ai proposées ne modifient en rien ton programme. J'obtiens l'info colonne2 en deux instructions contre une avant.

La première décompose l'information en 2 tableaux (le 1er contient la partie avant la première parenthèse et le 2ème tableau contient la partie après la parenthèse avec donc en premier caractère la lettre recherchée)
Ainsi pour l'info 11(B) :
tableau = Split((Workbooks(2).Worksheets(1).Cells(i, 1)), "(") ==> ici le signe ( entre cotes sert de séparateur pour alimenter les 2 tableaux
1er tableau : tableau(0)=11 (info avant "(" : il ne nous intéresse pas
2ème tableau :tableau(1)=B) : le premier caractère de ce tableau nous intéresse et il devient colonne2

J'arrive à faire fonctionner ton programme sans problème

La façon dont est écrit ton code implique que le fichier Tableau.xlsm soit ouvert en premier
 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 963
Membres
103 068
dernier inscrit
Strogoff