Additioner deux variables avec calcul VBA

Bonjour à tous,

J'ai un tableur qui me permet de trier les produits de différents services et je souhaiterai que les coupes de champagne soient transposées en bouteille (en arrondissant au supérieur sachant qu'il faut 5 coupes pour une bouteille).

J'ai donc écrit le code suivant :

Sub CP_BTL()

With ThisWorkbook.Worksheets("MyMicrosDD")
If Range("I") = "507513" _
Then Range("O").Value = .Range("O").Value + FormulaLocal = "=ENT(RECHERCHEV(AL134,I130:O674,7,FAUX)/5)+1"

End If

End With

End Sub

La colonne I contient les références des produits et la colonne O contient la quantité. La case AL134 contient la réference de la coupe dont je me sers pour retrouver la quantité par la rechercheV.

Il m'indique une erreur sur l'objet range et je ne comprends pas vraiment d'ou ça peut venir.

Par avance merci pour vote aide !

Bonjour Phenomenox

Si je regarde comme ça ton code, tu sembles vouloir additionner le contenu de ta cellule O

avec la valeur déjà existante + la quantité trouvée avec recherchev()

Essaye ceci

Range("O").FormulaLocal = "=" & .Range("O").Value & "+ENT(RECHERCHEV(AL134,I130:O674,7,FAUX)/5)+1"

A+

Bonjour

Bonjour BrunoM45

Ma petite contribution (pas testée)

