Contact: 514-605-7112 / info@lecfomasque.com

convertir formule en code vba

Ce sujet a 4 réponses, 4 participants et a été mis à jour par  Axel, il y a 1 semaine et 2 jours.

5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Messages
  • #59250

    cavila
    Participant

    bonjour tt le monde je cherche a savoir si y possibilité de convertir ces formule en vba ou une autre manier de les accélérés au moment du calcule elles me permit d’affiche les résultat suivant les sorties des produits avec les quantités les prix et selon leur catégorie selon la date inséré dans(A6) et voila exemple de formule utiliser dans le tableau AGRO:
    1/pour affiche les articles son doublons dans (A17) Voila la formule

    =INDEX(Mouvement!$F$1:$F$9959;MIN(SI((Mouvement!$O$7:$O$9959= »Agro »)*(Mouvement!$C$7:$C$9959=$A$6)*(NB.SI(A$16:A16;Mouvement!$F$7:$F$9959)=0);LIGNE(Mouvement!$F$7:$F$9959))))& » »

    2/pour affiche les quantités dans (B17)Voila la formule

    =SI($A17= » »; » »;SOMMEPROD((Mouvement!$F$7:$F$9949=$A17)*(Mouvement!$C$7:$C$9949=$A$6)*(Mouvement!$G$7:$G$9949)*(Mouvement!$B$7:$B$9949= »sortie »)))

    3/pour affiche les PRIX dans (C17)Voila la formule

    =SI($A17= » »; » »;RECHERCHEV($A17;Mouvement!$F$7:$H$9985;3;0))

    le même principe avec le tableau Légumes et….:
    1/pour affiche les articles son doublons dans (G17) Voila la formule
    =INDEX(Mouvement!$F$1:$F$9985;MIN(SI((Mouvement!$O$7:$O$9985= »Legumes »)*(Mouvement!$C$7:$C$9985=$A$6)*(NB.SI(G$16:G16;Mouvement!$F$7:$F$9985)=0);LIGNE(Mouvement!$F$7:$F$9985))))& » »

    2/pour affiche les quantités dans (H17)Voila la formule

    =SI(G17= » »; » »;SOMMEPROD((Mouvement!$F$7:$F$9948=$G17)*(Mouvement!$C$7:$C$9948=$A$6)*(Mouvement!B6:B9947= »Sortie »)*(Mouvement!$G$7:$G$9948)))

    merci et je vous joint mon classeur

    • Ce sujet a été modifié le il y a 2 semaines et 4 jours par  cavila.
    #59255

    SL
    Participant

    Bonjour
    Difficile de vous aider sans votre fichier
    La liste sans doublon peux-être obtenue facilement avec un tableau croisé en ajoutant un segment pour choisir la date.
    Powerquery pourrait être également très utile.
    SOMME.SI.ENS remplace souvent avantageusement SOMMEPROD depuis plusieurs versions d’Excel
    les fonctions tableaux sont utiles pour éviter les plages du type $C$7:$C$9948

    Sinon dans votre première formule pour identifier les valeur sans doublon, il est étonnant que votre INDEX commence en ligne 1 mais que les autres fonctions commencent en ligne 7

    Cordialement
    Stéphane

    #59256

    Cathy Monier
    Participant

    Bonjour,

    Je ne reviendrais pas sur les bonnes réflexions que vous a proposé SL. Mais il est certains que INDEX sur près de 10000 lignes cela peut ralentir selon votre PC et surtout votre version d’Excel.

    Dans tous les cas, le VBA ne vous permettra pas d’aller plus vite, car ce dernier ne fait qu’utiliser des fonctionnalités d’Excel sans intervention manuel.

    J’aurais plutôt tendance à utiliser les tableaux et PowerQuery.
    Cordialement
    Cathy

    #59266

    cavila
    Participant

    bonjour SL désolie je n’arrive pas a joindre le fichier pour l INDEX qui commence par la ligne 1 et les autres fonctions commencent en ligne 7 le bute et d »afficher rien dans les cellule des tableaux si y a pas de sortie de la date indique dans (A6)(pour ligne 1 F1 =cellule vide dans l’ongle mouvement
    exmp.rar: Désolé, ce type de fichier n’est pas autorisé pour des raisons de sécurité.
    exmp.xlsm: Désolé, ce type de fichier n’est pas autorisé pour des raisons de sécurité.
    exmp.rar: Désolé, ce type de fichier n’est pas autorisé pour des raisons de sécurité.

    • Cette réponse a été modifiée le il y a 2 semaines et 3 jours par  cavila.
    • Cette réponse a été modifiée le il y a 2 semaines et 3 jours par  cavila.
    #59465

    Axel
    Participant

    Bonjour, je vous propose de copier la formule, activer enregistrer macro, coller la formule et arrêter l enregistrement. Puis changer les lignes des cells (ligneàmodifier, colonneàne pas toucher) faire une procédure qui commence de ligne debut à ligne fin. Ainsi la procédure donnera des valeurs. Il n y aura plus de formule.

5 sujets de 1 à 5 (sur un total de 5)

Vous devez être connecté pour répondre à ce sujet.