OVH Cloud OVH Cloud

Recherche une formule !

9 réponses
Avatar
Fred
Bonjour a tous,

Voici ce que je suis capable de faire en VBA et non dans la cellule
directement

Cellule = ActiveCell.Address
ActiveCell.Offset(-1, 3).Select
tot = Cells.Find(What:="Total", After:=ActiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlColumns, SearchDirection:=xlPrevious,
MatchCase:=False _
, SearchFormat:=True).Select
tet = ActiveCell.Offset(1, 0).Address
Range(Cellule).Select
Résultat = WorksheetFunction.Sum(Range(tet, ActiveCell.Offset(-1,
3).AddressLocal))
ActiveCell.FormulaR1C1 = Résultat


En gros je veut tout d'abort

1- trouver l'adresse de la cellule en desous d'ou c'est ecrit "Total"

2- trouver l'adresse qui ce trouve (3 cellules a droite) et (1 cellule en
haut) de celle qui est active

3- Pour finalement faire la somme du range de l'étape 1 et l'étape 2

Mon probleme c'est qu'il ne faut pas que je passe par VBA pour faire ca et
cette formule la ne ce trouvera jamais a la meme place !

Y a-t-il une facon de le faire dans la cellule directement exemple :
=somme(.....) sans passer par le VBA

Si quelqu'un a une iddée svp m'en faire part :)


Merci de votre attention !

9 réponses

Avatar
RGI
Bonjour
Les fonction ADRESSE , LIGNE, COLONNE, DROITE,GAUCHE, SOMME doivent
pouvoir t'aider non

Bonjour a tous,

Voici ce que je suis capable de faire en VBA et non dans la cellule
directement

Cellule = ActiveCell.Address
ActiveCell.Offset(-1, 3).Select
tot = Cells.Find(What:="Total", After:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlColumns, SearchDirection:=xlPrevious,
MatchCase:úlse _
, SearchFormat:=True).Select
tet = ActiveCell.Offset(1, 0).Address
Range(Cellule).Select
Résultat = WorksheetFunction.Sum(Range(tet, ActiveCell.Offset(-1,
3).AddressLocal))
ActiveCell.FormulaR1C1 = Résultat


En gros je veut tout d'abort

1- trouver l'adresse de la cellule en desous d'ou c'est ecrit "Total"

2- trouver l'adresse qui ce trouve (3 cellules a droite) et (1 cellule en
haut) de celle qui est active

3- Pour finalement faire la somme du range de l'étape 1 et l'étape 2

Mon probleme c'est qu'il ne faut pas que je passe par VBA pour faire ca et
cette formule la ne ce trouvera jamais a la meme place !

Y a-t-il une facon de le faire dans la cellule directement exemple :
=somme(.....) sans passer par le VBA

Si quelqu'un a une iddée svp m'en faire part :)


Merci de votre attention !






Avatar
isabelle
bonjour Fred,

le mot "Total" est t'il toujours dans la même colonne ?

isabelle


Bonjour a tous,

Voici ce que je suis capable de faire en VBA et non dans la cellule
directement

Cellule = ActiveCell.Address
ActiveCell.Offset(-1, 3).Select
tot = Cells.Find(What:="Total", After:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlColumns, SearchDirection:=xlPrevious,
MatchCase:úlse _
, SearchFormat:=True).Select
tet = ActiveCell.Offset(1, 0).Address
Range(Cellule).Select
Résultat = WorksheetFunction.Sum(Range(tet, ActiveCell.Offset(-1,
3).AddressLocal))
ActiveCell.FormulaR1C1 = Résultat


En gros je veut tout d'abort

1- trouver l'adresse de la cellule en desous d'ou c'est ecrit "Total"

2- trouver l'adresse qui ce trouve (3 cellules a droite) et (1 cellule en
haut) de celle qui est active

3- Pour finalement faire la somme du range de l'étape 1 et l'étape 2

Mon probleme c'est qu'il ne faut pas que je passe par VBA pour faire ca et
cette formule la ne ce trouvera jamais a la meme place !

Y a-t-il une facon de le faire dans la cellule directement exemple :
=somme(.....) sans passer par le VBA

Si quelqu'un a une iddée svp m'en faire part :)


Merci de votre attention !





