Tirer une formule en fonction du nombre de valeur avec VBA

jojo57

XLDnaute Nouveau
Bonjour, je fais un tableau de bord pour mon stage, et j'aimeriez que vous m'aidiez pour sur un point.

Voila, j'ai 6 lignes de valeurs dans mon fichier joint en exemple, de janvier à juin. Les valeurs des colonnes A à C sont extraites d'un autre fichier. Et les deux colonnes D et E sont des formules qui calculent les marges.

Au mois d'aout j'aurai les données au 31/07/2011, donc j'aurai une ligne de plus, pour les colonnes A,B,C. Donc sans étirer les formules en D et E jusqu'en bas, j'aimerai qu'elle s'etirent en fonction du nombre de valeur que j'ai dans la colonne A par exemple. Est^possible? merci d'avance
 

Pièces jointes

  • Formule étirée vba.xls
    15.5 KB · Affichages: 54

Efgé

XLDnaute Barbatruc
Re : Tirer une formule en fonction du nombre de valeur avec VBA

Bonjour jojo57,
Tout dépend de la façon dont les données sont incrémentées en colonnes A, B et C.
si c'est "à la main" ou par copier/coller , tu peux essayer ceci ;
Click droit sur l'onglet / Visualiser le code.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Columns(1)) Is Nothing Or Target.Count > 1 Then Exit Sub
I = Cells(Rows.Count, 1).End(xlUp).Row
Range("D2:D" & I).FormulaLocal = "=B2*C2"
Range("E2:E" & I).FormulaLocal = "=D2*2/3"
End Sub
Cordialement
 

Pièces jointes

  • Formule__vba(2).xls
    21.5 KB · Affichages: 59

david84

XLDnaute Barbatruc
Re : Tirer une formule en fonction du nombre de valeur avec VBA

Bonjour, salut Fred:),
Nommer chaque colonne de ton tableau à l'aide la fonction DECALER afin de rendre ton tableau dynamique. Exemple pour la 1ère colonne (Dates) :Nommer ton champs Dates et utiliser la formule suivante :
Code:
=decaler($A$1;1;;nbval(A:A)-1)
A adapter pour les autres colonnes
A+
 

jojo57

XLDnaute Nouveau
Re: Re : Tirer une formule en fonction du nombre de valeur avec VBA

Tout d'abord merci de vos réponses. David, je comprends pas ou tu veux en venir, je connais la fonction decaler, mais je comprend comment elle peut m'aider a tirer une formule en fonction du nombre de lignes? Peux tu m'éclairer?

EfGé, j'ai regardé ton fichier joint, alors si on entre une donnée par une, ca fonctionne, mais moi ça sera un collage d'un autre fichier, donc chaque mois j'écrase les 3 colonnes puis je recolle en A2 les nouvelles données. Et la ça marche pas avec ta macro.
 

david84

XLDnaute Barbatruc
Re : Tirer une formule en fonction du nombre de valeur avec VBA

Re
cf.fichier (c'est fait en formules mais tu peux l'adapter en vba).
Rentre des nouvelles lignes (fais un copier-coller de ton tableau par ex et colle-le à la suite et tu verras)
A+
 

Pièces jointes

  • Formule étirée vba-1.xls
    33 KB · Affichages: 73

Efgé

XLDnaute Barbatruc
Re : Tirer une formule en fonction du nombre de valeur avec VBA

Re jojo57, Bonjour David84 :),
De mon coté, pour que ça fonctionne, il faut mettre
Code:
If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
au lieu de
Code:
If Intersect(Target, Columns(1)) Is Nothing Or Target.Count > 1 Then Exit Sub
Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Tirer une formule en fonction du nombre de valeur avec VBA

Bonsoir à tous


Pour varier les plaisirs

VB:
Sub a()
Dim t: t = Split("=B2*C2 =D2*2/3")
With Range("D2:D" & [counta(a:a)]) ' * attention pas de vide en colonne A sinon ...
    .FormulaLocal = t(0)
    .Offset(, 1).FormulaLocal = t(1)
End With
End Sub

* : il vaut mieux utiliser: & [A65536].End(xlup).Row
 

jojo57

XLDnaute Nouveau
Re: Re : Tirer une formule en fonction du nombre de valeur avec VBA

Extra, ça marche staple et efgé c'est super. Par contre j'ai moins compris le principe staple (moi pauvre novice :)), pourrais tu m'expliquer pour que je puisse le refaire moi meme. Sinon David, j'avais penser a faire comme toi, mais le probleme avec les formules c'est que j'en ai deja 5000 lignes sur 15 colonnes, et ça rame beaucoup, c'est pour ça que je ne veux pas étirer la formule. Et vba, à part les codes de l'enregistreur que je comprends, aie aie. Mais merci a vous trois, c'est cool.
 
Dernière édition:

Discussions similaires

Réponses
62
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 071
Membres
104 020
dernier inscrit
Mzghal