Commande de frites
Bonsoir à tous,
Je sais que ce n'est pas trop pour le travail mais comme je travaille à l'usine le week-end nous aimons commander à manger
J'ai fait un fichier basique que je dois mettre en forme par après et rajouter des valeurs encore. En faite sur mon fichier j'ai plusieurs colonne avec une liste déroulante et j'aurais aimé savoir si c'était possible que ça fasse le calcul automatiquement quand je clique sur un des choix? ou alors faire peut être dans une autre page et faire avec la commande recherche sur une autre feuille? je vous mets le fichier ci-joint, d'avance m'en veuillez pas je sais que c'est très constructif mais c'est pratique merci d'avance
Bonjour,
Avec une fonction personnalisée.
Function SFRIT(plg As Range)
Dim c As Range, S, Prx
Application.Volatile
For Each c In plg
If c <> "" Then
Prx = Split(c)
S = S + Val(Replace(Prx(UBound(Prx)), ",", "."))
End If
Next c
SFRIT = S
End FunctionCordialement.
Bonsoir MFerrand, merci beaucoup pour ta réponse, je sais pas mal novice, je dois mettre le code que tu as mis ou exactement?
panzoed a écrit :Bonsoir MFerrand, merci beaucoup pour ta réponse, je sais pas mal novice, je dois mettre le code que tu as mis ou exactement?
j'ai vu la fonction mais ça me donne #nom? je pense que je dois activer qqch comme le vba pour activer ça?
ça marche maintenant, pourtant mes macro était activé je pense, demain je teste au boulot le fichier, merciiiii en tout cas t'es un chef, dommage que je ne comprenne pas le vba xD ça m'a l'air super compliqué lol
La fonction (le code) est dans un module standard. Tu la trouveras en ouvrant l'éditeur (raccourci : Alt+F11) dans Module1.
Elle s'utilise de la même façon que les fonctions Excel, mais les macros doivent être activées, sinon son nom n'est pas reconnu et en effet ça affichera #NOM?
Utilisation simple : = puis nom de la fonction, puis entre parenthèse la plage de cellules dont les prix seront à additionner.
Ce qu'elle fait n'est pas compliqué non plus : elle parcours toutes les cellules de la plage qui lui est soumise, les ignore si elle sont vides, et si elles ne sont pas vides elle "splitte" leur contenu.
C'est à dire elle sépare les mots séparés par des espaces pour en faire un tableau. Elle prend le dernier élément du tableau qui contient le prix suivi de €, récupère le prix, pour le cumuler dans un variable. Et elle affiche le total. Pour récupérer le prix complet, elle transforme la virgule en point pour pouvoir utiliser une fonction VBA qui ne reconnaît que le point comme séparateur décimal.
Pour le lire, il faut évidemment connaître un peu les commandes VBA... Ce type de fonctions, réalisé comme une macro mais qui fonctionnera comme les autres (la ligne de commande : Application.Volatile, lui permet d'être recalculée comme les autres aussi, lors des recalculs), est dite fonction personnalisée car adaptée à une situation particulière... Il n'est sans doute pas impossible d'y parvenir avec les fonctions classiques mais la formule aurait été beaucoup plus longue et pas sûr que l'on parvienne au résultat avec une seule formule... Alors que là on y parvient avec juste quelques lignes de code, mais cela repose sur la structure choisie pour les données (personnalisées) qu'on soumet à la fonction : une chaîne dont le dernier mot est de la forme 0,00€. Que cela change, et elle renverra 0, sauf à la repersonnaliser en fonction de la repersonnalisation des données.
Cordialement.
Bonjour,
Un grand grand merci peut être que je vais prendre des cours du soir pour apprendre mieux l'excel et voir pour le vba car c'est super chouette et vraiment pratique je trouve merci beaucoup en tout cas