Avatar
Fred
Bonjour Isabelle,

Oui le mot Total ce trouve toujour dans la meme colonne.

la somme est toujour dans la meme colonne que mon total ! donc exemple :
=somme(J30:J50) !!!

Merci !

"Fred" a écrit dans le message de news:
%
Bonjour a tous,

Voici ce que je suis capable de faire en VBA et non dans la cellule
directement

Cellule = ActiveCell.Address
ActiveCell.Offset(-1, 3).Select
tot = Cells.Find(What:="Total", After:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlColumns, SearchDirection:=xlPrevious,
MatchCase:úlse _
, SearchFormat:=True).Select
tet = ActiveCell.Offset(1, 0).Address
Range(Cellule).Select
Résultat = WorksheetFunction.Sum(Range(tet, ActiveCell.Offset(-1,
3).AddressLocal))
ActiveCell.FormulaR1C1 = Résultat


En gros je veut tout d'abort

1- trouver l'adresse de la cellule en desous d'ou c'est ecrit "Total"

2- trouver l'adresse qui ce trouve (3 cellules a droite) et (1 cellule en
haut) de celle qui est active

3- Pour finalement faire la somme du range de l'étape 1 et l'étape 2

Mon probleme c'est qu'il ne faut pas que je passe par VBA pour faire ca et
cette formule la ne ce trouvera jamais a la meme place !

Y a-t-il une facon de le faire dans la cellule directement exemple :
=somme(.....) sans passer par le VBA

Si quelqu'un a une iddée svp m'en faire part :)


Merci de votre attention !





Avatar
isabelle
bonjour Fred,

on a pas vraiment le choix d'utiliser l'événement SelectionChange,
vue que la cellule contenant la formulle et la cellule active n'est pas la même.
utilisé la formule =SPsomme() dans une cellule
____________________________________________________________
'à copier sur la page code de la feuille,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
____________________________________________________________
'et celle ci dans un module standard

Function SPsomme()
Application.Volatile
colonne = ActiveCell.Column + 3
debut = ActiveCell.Row - 1
fin = Columns(colonne).Find(What:="Total").Row
SPsomme = Application.Sum(Range(Cells(debut, colonne), Cells(fin, colonne)))
End Function
____________________________________________________________

isabelle

Bonjour Isabelle,

Oui le mot Total ce trouve toujour dans la meme colonne.

la somme est toujour dans la meme colonne que mon total ! donc exemple :
=somme(J30:J50) !!!

Merci !

"Fred" a écrit dans le message de news:
%

Bonjour a tous,

Voici ce que je suis capable de faire en VBA et non dans la cellule
directement

Cellule = ActiveCell.Address
ActiveCell.Offset(-1, 3).Select
tot = Cells.Find(What:="Total", After:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlColumns, SearchDirection:=xlPrevious,
MatchCase:úlse _
, SearchFormat:=True).Select
tet = ActiveCell.Offset(1, 0).Address
Range(Cellule).Select
Résultat = WorksheetFunction.Sum(Range(tet, ActiveCell.Offset(-1,
3).AddressLocal))
ActiveCell.FormulaR1C1 = Résultat


En gros je veut tout d'abort

1- trouver l'adresse de la cellule en desous d'ou c'est ecrit "Total"

2- trouver l'adresse qui ce trouve (3 cellules a droite) et (1 cellule en
haut) de celle qui est active

3- Pour finalement faire la somme du range de l'étape 1 et l'étape 2

Mon probleme c'est qu'il ne faut pas que je passe par VBA pour faire ca et
cette formule la ne ce trouvera jamais a la meme place !

Y a-t-il une facon de le faire dans la cellule directement exemple :
=somme(.....) sans passer par le VBA

Si quelqu'un a une iddée svp m'en faire part :)


Merci de votre attention !










Avatar
Fred
Re Bonjour Isabelle

J'ai essayer ce que tu ma dit et sa fonctionne a 50%
il me donne le bon résultat mais aussitot que je me deplace dans mon
classeur et bien la cellule tombe a #valeur

bizzare....

Merci de ton aide

"isabelle" a écrit dans le message de news:

bonjour Fred,

