Comparer celulles et colonnes et copier les valeurs

Bonjour,

Je cherche à comparer les cellules A11, A14, A17, A20, A23 et A26 de la feuille "Manifeste" par rapport à la colonne A sur la feuille "Codes". Si elle sont identiques, les cellules E11, E14, E17, E20, E23 et E26 de la feuille "Manifeste", se copies dans colonne H de la ligne correspondante dans la feuille "Codes"

J'ai tenté une approche avec la fonction RECHERCHV mais s'en y parvenir et en VBA c'est hors de porté pour moi.

Ci joint le fichier en question.

13guignol-ep-v05.xlsm (33.10 Ko)

Bonjour Guignol81,

Essayez avec la formule suivante en colonne H de l'onglet code

=SI(ESTNUM(EQUIV(A25;$Manifeste.A:A;0));INDIRECT(ADRESSE(EQUIV(A25;$Manifeste.A:A;0);5;4;1;"Manifeste");1);"")

Bonsoir Mat, bonsoir le forum,

Tu veux renvoyer une formule qui est en fonction des Quantités en colonne M de l'onglet Manifeste.

Mais si tu as, par exemple, plusieurs Fruit Rouges dans le tableau Manifeste (Fraise en ligne 12, quantité 10 et Framboise en ligne 15 quantité 20) quelle sera la formule 10 fois, 20 fois ou la somme des deux (10 + 20 = 30 fois) la Masse de la colonne M de l'onglet Données ?

Je sens que ça va vite devenir une usine à gaz cette histoire...

Bonjour Guignol81,

Essayez avec la formule suivante en colonne H de l'onglet code

=SI(ESTNUM(EQUIV(A25;$Manifeste.A:A;0));INDIRECT(ADRESSE(EQUIV(A25;$Manifeste.A:A;0);5;4;1;"Manifeste");1);"")

Lorsque je met la formule en colonne H la formule reste apparente et aucun résultat.

La colonne et en format standard et la case "formule visible au lieu du résultat" est bien décochée dans les option.

Je ne comprends pas pourquoi...

Bonsoir Mat, bonsoir le forum,

Tu veux renvoyer une formule qui est en fonction des Quantités en colonne M de l'onglet Manifeste.

Mais si tu as, par exemple, plusieurs Fruit Rouges dans le tableau Manifeste (Fraise en ligne 12, quantité 10 et Framboise en ligne 15 quantité 20) quelle sera la formule 10 fois, 20 fois ou la somme des deux (10 + 20 = 30 fois) la Masse de la colonne M de l'onglet Données ?

Je sens que ça va vite devenir une usine à gaz cette histoire...

Oui se que je souhaite c'est 10+20 il faut que les résultats se cumules.

Bonjour Guignol81,

Je ne comprends pas pourquoi...

C'est typiquement le symptôme qu'il manque le signe égal devant la formule

