Formule à "étirer" sous VBA

Melinda - 20 août 2001 à 12:12
julien1381 Messages postés 8 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 17 mars 2005 - 14 mars 2005 à 14:45
j'aimerais, comme sous Excel, crée une formule, qu'il sear possible d'étirer sur les cases contiguées avce le petit carré noir. ce serait du genre de la formule "somme automatique" mais avec des fonctions particulières.
g ecrit le prog suivant pour tester la fonction mais elle ne s'étend pas.

Option Explicit
Dim Plage1 As range ' Plage en bas de la colonne
Dim Plage2 As range ' Colonne de valeur
Public Sub Max()
'Renvoie le maximum d'une colonne
Set Plage1 = ActiveWindow.RangeSelection
Set Plage2 = range(Plage1.Offset(-1, 0), Plage1.Offset(-1, 0).End(xlUp))
Plage1.Value = application.WorksheetFunction.Max(Plage2)
End Sub

merci pour votre aide.:)

6 réponses

Et le code que je t ai envoyé il compte pour du beurre ???
ton code (sans mes modifs d ajout automatique aux cellules contigues) fait un calcul et ecrit le calcul dans une cellule donnée, mais ne rentre pas de formule, donc si tu étires tu n'étires pas la formule, d ou mon code de recalcul automatique.
si tu persistes dans ton idée, tu devrais lui faire écrire la formule, pas le résultat, donc plutot un truc du style :

plage1.formular1c1 = "=max(" & plage2 & ")"

je pense que le code que je t ai envoyé pour faire ça automatiquement est plus pratique.

@+
0
ton code fonctionne mais je voudrais pouvoir étirer les formules et ce que tu vieens de me donner, ca marche pas, g une erreur d'éxécution.
prend le pas mal, je voulais voir si quelqu'un pouvait m'indiquer une autre façon de faire.
0
mel,

en une ligne :

sub metmax()

ActiveCell.FormulaR1C1 = "=max(R[-" & ActiveCell.Row - 1 & "]C:R[-1]C)"

end sub

pour le min tu changes max par min, pour la somme, max par sum etc etc. Et ça tu peux étirer !!!!!

8-)

@+
0
merci, milles fois merci pour ton aide.
j'avais trouve cette formule ce mation en faisant un enregistrement immédiat mais je n'arriavis pas à trouver le "activecell.row".
c super.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tdikarimgrps Messages postés 16 Date d'inscription samedi 21 octobre 2000 Statut Membre Dernière intervention 9 août 2002
25 juil. 2002 à 09:16
Salut,

J'ai un problème a peu près similaire. Je n'arrive pas à introduire via du code VBA la formule suivante, j'obtient un message d'erreur !!

IF(AND(O211;OR(P2=110;P2=210;P2=231;P2=240));"E36";
IF(AND(O2=21;OR(P2=110;P2=210;P2=231;P2=240));"443";
IF(AND(O2=23;OR(P2=110;P2=210;P2=231;P2=240));"U59";
IF(AND(O2=11;OR(P2=130;P2=131);Q2<>5015);"E37";
IF(AND(O2=11;P2=131;Q2=5015);"Q44";0)))))

MERCI de ton aide !!!
0
julien1381 Messages postés 8 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 17 mars 2005
14 mars 2005 à 14:45
ça marche :

Sub b()



Dim Plage As Range


Set Plage = ActiveWindow.RangeSelection


MsgBox Application.WorksheetFunction.Max(Plage)



End Sub
0
Rejoignez-nous