on a pas vraiment le choix d'utiliser l'événement SelectionChange,
vue que la cellule contenant la formulle et la cellule active n'est pas la
même.
utilisé la formule =SPsomme() dans une cellule
____________________________________________________________
'à copier sur la page code de la feuille,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
____________________________________________________________
'et celle ci dans un module standard

Function SPsomme()
Application.Volatile
colonne = ActiveCell.Column + 3
debut = ActiveCell.Row - 1
fin = Columns(colonne).Find(What:="Total").Row
SPsomme = Application.Sum(Range(Cells(debut, colonne), Cells(fin,
colonne)))
End Function
____________________________________________________________

isabelle

Bonjour Isabelle,

Oui le mot Total ce trouve toujour dans la meme colonne.

la somme est toujour dans la meme colonne que mon total ! donc exemple :
=somme(J30:J50) !!!

Merci !

"Fred" a écrit dans le message de news:
%

Bonjour a tous,

Voici ce que je suis capable de faire en VBA et non dans la cellule
directement

Cellule = ActiveCell.Address
ActiveCell.Offset(-1, 3).Select
tot = Cells.Find(What:="Total", After:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlColumns, SearchDirection:=xlPrevious,
MatchCase:úlse _
, SearchFormat:=True).Select
tet = ActiveCell.Offset(1, 0).Address
Range(Cellule).Select
Résultat = WorksheetFunction.Sum(Range(tet, ActiveCell.Offset(-1,
3).AddressLocal))
ActiveCell.FormulaR1C1 = Résultat


En gros je veut tout d'abort

1- trouver l'adresse de la cellule en desous d'ou c'est ecrit "Total"

2- trouver l'adresse qui ce trouve (3 cellules a droite) et (1 cellule en
haut) de celle qui est active

3- Pour finalement faire la somme du range de l'étape 1 et l'étape 2

Mon probleme c'est qu'il ne faut pas que je passe par VBA pour faire ca
et cette formule la ne ce trouvera jamais a la meme place !

Y a-t-il une facon de le faire dans la cellule directement exemple :
=somme(.....) sans passer par le VBA

Si quelqu'un a une iddée svp m'en faire part :)


Merci de votre attention !











Avatar
Fred
Re Bonjour,

J'ai enlever le

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub

et tout semble correct je comprend pas pk mettre sa sur un selection change
mais bons....

Merci Beaucoup

"isabelle" a écrit dans le message de news:

bonjour Fred,

on a pas vraiment le choix d'utiliser l'événement SelectionChange,
vue que la cellule contenant la formulle et la cellule active n'est pas la
même.
utilisé la formule =SPsomme() dans une cellule
____________________________________________________________
'à copier sur la page code de la feuille,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
____________________________________________________________
'et celle ci dans un module standard

Function SPsomme()
Application.Volatile
colonne = ActiveCell.Column + 3
debut = ActiveCell.Row - 1
fin = Columns(colonne).Find(What:="Total").Row
SPsomme = Application.Sum(Range(Cells(debut, colonne), Cells(fin,
colonne)))
End Function
____________________________________________________________

isabelle

Bonjour Isabelle,

Oui le mot Total ce trouve toujour dans la meme colonne.

la somme est toujour dans la meme colonne que mon total ! donc exemple :
=somme(J30:J50) !!!

Merci !

"Fred" a écrit dans le message de news:
%

Bonjour a tous,

Voici ce que je suis capable de faire en VBA et non dans la cellule
directement

Cellule = ActiveCell.Address
ActiveCell.Offset(-1, 3).Select
tot = Cells.Find(What:="Total", After:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlColumns, SearchDirection:=xlPrevious,
MatchCase:úlse _
, SearchFormat:=True).Select
tet = ActiveCell.Offset(1, 0).Address
Range(Cellule).Select
Résultat = WorksheetFunction.Sum(Range(tet, ActiveCell.Offset(-1,
3).AddressLocal))
ActiveCell.FormulaR1C1 = Résultat


En gros je veut tout d'abort

1- trouver l'adresse de la cellule en desous d'ou c'est ecrit "Total"

2- trouver l'adresse qui ce trouve (3 cellules a droite) et (1 cellule en
haut) de celle qui est active

3- Pour finalement faire la somme du range de l'étape 1 et l'étape 2

