Fusionner deux documents Excel sur base d'une colonne

Bonjour à toutes et tous,

Je me tourne vers la communauté d'Excel Pratique car j'aimerais réaliser une opération pour le travail qui est probablement simple mais que je n'arrive pas à faire. J'y travaille mais je suis encore loin d'être un expert .

Je suis gérant d'un commerce et aimerait fusionner un document reprenant mes produits avec les infos: noms, prix, pièce ou kg et PLU (code produit) avec un autre document reprenant les PLU, noms et allergènes présents dans les produits. Dans les deux documents, la valeur de référence va être le PLU.

Malheureusement, certaines lignes ne sont pas présentes dans le deuxième document, je vais par exemple passer du PLU 103 à 105 alors que dans le premier on retrouvera 103, 104 et 105.

Mon but final est de pouvoir facilement copier les infos du fichier "base" dans le fichier "allergènes" afin de pouvoir imprimer des étiquettes prix montrant les allergènes à mes clients.

Pouvez-vous m'aider?

Merci!

Jonathan

15base.zip (15.73 Ko)
18allerge-nes.xlsx (22.10 Ko)

Bonjour,

si bien compris...

j'ai copié ton onglet A en B et mis la formule qui va chercher le libellé du PLU correspondant (ce PLU DOIT être unique dans ce genre de formule).

Dis nous si ça te convient

P.

13base.zip (17.21 Ko)
16allerge-nes.xlsx (49.63 Ko)

Bonjour Patrick,

En effet, ta formule semble tout a fait répondre à mon besoin!

Pourrais-tu rapidement m'expliquer la structure de la formule que tu as utilisée? Que je puisse l'appliquer aux autres informations des tableaux.

Un tout grand merci à toi!

Jonathan

Bonjour,

=INDEX([Base.xls]A!$B$2:$B$310;EQUIV([@PLU];[Base.xls]A!$A$2:$A$310;0))

la formule en français et en gros dit ceci

"ramène moi de la BASE.XLS en zone B2:B310 ce que tu trouves pour la correspondance entre le PLU de la feuille actuelle et le PLU trouvé dans base en A2:A310"

Donc pour un PLU 914 en feuille Allergène, il va voir après ce PLU (qui doit être unique) dans l'autre feuille , et renvoie le nom du produit correspondant à la ligne du PLU 914.

L'avantage de index/equi par rapport à rechercheV (pus ancien et plus connu peut être par les débutants ?) est que la recherche pourrait se faire vers la gauche si ta colonne PLU était au beau milieu; rechercheV, lui ne cherche qu'à droite par défaut.

L'idéal étant aussi de nommer les colonnes (en BASE.XLS) avec des titres explicites pour chacune, pas des "A" "T" etc qui peuvent se confondre avec la colonne A ou T et un titre à TOUTS les colonnes utilisées !

J'ai été clair ?

P.

Bonjour Patrick,

Merci pour ta réponse!

J'essaye d'appliquer la formule mais je dois malheureusement faire une erreur quelque part.

Je joins les deux nouveaux fichiers dans lesquels j'essaie de travailler.

Comme tu le vois, j'essaie d'injecter le prix et le K (kg)ou P (pièce) du fichier Base vers le fichier eMedia Final. J'essaie de respecter la syntaxe de la formule mais je ne reçois pas de résultat.

Encore merci pour ton aide ,

Jonathan

14base.zip (17.25 Ko)
11final-emedia.xlsx (37.18 Ko)
vfannel a écrit :

Bonjour Patrick,

Merci pour ta réponse!

J'essaye d'appliquer la formule mais je dois malheureusement faire une erreur quelque part.

Je joins les deux nouveaux fichiers dans lesquels j'essaie de travailler.

Comme tu le vois, j'essaie d'injecter le prix et le K (kg)ou P (pièce) du fichier Base vers le fichier eMedia Final. J'essaie de respecter la syntaxe de la formule mais je ne reçois pas de résultat.

Encore merci pour ton aide ,

Jonathan

Bonjour,

je pense avoir écrit:

L'idéal étant aussi de nommer les colonnes (en BASE.XLS) avec des titres explicites pour chacune, pas des "A" "T" etc qui peuvent se confondre avec la colonne A ou T et un titre à TOUTES les colonnes utilisées !

Hors dans le fichier BASE les titres sont A-T-C et R , ce que j'avais déconseillé

Il faut aussi que le PLU des 2 côtés soient soit en texte soit en chiffres

Je te rends les fichiers avec les 2 premières colonnes qui ont la formule

P.

11final-emedia.xlsx (19.65 Ko)
10base.zip (19.13 Ko)

Bonsoir patrick1957, vfannel, le forum

En fait, il faut compléter la feuille "Allergène" avec les infos contenues dans la feuille "Base" en s'appuyant sur les codes de la colonne 1

Vois ceci :

Option Explicit
Sub alignement()
Dim a, i As Long, j As Long, w
    a = Sheets("Base").Range("a1").CurrentRegion.Value
    With CreateObject("Scripting.Dictionary")
        For i = 2 To UBound(a, 1)
            ReDim w(1 To UBound(a, 2))
            For j = 1 To UBound(a, 2)
                w(j) = a(i, j)
            Next
            .Item(a(i, 1)) = w
        Next
        a = Sheets("Allergène").Range("a1").CurrentRegion.Resize(, 21).Value
        a(1, 17) = "A": a(1, 18) = "T": a(1, 19) = "C"
        a(1, 20) = "P.U.M.P.": a(1, 21) = "P. VENTE"
        For i = 2 To UBound(a, 1)
            If .exists(a(i, 1)) Then
                w = .Item(a(i, 1))
                For j = 17 To UBound(a, 2)
                    a(i, j) = w(j - 14)
                Next
            End If
        Next
        'Restitution
        Sheets.Add().Cells(1).Resize(UBound(a, 1), UBound(a, 2)).Value = a
    End With
End Sub

klin89

Rechercher des sujets similaires à "fusionner deux documents base colonne"