XL 2016 Importer des données de plusieurs fichiers

  • Initiateur de la discussion Initiateur de la discussion alexMert
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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:
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.
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour