IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

calcul sous condition [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 1
    Par défaut calcul sous condition
    Bonjour,
    J'ai besoin d'aide, je cherche à créer une programme vba qui me permettrai de faire un calcul sous une condition et d'afficher le résultat dans une nouvelle colonne de mon tableau mais étant novice en programmation vba. Je ne vois pas comment faire.

    la condition de mon calcul est que : si (Stock Actuel + Quantité Commande)< Stock de sécurité alors faut faire le calcul Stock sécurité -(Stock Actuel + Quantité commande) et on affiche le résultat du calcul dans une nouvelle colonne
    et si (Stock Actuel+Quantité Commande)>Stock sécurité afficher 0 dans la nouvelle colonne.
    Il faudrait que le programme parcourt tout les lignes de mon tableau.

    Je vous joint mon fichier
    Merci d'avance de votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Bonjour,

    Tu ne devrais pas avoir besoin de VBA pour ça.
    Utilise la fonction Si().
    Si(test;valeur si test est vrai ; valeur si test est faux)

  3. #3
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Excel est à privilégier avant d'utiliser le VBA si possible, maintenant si vous tenez à une fonction personnalisée en VBA, en voici une:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Nw_Stock(St_Actuel As Double, Qte_Com As Double, St_Secur As Double) As Double
        If (St_Actuel + Qte_Com) < St_Secur Then Nw_Stock = St_Secur - (St_Actuel + Qte_Com) Else: Nw_Stock = 0
    End Function
    dans la première celliule de la nouvelle colonne, saisissez la formule:
    Comme c'est dans un tableau structuré, la formule se recopie automatiquement sur les lignes suivantes
    Pièce jointe 577532

    Autre solution en VBA pur, mais il faudra cliquer sur un bouton pour relancer la macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Calcul()
        Dim St_Actuel As Double, Qte_Com As Double, St_Secur As Double
        Dim Col As Long, i As Long, DerLig As Long
        Col = 18 'première colonne libre=colonne "R"
        DerLig = Range("A" & Rows.Count).End(xlUp).Row
        Application.ScreenUpdating = False
        For i = 6 To DerLig
            St_Actuel = Cells(i, "P")
            Qte_Com = Cells(i, "Q")
            St_Secur = Cells(i, "M")
            If (St_Actuel + Qte_Com) < St_Secur Then Cells(i, Col).Value = St_Secur - (St_Actuel + Qte_Com) Else: Cells(i, Col).Value = 0
        Next i
    End Sub
    le fichier
    Pièce jointe 577535

    cdlt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL-5.6] Calcul sous conditions
    Par ju91a dans le forum MySQL
    Réponses: 1
    Dernier message: 27/01/2015, 04h31
  2. [PHP 5.2] Calcule sous condition dans un formulaire
    Par bryan1000ch dans le forum Langage
    Réponses: 4
    Dernier message: 15/11/2014, 14h44
  3. [XL-2003] Calcul sous conditions
    Par Corradi dans le forum Excel
    Réponses: 7
    Dernier message: 19/05/2014, 15h04
  4. Faire des calcules sous condition
    Par naim216 dans le forum kettle/PDI
    Réponses: 1
    Dernier message: 01/07/2013, 15h15
  5. [XL-2007] effectuer un calcul sous condition
    Par chrnoe dans le forum Excel
    Réponses: 3
    Dernier message: 13/01/2010, 21h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo