Intégration données dans tableau depuis autre fichier xls

Bonjour,

Je commence tout juste à prendre en main le logiciel excel dans le cadre de mon travail mais j'avoue avoir du mal à réussir ce que je veux faire.

Je vous joins les deux fichiers afin de comprendre au mieux mon problème.

En fait, je peux extraire depuis un logiciel commercial, un fichier de données sous le format xls.

A partir des données de ce fichier j'ai créé un tableau vierge que j'aimerai remplir de manière automatique avec les données du premier fichier. Donc que les colonnes A, B, C, D, E, G, H (pas la colonne F) du fichier vente vin.xls soit directement collées dans les colonnes du même nom, soit dans l'ordre C, D, J, K, F, G, E du tableau contribution de marge de l'autre fichier.

Merci de votre aide !

22vente-vin-test.zip (7.04 Ko)

Pour le bouton qui permet de sélectionner un fichier, c'est bon !

Maintenant il ne me reste plus qu'à copier les données du premier fichier dans le deuxième et là ça devient très complexe car je n'y connais vraiment rien en VBA.

J'ai trouvé ce code :

Option Explicit

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

  'A adapter : Nom des entêtes de colonnes à importer
  Colonnes = Array("Chrono", "Libellé", "Prix vente", "Ventes", "Px achat", "Tva", "BJP")

  '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("A") '==> 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("A").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

Mais quand j'affecte cette macro à un bouton et que je sélectionne mon fichier "vente vin test.xls" rien ne se passe. Est-ce que ce code est une bonne piste de départ quand même ?

Merci de votre aide.

Bonsoir

je n'ai pas regardé ta macro, mais j'en possède une autre que j'ai adaptée :

Copie les deux fichiers dans le même dossier, puis n'ouvre que tableau contribution.

ensuite clic sur le bouton, regarde si cela te convient.

attention ,j'ai modifié certaines formule, pour qu'en l'absence de nombre en chrono ou colonne j, rien ne s'affiche.

aussi, la macro est prévu pour 2000 lignes mais tu peux augmenter sans aucun pbl.

tiens-nous au jus ....

cordia5

17vente-vin-test.zip (7.06 Ko)
Rechercher des sujets similaires à "integration donnees tableau fichier xls"