Mon probleme c'est qu'il ne faut pas que je passe par VBA pour faire ca
et cette formule la ne ce trouvera jamais a la meme place !

Y a-t-il une facon de le faire dans la cellule directement exemple :
=somme(.....) sans passer par le VBA

Si quelqu'un a une iddée svp m'en faire part :)


Merci de votre attention !











Avatar
Fred
re
hummmm je vient de comprendre .... sinon ca ce met jamais a jour
automatiquement :( .......

Merci
"isabelle" a écrit dans le message de news:

bonjour Fred,

on a pas vraiment le choix d'utiliser l'événement SelectionChange,
vue que la cellule contenant la formulle et la cellule active n'est pas la
même.
utilisé la formule =SPsomme() dans une cellule
____________________________________________________________
'à copier sur la page code de la feuille,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
____________________________________________________________
'et celle ci dans un module standard

Function SPsomme()
Application.Volatile
colonne = ActiveCell.Column + 3
debut = ActiveCell.Row - 1
fin = Columns(colonne).Find(What:="Total").Row
SPsomme = Application.Sum(Range(Cells(debut, colonne), Cells(fin,
colonne)))
End Function
____________________________________________________________

isabelle

Bonjour Isabelle,

Oui le mot Total ce trouve toujour dans la meme colonne.

la somme est toujour dans la meme colonne que mon total ! donc exemple :
=somme(J30:J50) !!!

Merci !

"Fred" a écrit dans le message de news:
%

Bonjour a tous,

Voici ce que je suis capable de faire en VBA et non dans la cellule
directement

Cellule = ActiveCell.Address
ActiveCell.Offset(-1, 3).Select
tot = Cells.Find(What:="Total", After:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlColumns, SearchDirection:=xlPrevious,
MatchCase:úlse _
, SearchFormat:=True).Select
tet = ActiveCell.Offset(1, 0).Address
Range(Cellule).Select
Résultat = WorksheetFunction.Sum(Range(tet, ActiveCell.Offset(-1,
3).AddressLocal))
ActiveCell.FormulaR1C1 = Résultat


En gros je veut tout d'abort

1- trouver l'adresse de la cellule en desous d'ou c'est ecrit "Total"

2- trouver l'adresse qui ce trouve (3 cellules a droite) et (1 cellule en
haut) de celle qui est active

3- Pour finalement faire la somme du range de l'étape 1 et l'étape 2

Mon probleme c'est qu'il ne faut pas que je passe par VBA pour faire ca
et cette formule la ne ce trouvera jamais a la meme place !

Y a-t-il une facon de le faire dans la cellule directement exemple :
=somme(.....) sans passer par le VBA

Si quelqu'un a une iddée svp m'en faire part :)


Merci de votre attention !











Avatar
isabelle
oui c'est bien ça, il ne faut pas oublier que la formulle est dépendante de la cellule active,

sinon il faudrait faire en sorte de prendre un point de départ autre que la cellule active.

isabelle

re
hummmm je vient de comprendre .... sinon ca ce met jamais a jour
automatiquement :( .......

Merci
"isabelle" a écrit dans le message de news:


bonjour Fred,

on a pas vraiment le choix d'utiliser l'événement SelectionChange,
vue que la cellule contenant la formulle et la cellule active n'est pas la
même.
utilisé la formule =SPsomme() dans une cellule
____________________________________________________________
'à copier sur la page code de la feuille,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
____________________________________________________________
'et celle ci dans un module standard

Function SPsomme()
Application.Volatile
colonne = ActiveCell.Column + 3
debut = ActiveCell.Row - 1
fin = Columns(colonne).Find(What:="Total").Row
SPsomme = Application.Sum(Range(Cells(debut, colonne), Cells(fin,
colonne)))
End Function
____________________________________________________________

isabelle


Bonjour Isabelle,

Oui le mot Total ce trouve toujour dans la meme colonne.

la somme est toujour dans la meme colonne que mon total ! donc exemple :
=somme(J30:J50) !!!

Merci !

"Fred" a écrit dans le message de news:
%


Bonjour a tous,

Voici ce que je suis capable de faire en VBA et non dans la cellule
directement

Cellule = ActiveCell.Address
ActiveCell.Offset(-1, 3).Select
tot = Cells.Find(What:="Total", After:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlColumns, SearchDirection:=xlPrevious,
MatchCase:úlse _
, SearchFormat:=True).Select
tet = ActiveCell.Offset(1, 0).Address
Range(Cellule).Select
Résultat = WorksheetFunction.Sum(Range(tet, ActiveCell.Offset(-1,
3).AddressLocal))
ActiveCell.FormulaR1C1 = Résultat


En gros je veut tout d'abort

1- trouver l'adresse de la cellule en desous d'ou c'est ecrit "Total"

2- trouver l'adresse qui ce trouve (3 cellules a droite) et (1 cellule en
haut) de celle qui est active

