Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Importer plusieurs tableaux

Calvus

XLDnaute Barbatruc
Bonjour le Forum,

Je voulais tenter de me débrouiller pour trouver la solution à mon problème, mais comme d'habitude, les solutions entrevues emmènent vers d'autres questions...
Cf ce sujet.

Mon souhait est le suivant :

J'ai une feuille Origine sur laquelle je veux importer des données d'autres feuilles. Je sais le faire pour un onglet.

Ce que je ne parviens pas à faire, c'est d'importer la 1ère feuille, puis la seconde à la suite, puis une 3ème, etc..

La feuille de destination est Origine.
La copie doit se faire dans les cellules C20:C53, puis C183:C116, etc...
Les cellules concernées sont colorées en bleu dans mon exemple.
Est concernée la colonne G pour les mêmes lignes.

L'onglet à importer se trouve en O40 (liste déroulante).

Les cellules à copier sont dans les feuilles Feuil2, Feuil3, Feuil4
La structure est la même, les cellules à copier sont donc les mêmes. C20:C53, puis C183:C116, etc...

Mais, on ne doit copier que les lignes non vides, et remplir les vides de la feuille Origine, à la suite, et en respectant la structure de la feuille, à savoir qu'il faut omettre les lignes 54 à 82, 117 à 145, etc..

La macro en feuille Origine fonctionne, mais pour un seul onglet.

J'ai inscrit manuellement le résultat souhaité dans la feuille Exemple Voulu.

Dernière chose, j'imagine que l'importation doit se faire en plusieurs étapes, car en réalité mon fichier ouvre d'autres classeurs pour l'importation des données.

Merci de votre aide.
 

Pièces jointes

  • Import plusieurs tableaux.xlsm
    86.1 KB · Affichages: 68

Lone-wolf

XLDnaute Barbatruc
Re : Importer plusieurs tableaux

Bonjour mon cher Calvus

Un essai avec ceci à placer dans un module et à adapter à tes besoins.

Code:
Public Const k As Integer = 1

Sub copie()
With Sheets("Origine")
.Range("b1") = .Range("b1") + k
If .Range("b1") = 1 Then
Feuil2.Range("c20:c49").Copy
.Range("c20").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Exit Sub
End If

If .Range("b1") = 2 Then
Feuil3.Range("c20:c53").Copy
.Range("c83").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Exit Sub
End If

If .Range("b1") = 3 Then
Feuil4.Range("c20:c29").Copy
.Range("c146").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Exit Sub
End If
If .Range("b1") > 3 Then .Range("b1").ClearContents
End With
End Sub
 
Dernière édition:

Calvus

XLDnaute Barbatruc
Re : Importer plusieurs tableaux

Bonsoir mon cher Lonewolf,

Merci de ta réponse.

Tu réponds partiellement à ma problématique.

En effet, chaque feuille se remplit séparément, alors que je devrais avoir B1 à B4 de la feuille 3 qui s'inscrivent en lignes 50 à 53 de la feuille Origine, puis la suite (B5 etc) à partir de la ligne 83 de la même feuille.

Ensuite, seule la 1ère partie de la feuille 3 est prise en compte. Il manque les cellules B35 etc. (ligne 83 de la feuille 3).

Enfin, on pourrait avoir seulement une ou 2 lignes remplies pour la 1ère feuille par exemple. Ex : A1 et A2.
Les références B devraient donc se trouver à la suite de celles ci en ligne 22 de la feuille Origine.

Merci et bonne soirée.
 

Lone-wolf

XLDnaute Barbatruc
Re : Importer plusieurs tableaux

Re Calvus,

OK. Mais si tu veux copier à la suite il faut que les tableaux soient un à côté de l'autre, bien entendu si l'on utilise Range("c20:c53").Copy Range("c65536").End(xlUp)(2).
 

Calvus

XLDnaute Barbatruc
Re : Importer plusieurs tableaux

Re Lonewolf,

J'ai peut être tort, mais je me dis qu'il doit bien y avoir un moyen.
Je visualise la façon de faire, mais ne maîtrise pas les tableaux pour pouvoir le faire.
 

