fomule avec des variables en VBA ?

Le
jean
Bonjour,
J'ai réalisé une simulation en excel 2007 qui implique une formule tel que
=croissance(b50:b60,a50:a60,a50). En mettant l'écart 50 à 60 en variable je
réalise cette fonction en utilisant les "indirect" mais sur une base de
données de plus de 5000 lignes et de nombreuses autres fonctions, c'est lourd
et lent.
J'essaye donc de faire la même chose avec une macro vba en utilisant :

Range("L50").Select
ActiveCell.Formula = "=growth(B50:b60,a50:a60,a51)"
Range("L50:L58").Select
Selection.FillDown

qui marche bien mais comment mettre b50, b60,a50,a60 en variable ?
J'ai essayé des "dim" mais sans succès ?
Merci de m'aider, c'est sympa de votre part.




--
merci bises à +
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe.R
Le #19888041
Bonsoir,
supposant la valeur souhaitée des variables en A1 et en A2 :

Sub varfor()
Dim mAa As String, maB As String
mAa = [a1]
maB = [a2]
ActiveCell.Formula = "=growth(" & maB & "," & mAa & ",a51)"
End Sub
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"jean" news:
Bonjour,
J'ai réalisé une simulation en excel 2007 qui implique une formule tel que
=croissance(b50:b60,a50:a60,a50). En mettant l'écart 50 à 60 en variable
je
réalise cette fonction en utilisant les "indirect"... mais sur une base
de
données de plus de 5000 lignes et de nombreuses autres fonctions, c'est
lourd
et lent.
J'essaye donc de faire la même chose avec une macro vba en utilisant :

Range("L50").Select
ActiveCell.Formula = "=growth(B50:b60,a50:a60,a51)"
Range("L50:L58").Select
Selection.FillDown

qui marche bien mais comment mettre b50, b60,a50,a60 en variable ?
J'ai essayé des "dim" mais sans succès ?
Merci de m'aider, c'est sympa de votre part.




--
merci ... bises à +


MichDenis
Le #19888161
Bonjour Jean,

Il y a ceci :

'-------------------------------------
Sub test()
Dim Sh As Worksheet
'Variable représentant la feuille où sont tes formules
Set Sh = Worksheets("Feuil1") 'Nom de la feuille
With Sh
With .Range("L50")
'les cellules ayant des .Address(0,0) représente
'des adresses relatives... sans les (0,0), tu auras
'des adresse absolues ...
.Formula = "=growth(" & Sh.Range("B50").Address(0, 0) & _
":" & Sh.Range("b60").Address(0, 0) & "," & _
Sh.Range("a50").Address(0, 0) & ":" & _
Sh.Range("a60").Address(0, 0) & "," _
& Sh.Range("a51").Address & ")"
'Le 8 représente le nombre de cellules vers
'le bas où tu veux copier les formules
.Resize(8).FillDown
End With
End With

End Sub
'-------------------------------------



"jean"
Bonjour,
J'ai réalisé une simulation en excel 2007 qui implique une formule tel que
=croissance(b50:b60,a50:a60,a50). En mettant l'écart 50 à 60 en variable je
réalise cette fonction en utilisant les "indirect"... mais sur une base de
données de plus de 5000 lignes et de nombreuses autres fonctions, c'est lourd
et lent.
J'essaye donc de faire la même chose avec une macro vba en utilisant :

Range("L50").Select
ActiveCell.Formula = "=growth(B50:b60,a50:a60,a51)"
Range("L50:L58").Select
Selection.FillDown

qui marche bien mais comment mettre b50, b60,a50,a60 en variable ?
J'ai essayé des "dim" mais sans succès ?
Merci de m'aider, c'est sympa de votre part.




--
merci ... bises à +
jean
Le #19889151
wouaaahhhh et même que ça marche !
(je ne sais comment, mais ça marche!!!!)
merci merci....

--
merci ... bises à +


"Philippe.R" a écrit :

Bonsoir,
supposant la valeur souhaitée des variables en A1 et en A2 :

Sub varfor()
Dim mAa As String, maB As String
mAa = [a1]
maB = [a2]
ActiveCell.Formula = "=growth(" & maB & "," & mAa & ",a51)"
End Sub
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"jean" news:
> Bonjour,
> J'ai réalisé une simulation en excel 2007 qui implique une formule tel que
> =croissance(b50:b60,a50:a60,a50). En mettant l'écart 50 à 60 en variable
> je
> réalise cette fonction en utilisant les "indirect"... mais sur une base
> de
> données de plus de 5000 lignes et de nombreuses autres fonctions, c'est
> lourd
> et lent.
> J'essaye donc de faire la même chose avec une macro vba en utilisant :
>
> Range("L50").Select
> ActiveCell.Formula = "=growth(B50:b60,a50:a60,a51)"
> Range("L50:L58").Select
> Selection.FillDown
>
> qui marche bien mais comment mettre b50, b60,a50,a60 en variable ?
> J'ai essayé des "dim" mais sans succès ?
> Merci de m'aider, c'est sympa de votre part.
>
>
>
>
> --
> merci ... bises à +




jean
Le #19889141
... je n'ai pas essayé ta solution car celle de Phillipe a marché du premier
coup, mais merci tout de même.
--
merci ... bises à +


"MichDenis" a écrit :

Bonjour Jean,

Il y a ceci :

'-------------------------------------
Sub test()
Dim Sh As Worksheet
'Variable représentant la feuille où sont tes formules
Set Sh = Worksheets("Feuil1") 'Nom de la feuille
With Sh
With .Range("L50")
'les cellules ayant des .Address(0,0) représente
'des adresses relatives... sans les (0,0), tu auras
'des adresse absolues ...
.Formula = "=growth(" & Sh.Range("B50").Address(0, 0) & _
":" & Sh.Range("b60").Address(0, 0) & "," & _
Sh.Range("a50").Address(0, 0) & ":" & _
Sh.Range("a60").Address(0, 0) & "," _
& Sh.Range("a51").Address & ")"
'Le 8 représente le nombre de cellules vers
'le bas où tu veux copier les formules
.Resize(8).FillDown
End With
End With

End Sub
'-------------------------------------



"jean"
Bonjour,
J'ai réalisé une simulation en excel 2007 qui implique une formule tel que
=croissance(b50:b60,a50:a60,a50). En mettant l'écart 50 à 60 en variable je
réalise cette fonction en utilisant les "indirect"... mais sur une base de
données de plus de 5000 lignes et de nombreuses autres fonctions, c'est lourd
et lent.
J'essaye donc de faire la même chose avec une macro vba en utilisant :

Range("L50").Select
ActiveCell.Formula = "=growth(B50:b60,a50:a60,a51)"
Range("L50:L58").Select
Selection.FillDown

qui marche bien mais comment mettre b50, b60,a50,a60 en variable ?
J'ai essayé des "dim" mais sans succès ?
Merci de m'aider, c'est sympa de votre part.




--
merci ... bises à +




Publicité
Poster une réponse
Anonyme