3- Pour finalement faire la somme du range de l'étape 1 et l'étape 2

Mon probleme c'est qu'il ne faut pas que je passe par VBA pour faire ca
et cette formule la ne ce trouvera jamais a la meme place !

Y a-t-il une facon de le faire dans la cellule directement exemple :
=somme(.....) sans passer par le VBA

Si quelqu'un a une iddée svp m'en faire part :)


Merci de votre attention !














Avatar
Fred
Re bonjour,

Encord moi :(
sa fonctionne super bien l'orsque je tappe ma formule =spsomme() dans la
dite cellule mais apres ca je me suis rendu compte que rien ne fonctionne
comme il faut ..
il me met un #valeur si je modifie une cellule qui est comprit dans ma somme

et si je suis exemple 3 cellule plus haut et bien il me change la somme dans
ma cellule qui est ecrit =spsomme() a partir de la cellule ou je suis !!
Bref sa ne semble pas fonctionner dans mon cas :(
je vais essayer de trouver une autre solution voir....

Merci de ton aide

"isabelle" a écrit dans le message de news:
OoPq%
oui c'est bien ça, il ne faut pas oublier que la formulle est dépendante
de la cellule active,

sinon il faudrait faire en sorte de prendre un point de départ autre que
la cellule active.

isabelle

re
hummmm je vient de comprendre .... sinon ca ce met jamais a jour
automatiquement :( .......

Merci
"isabelle" a écrit dans le message de news:


bonjour Fred,

on a pas vraiment le choix d'utiliser l'événement SelectionChange,
vue que la cellule contenant la formulle et la cellule active n'est pas
la même.
utilisé la formule =SPsomme() dans une cellule
____________________________________________________________
'à copier sur la page code de la feuille,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
____________________________________________________________
'et celle ci dans un module standard

Function SPsomme()
Application.Volatile
colonne = ActiveCell.Column + 3
debut = ActiveCell.Row - 1
fin = Columns(colonne).Find(What:="Total").Row
SPsomme = Application.Sum(Range(Cells(debut, colonne), Cells(fin,
colonne)))
End Function
____________________________________________________________

isabelle


Bonjour Isabelle,

Oui le mot Total ce trouve toujour dans la meme colonne.

la somme est toujour dans la meme colonne que mon total ! donc exemple :
=somme(J30:J50) !!!

Merci !

"Fred" a écrit dans le message de news:
%


Bonjour a tous,

Voici ce que je suis capable de faire en VBA et non dans la cellule
directement

Cellule = ActiveCell.Address
ActiveCell.Offset(-1, 3).Select
tot = Cells.Find(What:="Total", After:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlColumns, SearchDirection:=xlPrevious,
MatchCase:úlse _
, SearchFormat:=True).Select
tet = ActiveCell.Offset(1, 0).Address
Range(Cellule).Select
Résultat = WorksheetFunction.Sum(Range(tet, ActiveCell.Offset(-1,
3).AddressLocal))
ActiveCell.FormulaR1C1 = Résultat


En gros je veut tout d'abort

1- trouver l'adresse de la cellule en desous d'ou c'est ecrit "Total"

2- trouver l'adresse qui ce trouve (3 cellules a droite) et (1 cellule
en haut) de celle qui est active

3- Pour finalement faire la somme du range de l'étape 1 et l'étape 2

Mon probleme c'est qu'il ne faut pas que je passe par VBA pour faire ca
et cette formule la ne ce trouvera jamais a la meme place !

Y a-t-il une facon de le faire dans la cellule directement exemple :
=somme(.....) sans passer par le VBA

Si quelqu'un a une iddée svp m'en faire part :)


Merci de votre attention !