Il manquait le numéro de ligne dans I et dans O (je t'ai mis 8 )

Sub CP_BTL()

  With ThisWorkbook.Worksheets("MyMicrosDD")
    If Range("I8") = "507513" Then
      'Range("O8").Value = .Range("O8").Value + FormulaLocal = "=ENT(RECHERCHEV(AL134,I130:O674,7,FAUX)/5)+1"
      Range("O8").Value = .Range("O8").Value + Int(Application.VLookup(Range("AL134"), Range("I130:O674"), 7, 0))
    End If
  End With

End Sub

Si pas ça

Bonjour à vous,

Merci pour vos réponses, cependant jene souhaite pas définir une ligne car la valeur peut se trouver n'importe où dans le tableau, il faut donc trouver la réf dans la colonne I puis faire le calcul en O.

Je n'ai plus accès au fichier jusqu'à demain matin, je vous mettrai un exemple en ligne des que possible.

Bonjour à vous,

Voila le fichier comme promis, j'ai inséré une explication rapide dans le document.

MDP : 1973

Par avance merci.

Bonjour

Avec le fichier, je pensais que j'allais comprendre, et bien c'est raté

Phenomenox a écrit :

je souhaiterai que les coupes de champagne soient transposées en bouteille

Où est marqué le nombre de coupe ?

Phenomenox a écrit :

la valeur peut se trouver n'importe où dans le tableau, il faut donc trouver la réf dans la colonne I puis faire le calcul en O.

La valeur de quoi ?

La ref de quoi ?

Le plus simple, enfin je pense, c'est de fournir des exemples exacts

exemple

Pour la réf 500017 (I4) il faut trouver .... parce que ....., le nombre de coupe est dans ....

Autre exemple

Pour la réf 502431 (I133) il faut trouver .... parce que ....., le nombre de coupe est dans ....

Le nombre de coupes est dans le tableau sur les colonnes A, B et C. Pour le bar plage j'ai placé les coupes en A92 (Quantité en B92) et les bouteilles en A90 (Q en B90) juste pour le Taittinger pour le moment.

C'est la quantité de coupes qui peut se trouver n'importe où puisque la taille du tableau à gauche (fichier importé) varie d'un jour à l'autre. Quant à la réf, il s'agit de la référence de la bouteille de Taittinger qui se trouve en A91.

En fait, pour la référence 507513 (Bouteille de Taittinger) il faudrait ajouter une certaine quantité de bouteille selon la quantité de coupes avec le ratio suivant : 0 à 4 coupes => 0 bouteille // 5 à 9 coupes => 1 bouteille // 10 à 14 coupes => 2 bouteilles et ainsi de suite par tranche de 5.

Voilà, si tu as besoin de plus de détails je me tiens à ton entière disposition

Bonjour

Ce n'est pas encore ça

Banzai64 a écrit :

Le plus simple, enfin je pense, c'est de fournir des exemples exacts

Pas d'exemple

Ce que j'ai compris

Passer en revue toutes la liste de la colonne I (ou J) qui n'ont pas de quantité en colonne Q

Chercher cette réf en colonne A, regarder en colonne B la valeur qui donnera par un calcul le nombre de bouteille que l'on notera en Q

Si c'est ça il faut m'expliquer

En J22 on trouve "CP TAITTINGER BR/0011" que l'on trouve aussi en J52 et aussi en J75

Après recherche on les trouve en A92, A176 et A296

Que marque t'on en colonne Q ?

Donne des exemples précis

Re,

En fait le rapport, tout comme le tableau est organisé par service, donc si tu trouves CP TAITTINGER BR/0011 en plusieurs fois c'est parce que plusieurs services en ont vendu.

Du coup, dans la colonne des quantités il faudrait faire le calcul pour transposer les coupes en bouteilles et ce pour chaque service puisque le but est de savoir combien de bouteille il faut fournir à chaque service.

En bref, il faut ajouter à la quantité de de bouteilles de taittinger (ref 507513), la quantité de coupes transposée en bouteilles.

L'exemple est le taittinger, la bouteille (ref 507513 en A91 pour le bar plage) et la coupe en A92.

J'espère avoir été assez précis..

Merci pour ton temps.

Bonjour

A dire si j'ai compris

Bonjour Banzai,

Si j'ai bien compris ce que tu as fait, la quantité de cp est transposée selon le ratio que je t'ai donné et c'est déjà une grande avancée

Maintenant il faudrait que la quantité, au lieu de se placer sur la ligne CP TAITTINGER BR/0011, s'additionne à la quantité de Taittinger Brut s,a 1/1 (la bouteille).

Je ne sais pas si c'est possible, en tous cas je te remercie pour ton aide.

Bonjour

Phenomenox a écrit :

Si j'ai bien compris ce que tu as fait

Cela veut dire "Tu n'as rien compris de mes explications et tu as fait autre chose"

Quand je t'ai demandé de donner des exemples précis tu ne veux pas le faire, parce que pour dire

Phenomenox a écrit :

L'exemple est le taittinger, la bouteille (ref 507513 en A91 pour le bar plage) et la coupe en A92.

pour toi c'est peut-être un exemple mais je fais quoi avec ça ?

Quelle est la relation entre la réf 507513 et la réf 507903, comment à partir de l'un je trouve l'autre

Comment trouver la relation de la réf 500017 ?

A251 : "CP TAITTINGER RS/0011" réf 507904 comment trouve t'on la réf de la bouteille ?

Un exemple c'est de dire pour la "KRONEMBOURG/0011" (J4) il faut trouver ... (O4) parce que ......

Je passe la main

Je suivrai ce post

Bonjour Banzai, bonjour à tous,

Je suis désolé d'avoir si mal expliqué, c'est vrai qu'en relisant c'est dur de comprendre. Je vais donc reprendre :

L'objectif du document est d'afficher les quantités de produits vendus par service et de passer les commandes en conséquence. L'ensemble des produits vendus est affiché dans le tableau sur les colonnes A, B et C, tableau copié d'un rapport quotidien (nous le nommerons ABC).

Actuellement, la macro va chercher le nom de chaque service puis insère chaque produit avec la Date, le Service, la référence du rapport ABC, le libéllé du rapport ABC, la localisation, le libéllé et la référence du logiciel de commande et sa quantité, dans le tableau de "F" à "O" (les colonnes "H" et "N" sont laissées vide exprés).

Exemple : COCA/0011 en A22, avec la quantité en B22 (37) et la référence en A23 (500104), pour le Service BAR PLAGE/0011, article présent dans le rapport ABC.

Il se retranscrit dans le second tableau avec son libéllé et sa référence du rapport ABC mais également avec la référence (CA500104) et le libéllé (Coca 33cl VC) du logiciel de Commande (BSS) dont il récupère les informations dans la feuille 1 du classeur.

Notez que si un produit n'a pas de référence BSS, il ne sera pas affiché car la référence est indispensable à la commande.

A la fin du traitement, le tableau affiche tous les produits référencés (BSS) et consommés pour chaque service (avec un système de filtre).

Voilà pour la présentation générale du document qui j'éspère sera assez claire..

Pour ce qui est des coupes de champagne et des bouteilles, le problème est le suivant :

Il n'existe pas de coupes de champagne dans les stocks, mais les services en vendent quand même donc elles sont inscrites dans le rapport ABC. Les stocks utilisent donc un ratio de 5 coupes pour 1 bouteille.

L'objectif serait, dans la macro, d'insérer une ligne qui regarde la quantité de coupes vendues dans un service, puis les convertisse en bouteille sachant que les deux produits n'ont pas de référence commune.

On aurait donc, pour l'exemple du Bar Plage, 6 CP TAITTINGER BR/0011 (A92) et 2 TAITTINGER SA/0011 (A90) (Avec leur référence respective en A93 et A91). Comme les coupes ne sont pas référencés dans le logiciel de commande, elles n'apparaitront pas sur le tableau généré de "F" à "O".Cependant les bouteilles sont référencées, pour le moment il en apparait 2 en "O", il faudrait donc écrire que comme il y a 6 coupes il faut ajouter une bouteille à la quantité déjà présente. Je souhaiterai déjà parvenir à le faire pour un produit puis décliner le code aux autres, en assumant que ma demande est réalisable.

J'éspère avoir été compréhensible et je me tiens bien sûr à votre entière disposition pour plus d'information.

Cordialement.

Bonjour à tous,

J'ai trouvé une autre façon de procéder qui serait d'afficher le nombre de coupes, référencé comme la bouteille (CA507513) puis de diviser le résultat par 5 avant d'afficher la quantité en "O" à la référence des coupes (507903), ça fera une seconde ligne pour le même produit mais ce n'est pas dérangeant.

Je m'explique : Il y a les coupes de taittinger (CP TAITTINGER BR/0011 // référence 507903) qui sont à transposer en bouteille (Taittinger brut s,a 1/1 // référence 507513). En référençant la coupe à la même référence BSS que la bouteille (CA507513), le logiciel de commande (BSS) considérera la coupe comme une bouteille et en divisant la quantité par 5, ce sera la quantité de bouteille(s) nécessaire.

Il me faudrait donc le code vba permmettant de trouver la référence de la coupe (507903) en "I" et de diviser la quantité correspondante en "O" par 5.

Je vous joins le document avec la référence de la coupe ajoutée. En espérant que vous pourrez m'aider.

Codialement.

Rechercher des sujets similaires à "additioner deux variables calcul vba"