Il y a bien le égal (j'ai fais un copier/coller)

Et parfois un message d'erreur

sans titre

Bonjour toutes et tous

@Guignol81

La formule fonctionne très bien, celle de Njhub

tu as trop de cellules fusionnées de la feuille 'Manifeste' d'où l'erreur

crdlt,

André

ztest11

Bonjour à tous,

Je n'avais pas de doute sur la formule de Njhub, que je remercie au passage

Merci Andre13 pour avoir résolu se problème d’écriture de formule.

Par contre j'ai encore un souci que thauthème à soulevé, c'est lorsqu'il y a dans le tableau manifeste 2 valeurs identiques, il faut qu'il s’additionne et la il met que la 1ere trouvé dans le tableau code.

Ex: si j'ai le chiffre 1 en A11 et en A14 sur le feuille "Manifeste", en H25 de la feuille "Codes" il faut que le résultat de E11 et E14 s’additionne.

Je comprends un peu mieux la phrase qu'il a écrite "Ça va vite devenir une usine a gaz..."

Est ce faisable ?

Re,

J'y travaille depuis hier... Je me fait livrer du gaz...

C'est encore plus complexe car il faut aussi prendre en compte la masse qui est différente pour chaque denrée...

Re,

J'y travaille depuis hier... Je me fait livrer du gaz...

C'est encore plus complexe car il faut aussi prendre en compte la masse qui est différente pour chaque denrée...

C'est quand tu a parlé du problème hier, que je me suis rendu compte du soucis et de la complexité du problème, chose que j’avais pas pris en compte !

Re,

Bon voilà... L'erreur que j'ai faite hier c'est de vouloir faire le calcul à chaque changement dans l'onglet Manifeste. Il me fallait prendre en compte une éventuelle erreur de l'utilisateur qui pouvait sélectionner d'abord "Tomate" puis se ravisait et finalement prenait "Fraise". Bref je m'était barré dans plus qu'une usine à gaz....

Mais comme la nuit porte conseil (dit-on), je me suis réveillé avec comme solution de faire les calculs à l'activation de l'onglet Codes.

Du coup, plus besoin de formules, juste les calculs qui se font quant tu sélectionnes cet onglet. Si tu modifies Manifeste les calculs se referont en revenant dans Codes...

Finalement ce n'était pas compliqué du tout. Le code :

Private Sub Worksheet_Activate()
Dim PM As Range 'déclare la variable PM (Plage Manifeste)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim OD As Worksheet 'déclare la variable OD (Onglet Données)
Dim OM As Worksheet 'déclare la variable OC (Onglet Code)
Dim TC As Variant 'déclare la variable TC (Tableau des Codes)
Dim TSC As Variant 'déclare la variable TSC (Tableau des Sommes des Codes)

Set OM = Worksheets("Manifeste") 'définit l'onglet codes OM
Set OD = Worksheets("Données") 'définit l'onglet données OD
Set PM = OM.Range("A11,A14,A17,A20,A23,A26") 'définit la plage PM
TC = Range("A25").CurrentRegion 'définit le tableau des codes TC
ReDim TSC(UBound(TC, 1)) 'redimensionne le tableau des sommes des codes TSC
For Each CEL In PM 'boucle 1 : sur toutes les cellules CEL de la plage PM
    For I = 1 To UBound(TC, 1) 'boucle 2 : sur tous les codes de la colonne 1 du tableau des codes TC
        If CEL.Value = TC(I, 1) Then 'si le code de la cellule CEL est égal au code du tableau des codes TC(I,1)
            'la valeur TSC(I) du tableau de la somme des codes est égale à elle même plus
            '(la masse en colonne M de l'onglet "Données" correspondant au numéro de série, multipliée par la quantité en
            'colonne H de Manifeste) - si plusieurs codes identiques la somme sera faite
            TSC(I) = TSC(I) + OD.Columns(1).Find(CEL.Offset(2, 0).Value, , xlValues, xlWhole).Offset(0, 12) * CEL.Offset(0, 7).Value
            Cells(I + 24, "H").Value = IIf(TSC(I) = 0, "", TSC(I)) 'renvoie le total dans la cellule ligne I+24 colonne "H" de l'onglet "Codes"
        End If 'fin de la condition
    Next I 'prochain code de la boucle 2
Next CEL 'prochaine cellule de la boucle 1
End Sub

J'avais oublié de te préciser qu'en supprimant le Numéro de Série ou la Désignation d'un Bloc, ça effaçait le bloc entier. J'ai modifié le code du bouton EFFACER LES DONNEES, en VBA la règle d'or est d'éviter auntant que possible les Select...

Le fichier v06 :

15guignol-ep-v06.xlsm (38.75 Ko)

Merci ThauThème, ça fonctionne parfaitement !

On gagne un temps fou pour remplir se manifeste et surtout avec la dernière modif, on divise par deux les impressions !

La planète et mes collègues te remercie !

PS: Reste à savoir si l'effet de serre du à ta consommation de gaz ne sera pas supérieur au économie de papier et d'encre future

Rechercher des sujets similaires à "comparer celulles colonnes copier valeurs"