OVH Cloud OVH Cloud

Modifier une formule

7 réponses
Avatar
xem
Bonjour/soir tout le monde

Je vais essayer d'être clair:

"toto" se refere à Feuil2A1
"zaza" se refere à Feuil3A1
dans Feuil1A1 j'ai la formule = toto + zaza
Si j'insère une feuille Feuil4 avec A1 nommée " lolo"
j'aimerais que la formule devienne = toto + zaza + lolo.

Peut-être créer une variable de la cellule nommée.....?
Mais je ne sais pas comment faire.

Est-ce possible en VBA, ou bien existe-t-il une aure façon de faire
pour additioner les cellules A1 de toutes les feuilles ( jusqu'à 200
feuilles) d'un classeur?

Merci de vos réponses.
Xem

7 réponses

Avatar
isabelle
bonjour xem,

Sub Macro1()
Dim f As Worksheet, f1 As Worksheet
Set f1 = Sheets("Feuil1")
For Each f In Worksheets
If f.Name <> f1.Name And IsNumeric(f.Range("A1")) Then _
f1.Range("A1") = f1.Range("A1") + f.Range("A1")
Next
End Sub

isabelle


Bonjour/soir tout le monde

Je vais essayer d'être clair:

"toto" se refere à Feuil2A1
"zaza" se refere à Feuil3A1
dans Feuil1A1 j'ai la formule = toto + zaza
Si j'insère une feuille Feuil4 avec A1 nommée " lolo"
j'aimerais que la formule devienne = toto + zaza + lolo.

Peut-être créer une variable de la cellule nommée.....?
Mais je ne sais pas comment faire.

Est-ce possible en VBA, ou bien existe-t-il une aure façon de faire
pour additioner les cellules A1 de toutes les feuilles ( jusqu'à 200
feuilles) d'un classeur?

Merci de vos réponses.
Xem


Avatar
JpPradier
Bonsoir xem

Une formule qui peut le faire :

=Somme(Feuil2:Feuil3!A1)
Elle inclus toutes les feuilles que tu inseres entre la première et la dernière.

j-p
Avatar
xem
Re
Isabelle merci, c'est exactement celà
que je n'ai pas su faire.
Juste une toute petite chose, il faut effacer ou vider
f1.Range("A1") avant la boucle car f1.Range("A1")
ne doit pas être additioner et ne sert qu'à afficher
le résultat des A1 de toutes les autres feuilles présentes
et futures du classeur .
J'ai placé f1.Range("A1") = " " avant For Each....
Cà fonctionne, mais est-ce correct ?

Bisous
Xem

"isabelle" a écrit dans le message de
news:
bonjour xem,

Sub Macro1()
Dim f As Worksheet, f1 As Worksheet
Set f1 = Sheets("Feuil1")
For Each f In Worksheets
If f.Name <> f1.Name And IsNumeric(f.Range("A1")) Then _
f1.Range("A1") = f1.Range("A1") + f.Range("A1")
Next
End Sub

isabelle


Bonjour/soir tout le monde

Je vais essayer d'être clair:

"toto" se refere à Feuil2A1
"zaza" se refere à Feuil3A1
dans Feuil1A1 j'ai la formule = toto + zaza
Si j'insère une feuille Feuil4 avec A1 nommée " lolo"
j'aimerais que la formule devienne = toto + zaza + lolo.

Peut-être créer une variable de la cellule nommée.....?
Mais je ne sais pas comment faire.

Est-ce possible en VBA, ou bien existe-t-il une aure façon de faire
pour additioner les cellules A1 de toutes les feuilles ( jusqu'à 200
feuilles) d'un classeur?

Merci de vos réponses.
Xem




Avatar
xem
Re
Merci, c'est une autre idée.
Je vais opter pour la soluce VBA d'Isabelle
Ne m'en tiens pas griefffffffff... ;-))

xem

"JpPradier" a écrit dans le message
de news:
Bonsoir xem

Une formule qui peut le faire :

=Somme(Feuil2:Feuil3!A1)
Elle inclus toutes les feuilles que tu inseres entre la première et la
dernière.


j-p



Avatar
JpPradier
"xem" a écrit dans le message de
news:
Re
Merci, c'est une autre idée.
Je vais opter pour la soluce VBA d'Isabelle
Ne m'en tiens pas griefffffffff... ;-))


Point du tout, l'avantage d'avoir différentes solutions, c'est de pouvoir choisir :-)

j-p

Avatar
sabatier
ouais, jean-pascal, sauf que choisir, c'est se priver...
regarde, moi, samedi, j'ai choisi le dos de rascasse : eh ben, je me prive
de chope d'agneau
jps

"JpPradier" a écrit dans le message
de news:
"xem" a écrit dans le message de
news:
Point du tout, l'avantage d'avoir différentes solutions, c'est de pouvoir
choisir :-)



j-p




Avatar
isabelle
oui, tu pourrais aussi mettre
f1.Range("A1").ClearContents 'effacer le contenu

isabelle


Re
Isabelle merci, c'est exactement celà
que je n'ai pas su faire.
Juste une toute petite chose, il faut effacer ou vider
f1.Range("A1") avant la boucle car f1.Range("A1")
ne doit pas être additioner et ne sert qu'à afficher
le résultat des A1 de toutes les autres feuilles présentes
et futures du classeur .
J'ai placé f1.Range("A1") = " " avant For Each....
Cà fonctionne, mais est-ce correct ?

Bisous
Xem

"isabelle" a écrit dans le message de
news:
bonjour xem,

Sub Macro1()
Dim f As Worksheet, f1 As Worksheet
Set f1 = Sheets("Feuil1")
For Each f In Worksheets
If f.Name <> f1.Name And IsNumeric(f.Range("A1")) Then _
f1.Range("A1") = f1.Range("A1") + f.Range("A1")
Next
End Sub

isabelle


Bonjour/soir tout le monde

Je vais essayer d'être clair:

"toto" se refere à Feuil2A1
"zaza" se refere à Feuil3A1
dans Feuil1A1 j'ai la formule = toto + zaza
Si j'insère une feuille Feuil4 avec A1 nommée " lolo"
j'aimerais que la formule devienne = toto + zaza + lolo.

Peut-être créer une variable de la cellule nommée.....?
Mais je ne sais pas comment faire.

Est-ce possible en VBA, ou bien existe-t-il une aure façon de faire
pour additioner les cellules A1 de toutes les feuilles ( jusqu'à 200
feuilles) d'un classeur?

Merci de vos réponses.
Xem