Possible de comparer?

Bonjour,

Je vais tenter d'être assez explicite en formulant ma demande :

Je souhaiterais pourvoir aligner sur la même ligne les noms de mes produits sur une même feuille excel sur laquelle j'ai deux tableaux.

Dans mon exemple en pièce jointe ci-dessous il n’y a que très peu de produit, mais c'est pour l'exemple, en réalité il y a environs 1000 lignes de produits.

J'aimerais par exemple que sur la ligne 1 il y ai le produit "tiroirs" sur les deux tableaux, sur la 2eme ligne le produit panier...etc. en fait je souhaiterais que le deuxième tableau s'aligne sur les noms du premier.

D'un tableau à un autre il se peut qu'il y est des produits présents que dans l'un ou l'autre.

Merci de votre aide si cela est possible.

Cordialement

Frank

17tests.xlsx (8.88 Ko)

Bonjour,

tableaux mal conçus s'ils sont réellement comme cela...

Une colonne "produit" + 1 colonne "date" + 1 colonne "Qté "

Donc chaque produit a UNE date ET une quantité, après on fait un tcd et ça roule.

On ne travaille pas sur des tableaux différents comme présenté ici et chauqe produit devrait avoir son propre CODE pour éviter les fautes de frappe ou alors une liste déroulante avec tous.

P.

Bonjour le forum,

H2 :

=SOMMEPROD(($A$2:$A$1000=G2)*($B$2:$B$1000))
cumuls

Bonjour le fil, bonjour le forum,

Une proposition VBA. Comme tu avais Tiroirs et tiroirs j'ai tout converti en majuscule (assez d'accord avec Patrick...). Les données sont renvoyées dans les colonnes G et H.

le code :

Sub Macro2()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable i (Incrément)
Dim D As Object 'déclare la variable D (Dictionnaire)

Set O = Worksheets("Feuil1") 'définit l'onglet O
O.Columns("G:H").Clear 'efface les colonnes G et H (d'éventuelles anciennes données)
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    D(UCase(TV(I, 1))) = D(UCase(TV(I, 1))) + TV(I, 2) 'alimente le dictionnaire I avec la donnée ligne I colonne 1 de TV (convertie en majuscule)
Next I 'prochaine ligne de la boucle
TV = O.Range("D1").CurrentRegion 'redéfinit le tableau des valeurs TV
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    D(UCase(TV(I, 1))) = D(UCase(TV(I, 1))) + TV(I, 2) 'alimente le dictionnaire I avec la donnée ligne I colonne 1 de TV (convertie en majuscule)
Next I 'prochaine ligne de la boucle
'renvoie dans la cellule G1 redimensionné de l'onglet O la liste des éléments du dictionnaire D sans doublon
O.Range("G1").Resize(D.Count, 1).Value = Application.Transpose(D.Keys)
'renvoie dans la cellule H1 redimensionné de l'onglet O le total de chaque élément du dictionnaire D sans doublon
O.Range("H1").Resize(D.Count, 1).Value = Application.Transpose(D.items)
End Sub

Si tu ne voulais que les liste sans les valeurs (car tes explications ne sont pas très claires), utilise ce code :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DLA As Integer 'déclare la variable DLA (Dernière Ligne de la colonne A)
Dim DLD As Integer 'déclare la variable DLD (Dernière Ligne de la colonne D)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable i (Incrément)
Dim D As Object 'déclare la variable D (Dictionnaire)

Set O = Worksheets("Feuil1") 'définit l'onglet O
O.Columns("G:G").Clear 'efface la colonne G (d'éventuelles anciennes données)
DLA = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DLA de la colonne A de l'onglet O
DLD = O.Cells(Application.Rows.Count, "D").End(xlUp).Row 'définit la dernière ligne éditée DLD de la colonne D de l'onglet O
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
TV = O.Range("A2:A" & DLA) 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    D(UCase(TV(I, 1))) = "" 'alimente le dictionnaire I avec la donnée ligne I colonne 1 de TV (convertie en majuscule)
Next I 'prochaine ligne de la boucle
TV = O.Range("D2:DA" & DLD) 'redéfinit le tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    D(UCase(TV(I, 1))) = "" 'alimente le dictionnaire I avec la donnée ligne I colonne 1 de TV (convertie en majuscule)
Next I 'prochaine ligne de la boucle
'renvoie dans la cellule G1 redimensionné de l'onglet O la liste des éléments du dictionnaire D sans doublon
O.Range("G1").Resize(D.Count, 1).Value = Application.Transpose(D.Keys)
End Sub

Comme tu avais Tiroirs et tiroirs j'ai tout converti en majuscule (assez d'accord avec Patrick...). Les données sont renvoyées dans les colonnes G et H.

Je me sens moins seul...

Code toujours clair et bien documenté

Bonjour,

Merci grandement de votre aide, je constate qu'il est possible de faire ce que je veux faire....Mais je m’aperçois que je suis bien loin de comprendre les manips à faire. Je débute avec excel et tout ceci est du chinois pour moi, je ne comprend rien à ce que vous avez donné comme solutions , mais je vous remercie grandement de vous être penché sur mon cas. Je vais me renseigner correctement sur les solutions données et étudier plus en profondeur excel pour comprendre vos réponses. Merci à vous.

Cordialement

Frank

Re,

No comment !... Enfin si, justement...

ThauThème a écrit :

Re,

No comment !... Enfin si, justement...

Des erreurs classiques de débutant

bonjour

une contribution sans vba .....

12kyky31.xlsx (56.77 Ko)

cordialement

Re,

Kyky sauvé par Tulipe ?!... Je pense que oui...

Yeahhhhh Sauvé!

Merci Merci !

Cordialement

Frank

salut thau thème

ben ; je crois que kyky va se pencher au point de tomber

a sa place ; je pomperai le code en demandant ce qu'il faut changer pour adapter au cas ou (la colonne de depart)

ainsi comme tu es qq' un de sympa; tu remets gentment(patiement) ton code en surlignant (range "a1") je crois )

bien sur si kyky en fait la demande

aller c'est parti mon kyky

ps : petite suggestion

pour faire simple ;il suffit de copier coller le tablo A sous le B et de trier sans double ( y a des boutons pour ça ) ensuite pour sommer >>>ma formule ou .....

cordialement

Rechercher des sujets similaires à "possible comparer"