Import de données de plusieurs fichiers

Bonjour le forum

j'ai besoin de récupérer des données (adresses) contenues dans 3 fichiers(mais parfois 2 ou simplement 1 seul) différents et de les compiler dans un quatrième (celui qui contient la macro). J'ai un code qui extrait bien les données pour chaque fichier, mais je dois le lancer à chaque fois et ce code me colle les colonnes extraites à suivre vers la droite, alors que moi je voudrais qu'elles soient collées en descendant.

je me demande si il ne serait pas possible de lancer qu'une seule fois la macro pour qu'elle m'extrait les données des fichiers présents dans un dossiers définit soit 3 fichiers, ou 2 ou un seul.

Sub ImporterColonnes()
Dim Fichier, WbkCopy As Workbook, WbkColle As Workbook
Dim Colonnes(), Col As Integer, Resultat As Variant

  'On attribue à la variable WbkColle le fichier actuel (celui qui contient la macro)
  Set WbkColle = ThisWorkbook
  'Nom des entêtes de colonnes à importer
  Colonnes = Array("id_metier_site", "num_voie", "lib_num_cpt_adr", "nom_com", "nom_voie")

  'Sélection du fichier
  Fichier = Application.GetOpenFilename("Fichiers Excels, *.xls*")
  'En cas de clic sur "ANNULER"
  If Fichier <> False Then
    'On ouvre le fichier en question
    Set WbkCopy = Workbooks.Open(Fichier)
    With WbkCopy.Sheets("Appui FTTH") '==> ADAPTER NOM de la feuille
      'Boucle sur toutes les entêtes des colonnes
      For Col = 1 To .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
        'teste si l'entête correspond à un des noms des colonnes à copier
        Resultat = Application.Match(.Cells(1, Col), Colonnes, 0)
        'Si l'entête est trouvée (colonne à copier)
        If Not IsError(Resultat) Then
          'Copié - Collé ==> ADAPTER NOM de la feuille ou coller ("TRUC" à remplacer)
          .Columns(Col).Copy WbkColle.Sheets("Feuil1").Cells(1, Cells.Columns.Count).End(xlToLeft).Offset(0, 1)
        End If
      Next Col
    End With
    WbkCopy.Close
  End If
Set WbkCopy = Nothing
Set WbkColle = Nothing
End Sub

Les trois dossiers s'appellent (et la feuille unique à l'intérieur)

Chambre FTTH; Appui FTTH et Appui ERDF

Ceux sont des fichiers d'import en csv

J'ai créer un code qui les transforme en *.txt, puis les ouvrent et les enregistrent en *.xlsx, ceci afin de récupérer les données intactes et sans "@e" ou autres à la place des "é" ou "è".

Mais là aussi je pense qu'il va falloir boucler

d'avance je vous remercie pour votre aide

25appui-erdf.xlsx (10.61 Ko)
25appui-ftth.txt (1.99 Ko)
28chambre-ftth.xlsx (16.25 Ko)

Bonjour

Un essai à tester. Te convient-il ?

60appui-erdf.zip (39.39 Ko)

Bonjour le forum

Bonjour le fil

Merci gmb c'est exactement ce que je voulais

Impec, merci pour l'aide et la réactivité

Bonsoir le forum

Bonsoir le fil

J'ai un petit souci

avec mes fichiers d'import, je m'aperçois que les colonnes qui son extraites ne se mettent pas dans le même ordre dans le nouveau fichier

Comment faire pour faire respecter l'ordre d'insertion ?

D'avance merci pour l'aide apportée

ou plutôt définir pour chaque colonne extraite une colonne de destination

D'avance merci

Bonjour

eole-33 a écrit :

ou plutôt définir pour chaque colonne extraite une colonne de destination

Pourrais-tu me montrer par un exemple concret ce que tu veux obtenir ?

Bye !

Bonsoir gmb

Voici un fichier avec la disposition que je cherche à obtenir

La base de données va me servir pour différents fichiers

D'avance merci pour ton aide

28basesadresses.xlsm (32.12 Ko)

Alors voilà :

