Fonction excel dans VBA
Résolu/Fermé
I folima Elda
-
12 avril 2008 à 16:00
I folima Elda Messages postés 24 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 10 juillet 2016 - 16 avril 2008 à 20:11
I folima Elda Messages postés 24 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 10 juillet 2016 - 16 avril 2008 à 20:11
A voir également:
- Fonction excel dans VBA
- Excel fonction si et - Guide
- Liste déroulante excel - Guide
- Fonction moyenne excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
7 réponses
I folima Elda
Messages postés
24
Date d'inscription
vendredi 11 avril 2008
Statut
Membre
Dernière intervention
10 juillet 2016
12 avril 2008 à 16:42
12 avril 2008 à 16:42
modification du code...
j = 4
LDeb1 = j
CDeb1 = 1
LFin1 = (j + N - 1)
CFin1 = 1
LDeb2 = j
CDeb2 = 2
LFin2 = (j + N - 1)
CFin2 = 2
Cells(2, 5).FormulaLocal = "=PENTE(Cells(LDeb2, CDeb2), Cells(LFin2, CFin2); Cells(LDeb1, CDeb1), Cells(LFin1, CFin1))"
Cells(2, 6).FormulaLocal = "=ORDONNEE.ORIGINE(Cells(LDeb2, CDeb2), Cells(LFin2, CFin2); Cells(LDeb1, CDeb1), Cells(LFin1, CFin1))"
Cells(2, 7).FormulaLocal = "=COEFFICIENT.DETERMINATION(Cells(LDeb2, CDeb2), Cells(LFin2, CFin2); Cells(LDeb1, CDeb1), Cells(LFin1, CFin1))"
a = Cells(2, 5)
b = Cells(2, 6)
r² = Cells(2, 7)
mais celà ne fonctionne toujours pas.
Quelqu'un svp
j = 4
LDeb1 = j
CDeb1 = 1
LFin1 = (j + N - 1)
CFin1 = 1
LDeb2 = j
CDeb2 = 2
LFin2 = (j + N - 1)
CFin2 = 2
Cells(2, 5).FormulaLocal = "=PENTE(Cells(LDeb2, CDeb2), Cells(LFin2, CFin2); Cells(LDeb1, CDeb1), Cells(LFin1, CFin1))"
Cells(2, 6).FormulaLocal = "=ORDONNEE.ORIGINE(Cells(LDeb2, CDeb2), Cells(LFin2, CFin2); Cells(LDeb1, CDeb1), Cells(LFin1, CFin1))"
Cells(2, 7).FormulaLocal = "=COEFFICIENT.DETERMINATION(Cells(LDeb2, CDeb2), Cells(LFin2, CFin2); Cells(LDeb1, CDeb1), Cells(LFin1, CFin1))"
a = Cells(2, 5)
b = Cells(2, 6)
r² = Cells(2, 7)
mais celà ne fonctionne toujours pas.
Quelqu'un svp
tu ne peux pas utiliser des variables dans ton code entre guillemets.
Pour utiliser des fonctions de feuille de calcul directement sous VBA tu dois utiliser la fonction :
Application.WorksheetFunction.Sum
(Ici Sum pour la fonction Somme)
Si tu ne connais pas le nom de la fonction à utiliser, place toi sur ta cellule contenant ta formule et lance la macro :
MsgBox ActiveCell.Formula
Il traduira tout seul...
Pour utiliser des fonctions de feuille de calcul directement sous VBA tu dois utiliser la fonction :
Application.WorksheetFunction.Sum
(Ici Sum pour la fonction Somme)
Si tu ne connais pas le nom de la fonction à utiliser, place toi sur ta cellule contenant ta formule et lance la macro :
MsgBox ActiveCell.Formula
Il traduira tout seul...
I folima Elda
Messages postés
24
Date d'inscription
vendredi 11 avril 2008
Statut
Membre
Dernière intervention
10 juillet 2016
13 avril 2008 à 12:05
13 avril 2008 à 12:05
Ok, en utilisant ton truc je suis bien content. Je peut utiliser ma formule Excel sous VBA en connaissant la plage de donnée. Sauf que moi je ne la connais pas. Alors comment remplacer le B1:B9 en variable.
Voilà ce que j'ai en ce moment mais il me dit affectation à une constant non autorisé
LDeb = j
CDeb = 1
LFin = (j + N - 1)
CFin = 1
Range(Cells(LDeb, CDeb), Cells(LFin, CFin)) = X
LDeb = j
CDeb = 2
LFin = (j + N - 1)
CFin = 2
Range(Cells(LDeb, CDeb), Cells(LFin, CFin)) = Y
Application.WorksheetFunction.Slope(Y, X) = pente
Voilà ce que j'ai en ce moment mais il me dit affectation à une constant non autorisé
LDeb = j
CDeb = 1
LFin = (j + N - 1)
CFin = 1
Range(Cells(LDeb, CDeb), Cells(LFin, CFin)) = X
LDeb = j
CDeb = 2
LFin = (j + N - 1)
CFin = 2
Range(Cells(LDeb, CDeb), Cells(LFin, CFin)) = Y
Application.WorksheetFunction.Slope(Y, X) = pente
Utilisateur anonyme
13 avril 2008 à 15:56
13 avril 2008 à 15:56
Bonjour,
Il vous faut une colonne index !
C'est a dire une colonne non-vide variable que vous n'avez pas besoin de connaitre,
les instructions VBA sont la pour ca !
Colonne Index A, en partant de la ligne 5 ( Si A1 a A4 sont non-vide, caracteres cachés, n'importe quoi)
Dim Plage As Range, Cellule As Range, Balise As Long
Balise = Range("A65536").End(xlUp).Row ' Cherche la premiere cellule non-vide en partant de la fin vers le haut
Set Plage = Range("A5:A" & Balise)
For Each Cellule In Plage
...MsgBox Cellule.Offset(0,0).Value ' L'option Offset permet un acces a toute la feuille
Next Cellule
Lupin
Il vous faut une colonne index !
C'est a dire une colonne non-vide variable que vous n'avez pas besoin de connaitre,
les instructions VBA sont la pour ca !
Colonne Index A, en partant de la ligne 5 ( Si A1 a A4 sont non-vide, caracteres cachés, n'importe quoi)
Dim Plage As Range, Cellule As Range, Balise As Long
Balise = Range("A65536").End(xlUp).Row ' Cherche la premiere cellule non-vide en partant de la fin vers le haut
Set Plage = Range("A5:A" & Balise)
For Each Cellule In Plage
...MsgBox Cellule.Offset(0,0).Value ' L'option Offset permet un acces a toute la feuille
Next Cellule
Lupin
I folima Elda
Messages postés
24
Date d'inscription
vendredi 11 avril 2008
Statut
Membre
Dernière intervention
10 juillet 2016
13 avril 2008 à 18:45
13 avril 2008 à 18:45
Donc en fait avec ça, il va dans un premier temps me chercher ma dernière ligne de ma colonne (que je ne connais pas donc) et ensuite il me prendra ma plage de donnée de la colonne dont je connais le début jusqu'à la fin.
ça m'a l'air pas mal comme truc. Et ça marche comme truc pour appliquer ma fonction: Application.WorksheetFunction.Slope(Y, X)?
ça m'a l'air pas mal comme truc. Et ça marche comme truc pour appliquer ma fonction: Application.WorksheetFunction.Slope(Y, X)?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
13 avril 2008 à 22:49
13 avril 2008 à 22:49
re :
en fait je ne connais pas l'instruction [ Slope ]
Application.WorksheetFunction.Slope(Y, X)
mais oui, on place cette instruction à la place du
...MsgBox Cellule ...
je jette un coup d'oeil sur le net pour me renseigner.
Lupin
en fait je ne connais pas l'instruction [ Slope ]
Application.WorksheetFunction.Slope(Y, X)
mais oui, on place cette instruction à la place du
...MsgBox Cellule ...
je jette un coup d'oeil sur le net pour me renseigner.
Lupin
Utilisateur anonyme
13 avril 2008 à 23:04
13 avril 2008 à 23:04
re :
alors voilà ce que ca donne :
attention, pas testé c'est un exemple type effectuant la fonction [ slope ]
si vous désirez inscrire le formule [ Application.WorksheetFunction.Slope(Plage1, Plage2) ]
dans une cellule, c'est une autre histoire.
Lupin
alors voilà ce que ca donne :
Option Explicit ' Sub CalculPentePourChaquePoint() Dim Plage As Range, Cellule As Range, Balise As Long Dim Plage1 As Range, Plage2 As Range, Resultat As Double ' Cherche la premiere cellule non-vide en partant de la fin vers le haut Balise = Range("A65536").End(xlUp).Row Set Plage = Range("A5:A" & Balise) For Each Cellule In Plage ' L'option Offset permet un acces a toute la feuille ' MsgBox Cellule.Offset(0, 0).Value Set Plage1 = Cellule.Offset(0, 2) Set Plage2 = Cellule.Offset(0, 3) Resultat = Application.WorksheetFunction.Slope(Plage1, Plage2) If (Resultat > 0) Then Cellule.Offset(0, 1).Value = Resultat End If Next Cellule End Sub '
attention, pas testé c'est un exemple type effectuant la fonction [ slope ]
si vous désirez inscrire le formule [ Application.WorksheetFunction.Slope(Plage1, Plage2) ]
dans une cellule, c'est une autre histoire.
Lupin
I folima Elda
Messages postés
24
Date d'inscription
vendredi 11 avril 2008
Statut
Membre
Dernière intervention
10 juillet 2016
15 avril 2008 à 13:08
15 avril 2008 à 13:08
Oui après mon but est de l'afficher dans une cellule donnée. Mais je l'utilise également pour des d'autres calcule ultérieurement.
Utilisateur anonyme
15 avril 2008 à 13:49
15 avril 2008 à 13:49
re:
afficher le résultat dans une cellule donnée ?
ou
insérer la formule dans une cellule donnée ?
Lupin
afficher le résultat dans une cellule donnée ?
ou
insérer la formule dans une cellule donnée ?
Lupin
I folima Elda
Messages postés
24
Date d'inscription
vendredi 11 avril 2008
Statut
Membre
Dernière intervention
10 juillet 2016
16 avril 2008 à 20:11
16 avril 2008 à 20:11
j'ai bien dit afficher le résultat dans une cellule donnée. C'est juste une donnée à titre indicatif pour l'utilisateur.
En gros, la macro calcule la pente, affiche le résultat dans une cellule puis ce résultat, la macro la réutilise pour d'autre calcul (ce de fisher pour ce qui connaissent ;)). Voilà. Et merci de ton aide Lupin
En gros, la macro calcule la pente, affiche le résultat dans une cellule puis ce résultat, la macro la réutilise pour d'autre calcul (ce de fisher pour ce qui connaissent ;)). Voilà. Et merci de ton aide Lupin