Fonction VBA/Excel

DarkRider26 Messages postés 32 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 15 juin 2006 - 6 juin 2006 à 08:49
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 6 juin 2006 à 11:36
Bonjour !

Voici une fonction que j'ai créé dans VBA :

Function abond(Versement)

Dim LigneTranche As Integer
Dim Mini As Integer
Dim Maxi As Integer
Dim Abondement As Double
Dim Ecart As Integer
Dim reste As Double

Abondement = 0
Ecart = 0
LigneTranche = 5
Sheets("tranche").Select
Maxi = Cells(LigneTranche, 2)
Mini = Cells(LigneTranche, 1)

If Versement > Cells(2, 2) Then
    Versement = Cells(2, 2)
End If

Do Until LigneTranche = 1
    If Versement >= Maxi Then
        Ecart = Maxi - Mini
        Abondement = Abondement + (Ecart * Cells(LigneTranche, 3))
    Else
        Abondement = Abondement + (reste * Cells(LigneTranche, 3))
        Exit Do
    End If
      
    reste = Versement - Maxi

    LigneTranche = LigneTranche - 1
    If LigneTranche = 1 Then
        Exit Do
    End If
    Mini = Cells(LigneTranche, 1)
    Maxi = Cells(LigneTranche, 2)
Loop

abond = Abondement

End Function

Si je créé une procédure VBA qui l'appelle, tout marche, mais si sous Excel je fait dans une cellule :  =abond(200)  par exemple, et bien rien ne se passe, il me met 0 comme résultat.

Est-ce que quelqu'un pourrait m'aider ?

Merci beaucouuuup d'avance !

Greg.

3 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 juin 2006 à 09:20
Salut,

Et en mettant Public Function abond(Versement) !

Celle-ci devrait-être accessible depuis tes cellules.

@++

Mortalino
0
DarkRider26 Messages postés 32 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 15 juin 2006
6 juin 2006 à 09:52
Non ce n'était pas ça, ça fait des jours que je cherchait, tout simplement le : Sheets("tranche").Select  ne marche pas ! Excel ne el reconnait pas alors j'ai mis à la place des : sheets("tranche").cells(X,X).Value  partout ou j'avais des cells(X,X).

Merci qd même !
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
6 juin 2006 à 11:36
Bonjour

public function Abond(...) as Type
essaye ça.

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>
0
Rejoignez-nous