39classeur4-v2.xlsm (20.24 Ko)

Bye !

Bonjour le forum

Bonjour le fil

Bonjour gmb

Merci pour ton aide, je viens de charger le fichier v4, mais une fois la macro lancer, je ne vois pas de changement???

Bonjour

eole-33 a écrit :

je viens de charger le fichier v4, mais une fois la macro lancer, je ne vois pas de changement???

J'ai appliqué ce que tu indiques dans l'exemple que tu as joint suite à ma demande :

capture

Mais peut-être n'ai-je rien compris ?

Bye !

oui que je suis bête forcément moi j'ai pas fais gaffe à ta modif puisque j'avais le modèle de ma demade

la la la je suis un boulet

Merci beaucoup gmb

Bonjour le forum

Bonjour le fil

j'ai un souci avec le code

C'est bien ce que j'avais remarqué

Dans les deux fichiers appuis les colonnes sont positionnées pareil, mais pas dans le fichier chambre, il y a un décalage, alors lors de l'extraction les nom_com et nom_voie sont inversés.

J'ai besoin d'avoir les nom_com avant les nom_voie et à la limite j'ai même pas besoin de titres

D'avance merci pour l'aide et la disponibilité

Bonjour

Je t'ai envoyé une copie d'écran qui montre que les colonnes sont bien toutes positionnées comme il faut, quelle que soit leur position sur leur fichier d'origine.

Je ne vois pas ce qu'il faut modifier....

Bye !

Bonjour gmb

je crois savoir d'où viens le problème

Je n'avais pas copier les 'Option Explicit"

et donc ça ne fonctionnait pas

Mais lorsque je les copies ou que je lance ton fichier démo , j'ai un message qui me dit que la variable "D" n'est pas défini

voilà


temps que j'y suis

que rajouté à la macro, si je clique sur annuler afin d'éviter le message de débogage?

D'avance merci

eole-33 a écrit :

Mais lorsque je les copies ou que je lance ton fichier démo , j'ai un message...

Tu devrais me joindre les fichiers sur lesquels tu travailles, sinon, on risque de ne pas s'en sortir.

Bye !

Les trois fichiers sont en pièces jointes en début de post

merci de ton aide


en voici trois autre

la différence se situe entre les fichiers appui et le fichier chambre

comme les extraction ne sont pas les mêmes, les colonnes ne correspondent pas

Merci de ton aide

22appui-erdf.xlsx (14.78 Ko)
18appui-ftth.xlsx (9.96 Ko)
18chambre-ftth.xlsx (14.78 Ko)

Je viens de refaire tourner la macro en sélectionnant les 2 fichiers que tu as joints.

Il y a eu un bug sur le fichier » Appui ERDF.xlsx’’ : la feuille qui contient les données s’appelait ‘’Chambre FTTH’’

Cette feuille renommée ‘’Appui ERDF’’, la macro a pu terminer son travail sans inverser les colonnes : voir image du résultat.

Bye !


Edit

Et si tu as un problème de variable non défini, ajoute la à la liste, en tout début de macro :

Option Explicit

Dim Fichier, WbkCopy As Workbook, WbkColle As Workbook
Dim Colonnes(), Col As Integer, Resultat As Variant
Dim i As Long, lgn As Long
dim d
capture

Ok gmb en déclarant "Dim D" plus de pb de lancement de macro et j'obtient le même résultat que toi

mais même sur ton dernier post on peut voir que les valeurs "nom_com" ne sont toutes dans la colonne F

comment faire alors Stp


je précise que les 3 fichiers fournis sont des fichiers en "csv" transformés en "txte et ré enregistrés en "xlsx" format utf8 afin de récupérer les données exactes.

Le fichier chambre FTTh n'a pas la même dispostion des colonnes que les deux autres au départ.

C'est pour cela que je cherchais un classement par titres

Nouvelle version :

27classeur4-v3.xlsm (19.93 Ko)

Bye !

Bonjour le fil

Merci beaucoup gmb tu es un dieux

Rechercher des sujets similaires à "import donnees fichiers"