Mettre une fonction dans une macro

marie_vba -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

J'ai crée une petite macro sur excel :

J'aimerai un morceau de code qui me permettrai de pouvoir soustraire une celulle de Excel et une variable. Je n'arrive pas à utiliser la fonction "Function". Pouvez-vous m'aider ?

J'ai deux feuilles : la première Facture où s'execute la macro et la deuxième Produits où la soustraction doit avoir lieu.

J'espère que mon message est comprehensible.

Merci à ceux ou celles qui prendront le temps de me répondre =)

Marie

2 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Une fonction doit être mise dans un module général d'autant plus si elle fait appel à des feuille différentes.
    'Exemple dans une cellule..=MonCalcul(A6;Feuil2!C6)
    Public Function MonCalcul(Rg1 As Range, Rg2 As Range) As Double
        MonCalcul = Rg1.Value * Rg2.Value
    End Function

    A+
    0
    1. marie_vba
       
      Bonjour,

      Désolé, je n'ai strictement rien compris à votre réponse !
      Pourriez-vous me re-exliquer très clairement avec un exemple concret si possible !
      0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Ont va essayer...
    Tape Alt+F11
    Tu arrive dans l'éditeur de code (ou Macros)
    Dans le menu >> Insertions >> Module
    Dans la page qui c'est ouverte tu fais un copier coller du code..
    Public Function MonCalcul(Rg1 As Range, Rg2 As Range) As Double
        MonCalcul = Rg1.Value - Rg2.Value
    End Function

    Tu ferme l'éditeur et retourne dans Excel
    Supposons que tu est sur la feuille1, dans la cellule où tu veux le résultat tu tape...
    =MonCalcul(
    Ensuite tu sélectionne la cellule où est le nombre 1, ensuite tu tape un ; (point Virgule) et tu va dans la feuille 2 ou tu sélectionne le nombre 2.
    Tu conclu en tapant un ) "parenthèse fermante)
    C'est plus clair ?

    Mais si c'est aussi simple que ça, faut pas une fonction personnalisée, suffit de taper = et ensuite sélectionner les deux cellules séparées par un - (moins)
    A+
    0