Comment appeler une fonction a partir d'une autre
josianneb
-
JosianneB Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
JosianneB Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé cette fonction :
Function ratio()
Dim N As Integer
Dim i As Integer
Dim zone As Range
Set zone = Range("C1").CurrentRegion
N = zone.Rows.Count
For i = 1 To N
If zone.Cells(i, 1) > zone.Cells(i, 2) Then
zone.Cells(i, 3) = zone.Cells(i, 2) / zone.Cells(i, 1)
Else
If zone.Cells(i, 2) > zone.Cells(i, 1) Then
zone.Cells(i, 3) = zone.Cells(i, 1) / zone.Cells(i, 2)
End If
End If
Next
End Function
et j'aimerais en créer une seconde qui appellera cette fonction (la fonction ratio) et retournera 1 moins le résultat de l'appel de la fonction ratio. J'ai réussi a utiliser la fonction ratio en mettant un certain nombre de chiffre dans la colonne A et B d'une feuille Excel et a retourner les résultats dans la troisième colonne et je voulais prendre les valeurs trouvées dans la colonne C et enlever 1. Est-ce que quelqu'un peut m'aider.
Merci
J'ai créé cette fonction :
Function ratio()
Dim N As Integer
Dim i As Integer
Dim zone As Range
Set zone = Range("C1").CurrentRegion
N = zone.Rows.Count
For i = 1 To N
If zone.Cells(i, 1) > zone.Cells(i, 2) Then
zone.Cells(i, 3) = zone.Cells(i, 2) / zone.Cells(i, 1)
Else
If zone.Cells(i, 2) > zone.Cells(i, 1) Then
zone.Cells(i, 3) = zone.Cells(i, 1) / zone.Cells(i, 2)
End If
End If
Next
End Function
et j'aimerais en créer une seconde qui appellera cette fonction (la fonction ratio) et retournera 1 moins le résultat de l'appel de la fonction ratio. J'ai réussi a utiliser la fonction ratio en mettant un certain nombre de chiffre dans la colonne A et B d'une feuille Excel et a retourner les résultats dans la troisième colonne et je voulais prendre les valeurs trouvées dans la colonne C et enlever 1. Est-ce que quelqu'un peut m'aider.
Merci
A voir également:
- Appeler une fonction vba dans une cellule excel
- Fonction si et excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Déplacer une colonne excel - Guide
- Excel cellule couleur si condition texte - Guide
- Bloquer une cellule excel - Guide
2 réponses
Cette fonction n'est pas une fonction, elle ne renvoie aucun résultat, c'est une procédure.
Pour plus d'informations sur les procédures et les fonctions, consulter cet excellent cours VBA pour débutants (et autres) page 29 :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf
Cordialement
Patrice
Pour plus d'informations sur les procédures et les fonctions, consulter cet excellent cours VBA pour débutants (et autres) page 29 :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf
Cordialement
Patrice
Merci pour l'information !
Je suis bloquée sur une autre question. Voila, j'ai des données dans un tableau dans la colonne A qui sont en lien avec des données de la colonne C, j'ai créé des inputbox pour demander à l'utilisateur d'insérer deux valeurs de la colonne A. Ma sous-routine cherche les valeurs de la colonne A demandées par l'utilisateur et les lies aux valeurs de la colonne C associée. J'aimerais à l'aide d'une boucle While Wend, multiplier les valeurs de la colonne B qui se situes entre les deux valeurs choisies initialement. Je ne sais pas comment utiliser la boucle while wend pour faire ceci. Est-ce que vous pouvez m'orienter. Merci
Public Sub test()
Dim celluletrouvee As Range
valeurage1 = InputBox("La premiere valeur d'âge est:")
Set celluletrouvee = Range("A1:A5").Find(valeurage1, lookat:=xlWhole)
If celluletrouvee Is Nothing Then
MsgBox ("La valeur d'âge n'apparaît pas dans le tableau")
Else
valeurage1 = InputBox("La première valeur d'âge est:")
Set cel1 = Cells(celluletrouvee.Row, celluletrouvee.Column + 2)
End If
valeurage2 = InputBox("La deuxième valeur d'âge est:")
Set celluletrouvee = Range("A1:A5").Find(valeurage2, lookat:=xlWhole)
If celluletrouvee Is Nothing Then
MsgBox ("La valeur d'âge n'apparaît pas dans le tableau")
Else
Set cel2 = Cells(celluletrouvee.Row, celluletrouvee.Column + 2)
End If
End Sub
Je suis bloquée sur une autre question. Voila, j'ai des données dans un tableau dans la colonne A qui sont en lien avec des données de la colonne C, j'ai créé des inputbox pour demander à l'utilisateur d'insérer deux valeurs de la colonne A. Ma sous-routine cherche les valeurs de la colonne A demandées par l'utilisateur et les lies aux valeurs de la colonne C associée. J'aimerais à l'aide d'une boucle While Wend, multiplier les valeurs de la colonne B qui se situes entre les deux valeurs choisies initialement. Je ne sais pas comment utiliser la boucle while wend pour faire ceci. Est-ce que vous pouvez m'orienter. Merci
Public Sub test()
Dim celluletrouvee As Range
valeurage1 = InputBox("La premiere valeur d'âge est:")
Set celluletrouvee = Range("A1:A5").Find(valeurage1, lookat:=xlWhole)
If celluletrouvee Is Nothing Then
MsgBox ("La valeur d'âge n'apparaît pas dans le tableau")
Else
valeurage1 = InputBox("La première valeur d'âge est:")
Set cel1 = Cells(celluletrouvee.Row, celluletrouvee.Column + 2)
End If
valeurage2 = InputBox("La deuxième valeur d'âge est:")
Set celluletrouvee = Range("A1:A5").Find(valeurage2, lookat:=xlWhole)
If celluletrouvee Is Nothing Then
MsgBox ("La valeur d'âge n'apparaît pas dans le tableau")
Else
Set cel2 = Cells(celluletrouvee.Row, celluletrouvee.Column + 2)
End If
End Sub