A L AIDE!!! utiliser les fonctions excel sous vba?

Signaler
Messages postés
42
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
25 avril 2006
-
Messages postés
209
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
15 juillet 2009
-
Bonjour, mon problème est le suivant je souhaiterais utiliser les fonctions excel au sein meme d'une macro, sans passer par une cellule excel en mettant cell.value="=sum(etcetc)
je ne veux pas toucher a la feuille excel, je veux que tous les calculs soient implémentés dans la macro elle meme.
Pourriez vous m'indiquer si il existe une formule pour utiliser les fonctions excel sous vba?
Merci d'avance

2 réponses

Messages postés
36
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 décembre 2006

Bonjour,

voici ce que j'ai trouvé :

Sub Bouton1_QuandClic()
Dim t As Double
Dim myRange As Range

Set myRange = Worksheets("Feuil1").Range("G1:G5")

t = Application.WorksheetFunction.Sum(myRange)

MsgBox t
End Sub


'******************************************
Tout ceci se trouve dans l'aide VBA
'******************************************
Utilisation des fonctions de feuille de calcul Microsoft Excel dans Visual Basic


Vous pouvez utiliser la plupart des fonctions de feuille de calcul Microsoft Excel dans vos instructions Visual Basic. Pour afficher la liste des fonctions de feuille de calcul disponibles, consultez Liste des fonctions de feuille de calcul disponibles dans Visual Basic.

Remarque Certaines fonctions de feuille de calcul n'ont pas d'utilité dans Visual Basic. Par exemple, la fonction Concatenate n'est pas nécessaire puisque l'opérateur & de Visual Basic permet d'associer plusieurs valeurs de texte.

Appel d'une fonction de feuille de calcul à partir de Visual Basic

Dans Visual Basic, les fonctions de feuille de calcul Microsoft Excel sont disponibles par l'intermédiaire de l'objet WorksheetFunction.

La procédure Sub suivante utilise la fonction de feuille de calcul Min pour déterminer la plus petite valeur d'une plage de cellules. La variable maPlage est d'abord déclarée en tant qu'objet Range, puis se voit affecter la plage A1:C10 située dans la feuille Sheet1. Une autre variable, réponse, se voit affecter la valeur résultant de l'application de la fonction Min à maPlage. Enfin, la valeur de réponse est affichée dans une boîte de message.

Sub UseFunction()
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A1:C10")
answer = Application.WorksheetFunction.Min(myRange)
MsgBox answer
End SubSi vous utilisez une fonction de feuille de calcul qui requiert une référence de plage comme argument, vous devez indiquer un objet Range. Par exemple, vous pouvez utiliser la fonction de feuille de calcul Match pour rechercher une plage de cellules. Dans une cellule de feuille de calcul, vous devez taper une formule telle que =MATCH(9,A1:A10,0). En revanche, dans une procédure Visual Basic, vous spécifiez un objet Range pour obtenir le même résultat.

Sub FindFirst()
myVar = Application.WorksheetFunction _
.Match(9, Worksheets(1).Range("A1:A10"), 0)
MsgBox myVar
End SubRemarque Les fonctions Visual Basic n'utilisent pas le qualificateur WorksheetFunction. Une fonction Visual Basic peut avoir le même nom qu'une fonction Microsoft Excel tout en fonctionnant différemment. Par exemple, Application.WorksheetFunction.Log et Log renvoient des valeurs différentes.

Insertion d'une fonction de feuille de calcul dans une cellule

Pour insérer une fonction de feuille de calcul dans une cellule, spécifiez la fonction en tant que valeur de la propriété Formula de l'objet Range correspondant. Dans l'exemple suivant, la fonction de feuille de calcul RAND (qui génère un nombre aléatoire) est affectée à la propriété Formula de la plage A1:B3 située dans la feuille Sheet1 du classeur actif.

Sub InsertFormula()
Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()"
End Sub


'********************************
Exemple :

Exemple d'utilisation des fonctions de feuille de calcul dans Visual Basic

Cet exemple montre comment utiliser la fonction de feuille de calcul Pmt pour calculer le remboursement d'un prêt immobilier (loan). Notez que cet exemple utilise la méthode InputBox plutôt que la fonction InputBox pour que la méthode puisse procéder à la vérification des données saisies. Les instructions Static obligent Visual Basic à conserver les valeurs des trois variables, qui deviennent les valeurs par défaut lors de la prochaine exécution du programme.

Static loanAmt
Static loanInt
Static loanTerm
loanAmt = Application.InputBox _
(Prompt:="Loan amount (100,000 for example)", _
Default:=loanAmt, Type:=1)
loanInt = Application.InputBox _
(Prompt:="Annual interest rate (8.75 for example)", _
Default:=loanInt, Type:=1)
loanTerm = Application.InputBox _
(Prompt:="Term in years (30 for example)", _
Default:=loanTerm, Type:=1)
payment = Application.WorksheetFunction _
.Pmt(loanInt / 1200, loanTerm * 12, loanAmt)
MsgBox "Monthly payment is " & Format(payment, "Currency")
Messages postés
209
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
15 juillet 2009

Bonjour
voici un petit exemple pour apprendre

Private Sub CommandButton1_Click()
Call add nom de la fonction (le fait de faire call appelle la fonction nommée. dans ce cas add)
End Sub

fonction :
Public Function add()
Feuil1.Select
Dim a As Integer
a = Range("A1").Value
Dim b As Integer
b = Range("B1").Value
MsgBox a + b
End Function