Coupler différents fichiers .csv ?

Bonjour à tous, voila, suite à de grosses lacunes sur excel, je me tourne vers la communauté afin de peut être trouver un chemin vers la lumière!

Je vous explique mon problème, je fais un site ecommerce qui contient énormément de produits, donc nous recevons des fichiers .csv des fournisseurs mais pour le mettre sur le site, il me faudrait un seul .csv reprenant ce que les fournisseurs nous donnent comme infos.

Par exemple:

J'ai un fichier .csv contenant les marques et modèles

Je reçois un second fichier .csv avec des accessoires qui ne sont disponibles que pour certains modèles.

Ne pouvant me permettre de faire ça à la main, je cherche un moyen de fusionner ces deux fichiers pour que les marques et modèles apparaissent dans les lignes où les accessoires sont compatibles.

Voili voulou, j'espère avec été le plus clair possible!

Merci d'avance

bonjour

ouvre tes 2 csv dans Excel

ensuite insère des RECHERCHEV

joins tes csv qu'on regarde

Bonjour, cela étant des fichiers fournisseurs il m'est interdit de les publier,

Cela dit je peux le décrire facilement après quelques jours de recherches intenses

Imaginons que je m'occupe d'un site fournissant du matériel informatique,

J'ai 2 fichiers csv donc, le premier reprenant les marques et modèles de boitier

le second joignant les pièces (imaginons que ce n'est que des cartes mères)

Le premier tableau de marques/modèles contient 28334 lignes pour 32 colonnes

Le second tableau des pièces contient 18272 lignes pour 37 colonnes

dans ces deux fichiers il y a 5 colonnes communes, disons la taille (pour marques et modèles ce serait la taille supportée, pas celle du boitier), le format, la compatibilité de l'alim, le nombre de vis ou pas-de-vis..

Ce que je veux :

1) Faire un filtre, prenant comme champ de recherche TOUTES les marques et modèles

2) Prendre une plage de critère sur la deuxième feuille

3) Comme je n'ai pas réussi à copier le résultat où je le souhaite avec le filtre avancé, je le fais sur place ce qui m'arrange aussi car :

Il faut que je copie les marques compatibles (et donc 3 colonnes: marque, modèle, année + parfois quelques milliers de lignes) dans la dernière cellule de la ligne reprenant les critères

Ce que je souhaite également, ce serait de boucler cette recherche avec le même champ de recherche mais passer à la ligne suivante sur la feuille 2 pour les critères

Je ne sais pas vraiment comment prendre la chose, n'ayant jamais réellement programmer, j'ai eu plusieurs pistes à force d'éponger internet mais il me reste un problème de syntaxe et des lacunes immenses pour faire ce que je veux (malgré que ce soit, je le pense relativement simple)

En gros, filtrer, déplacer les résultats, passer à la ligne suivante

J'ai remarqué également que le filtre avancé n'avait pas l'air content lorsque je saute une ligne entre les titres et les valeurs (genre je prends les titres (l1), les valeurs de la ligne 3 mais pas celle de la ligne 2)

Et sélectionner le tout revient à faire un "OU" ce qui ne m'arrange pas pour trier convenablement

Si je comprends bien, je déclare i, que j'utiliserai plus tard en variable pour les lignes

je fais une boucle for pour i = x to y

filtre

if valeur <> "" then

sheet1. cell (i,..) & sheet1.cell (i,..) &... &.... = sheet2.cell (i,..)

end if

next i

Je ne souhaite pas pomper un code tout fait que je ne comprends pas, j'aimerai beaucoup des cléfs pour utiliser VBA et en saisir les subtilité telle que les cellules (sheet1. cell (i,..) & sheet1.cell (i,..) &... &.... = sheet2.cell (i,..) ) Surtout au niveau de l'organisation et de l'écriture

Un lien peut m'être utile également

Est-ce vraiment d'utile d'utiliser une recherchev ? plutot une rechercheh alors non ?

Bonjour

J'ai finalement fait un fichier exemple, cela dit après quelque jours de torture je touche au but

Certe, le code doit vous sembler dégueulasse et je m'en excuse mais c'est fonctionnel ! (enfin, a 90%)..

Sub Macro1()
'
' Macro1 Macro
'

'

Dim ligne As Long
Dim c As Long

For ligne = 7 To 28334

    Sheets("Modèles").Range("A1:I100").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Sheets("Accessoires").Range("D1:I2"), Unique:=False

    Sheets("Jantes").Select
    Rows("2:2").Select
    Selection.Delete Shift:=xlUp

    For Each cell In Sheets("Modèles").Range("A2:C100").SpecialCells(xlCellTypeVisible)
    If cell.Value <> "" Then
    Sheets("Modèles").Range("A2:C100").SpecialCells(xlCellTypeVisible).Copy
    Sheets("Transit").Paste
    End If
    Next cell

      c = 1

    While Sheets("Transit").Cells(c, 1).Value <> ""
        Sheets("Final").Cells(ligne, 10) = Sheets("Final").Cells(ligne, 10) & "," & Sheets("Transit").Cells(c, 1) & " " & Sheets("Transit").Cells(c, 2) & " " & Sheets("Transit").Cells(c, 3)

        c = c + 1
    Wend

    Sheets("Modèles").Select
    Range("A1").Select

    If Sheets("Modèles").FilterMode Then
    Sheets("Modèles").ShowAllData
    End If

    Sheets("Transit").Range("A1:C10000").ClearContents

 ligne = ligne + 1
 Next ligne

 End Sub

Voila où j'en suis pour le moment!

Malheureusement lorsque le filtre ne donne pas de résultat, la boucle for each plante et la macro s'arrête ...

J'ai l'impression que le SpecialCell est un coquin qui n'a pas fini de m'ennuyer !

Si vous avez des conseils pour alléger ce pavé je suis preneur aussi !

Je m'en remet à vous pour un coup de pouce, je vais dormir donc je ne répondrai pas de suite si réponses il y a

9test21.xlsm (35.35 Ko)

re

joins tes fichiers source, au besoin en ne mettant que 10 lignes et en maquillant les données

(VBA n'est pas la solution, c'est la source de problèmes)

Rechercher des sujets similaires à "coupler differents fichiers csv"