Calvus

XLDnaute Barbatruc
Re : Importer plusieurs tableaux

Bonjour, Thebenoit, le forum,

Malheureusement non. Le format est fixé et de nombreux classeurs dans lesquels je dois aller chercher les informations sont déjà existants.
 

thebenoit59

XLDnaute Accro
Re : Importer plusieurs tableaux

Plusieurs questions :

1. Est-ce que la colonne B ne contiendra, dans sa globalité, que les textes "Désignations" ?
2. Le nombre de tableau sera t'il fixe dans la feuille Origine ?
3. Est-ce que les fonds des tableaux origines seront conservés ?
 

Calvus

XLDnaute Barbatruc
Re : Importer plusieurs tableaux

Re,

1. Oui. Les références sont écrites dans les lignes C20:C53 et C83:C116 (mais pas obligatoirement, on ne pourrait avoir que 2 ou 3 lignes par exemple).
2. Oui, à 6 comme dans l'exemple.
3. Oui

Merci
 

thebenoit59

XLDnaute Accro
Re : Importer plusieurs tableaux

Je te propose une première solution à optimiser au maximum.
Mais en attendant tu as déjà un début de solution, même si c'est très primaire ...

J'ai utilisé deux fonctions de BoisGontier, une pour fusionner des tableaux et l'autre pour supprimer des lignes d'un tableau.

La procédure se décompose ainsi :

  1. On enregistre les tableaux originaux un à un, nous les fusionnons et supprimons les lignes vides, en ne conservant que les deux colonnes utilies.
  2. Nous enregistrons les deux tableaux dans la feuille choisie en O40, les fusionnons et supprimons les lignes vides, en ne conservant que les deux colonnes utiles.
  3. On fusionne le premier tableau (reprenant les éléments Origine) et le second (la feuille choisie)
  4. On extrait les lignes en fonction des besoins de la feuille origine

J'espère que ça t'aidera déjà un peu.
 

Pièces jointes

  • Clavus - Import plusieurs tableaux.xlsm
    90.9 KB · Affichages: 68

Lone-wolf

XLDnaute Barbatruc
Re : Importer plusieurs tableaux

Bonjour thebenoit

Si j'ai bien compris la demande de Calvus, avec ton fichier il y a un problème. Les donnés de la feuille 2 doivent aller dans le premier tableau, celles de la feuille 3 dans le tableau en dessous, et celles de la feuille 4 dans le tableau en dessous; et non seulement dans le premier tableau.
 

Calvus

XLDnaute Barbatruc
Re : Importer plusieurs tableaux

Re-bonjour,

Je te propose une première solution à optimiser au maximum.
Mais en attendant tu as déjà un début de solution, même si c'est très primaire ...


J'espère que ça t'aidera déjà un peu.

C'est beaucoup mieux que primaire !

J'espère que ça t'aidera déjà un peu.

Ça m'aide beaucoup ! Merci beaucoup !!

Je viens seulement de prendre connaissance du fichier, et n'ai pas regardé le code.
Je regarderai ce soir et te demanderai si j'ai besoin d'explications si tu le veux bien.

Lone-wolf à dit:
Si j'ai bien compris la demande de Calvus, avec ton fichier il y a un problème.

Hello Lone. Thebenoit a parfaitement compris mon besoin. C'est ce que je désirais faire.

Merci à toi également.

A bientôt
 

thebenoit59

XLDnaute Accro
Re : Importer plusieurs tableaux


Ah, j'ai repris les informations laissé dans la feuille Exemple du fichier pour arriver au même résultat :/.
 

thebenoit59

XLDnaute Accro
Re : Importer plusieurs tableaux


Ah super alors. Je regarderai plus tard pour optimiser, ou si un forumeur peut m'aider, car j'ai peur de ne pas savoir faire mieux pour le moment.
 

Calvus

XLDnaute Barbatruc
Re : Importer plusieurs tableaux

Bonjour à toutes et à tous,

Thebenoit, il y a un problème si la feuille à importer ne contient qu'une seule ligne. On obtient #REF!

Quelle partie du code faut il modifier ?

Merci
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…