OVH Cloud OVH Cloud

Somme de plusieurs feuilles

6 réponses
Avatar
Max du Vuache
Bonjour,

J'ai un dossier vec une vingtaine de feuilles de format identique et je
voudrais créer avec une macro une feuille "Cumul" avec la somme de toutes
les feuilles (sauf les cellules de texte).

Pour illustrer mon problème, j'ai trois feuilles: aa, bb et cc.
Avec l'enregistreur de macros ça donne:
ActiveCell.FormulaR1C1= "=SUM(aa:cc!RC)"
et ça marche.

Or, les noms des feuilles ne sont pas toujours identiques, donc j'ai essayé
ce créer des variables, une pour la première feuille et une autre pour la
dernière:

f1=Sheets(1).Name
fLast=Sheets(Sheets.Count-1).Name
ActiveCell.FormulaR1C1= "=SUM(f1:fLast!RC)"

La variable f1 retourne bien "aa" et l'autre "cc", mais le resultat est:
"#NOM?".
Pourquoi et comment faire pour obtenir la somme des feuilles ?

Merci de votre aide.

Max

6 réponses

Avatar
ru-th
Salut

pas testé
ActiveCell.FormulaR1C1= "=SUM(" & sheets(1).name & ":" &
sheets(sheets.count).name & "!RC)"

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"Max du Vuache" <nospam du a écrit dans le message de
news:
Bonjour,

J'ai un dossier vec une vingtaine de feuilles de format identique et je
voudrais créer avec une macro une feuille "Cumul" avec la somme de toutes
les feuilles (sauf les cellules de texte).

Pour illustrer mon problème, j'ai trois feuilles: aa, bb et cc.
Avec l'enregistreur de macros ça donne:
ActiveCell.FormulaR1C1= "=SUM(aa:cc!RC)"
et ça marche.

Or, les noms des feuilles ne sont pas toujours identiques, donc j'ai
essayé ce créer des variables, une pour la première feuille et une autre
pour la dernière:

f1=Sheets(1).Name
fLast=Sheets(Sheets.Count-1).Name
ActiveCell.FormulaR1C1= "=SUM(f1:fLast!RC)"

La variable f1 retourne bien "aa" et l'autre "cc", mais le resultat est:
"#NOM?".
Pourquoi et comment faire pour obtenir la somme des feuilles ?

Merci de votre aide.

Max







Avatar
JpPradier
Bonjour Max

Corrige ta ligne comme ça :

ActiveCell.FormulaR1C1= "=SUM(" & f1 & ":" & fLast & "!RC)"

j-p
Avatar
Max du Vuache
Bonjour Jp

Merci beaucoup. Maintnenat ça marcher, en plus j'ai compris comment il faut
cocanténer les variables avec les autres caractères dans une formule.

Encore merci.

Salut

Max
"JpPradier" a écrit dans le message
de news: %
Bonjour Max

Corrige ta ligne comme ça :

ActiveCell.FormulaR1C1= "=SUM(" & f1 & ":" & fLast & "!RC)"

j-p



Avatar
Max du Vuache
Salut Thierry,

la première ligne doit être:
ActiveCell.FormulaR1C1 = "=SUM(" & Sheets(1).Name & ":" & ")"
mais je ne comprends pas la deuxième.
De toute façon, jp m'a donné la bonne solution.

Merci pour avoir voulu m'aider

Max

"ru-th" a écrit dans le message de news:

Salut

pas testé
ActiveCell.FormulaR1C1= "=SUM(" & sheets(1).name & ":" &
sheets(sheets.count).name & "!RC)"

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"Max du Vuache" <nospam du a écrit dans le message de
news:
Bonjour,

J'ai un dossier vec une vingtaine de feuilles de format identique et je
voudrais créer avec une macro une feuille "Cumul" avec la somme de toutes
les feuilles (sauf les cellules de texte).

Pour illustrer mon problème, j'ai trois feuilles: aa, bb et cc.
Avec l'enregistreur de macros ça donne:
ActiveCell.FormulaR1C1= "=SUM(aa:cc!RC)"
et ça marche.

Or, les noms des feuilles ne sont pas toujours identiques, donc j'ai
essayé ce créer des variables, une pour la première feuille et une autre
pour la dernière:

f1=Sheets(1).Name
fLast=Sheets(Sheets.Count-1).Name
ActiveCell.FormulaR1C1= "=SUM(f1:fLast!RC)"

La variable f1 retourne bien "aa" et l'autre "cc", mais le resultat est:
"#NOM?".
Pourquoi et comment faire pour obtenir la somme des feuilles ?

Merci de votre aide.

Max











Avatar
ru-th
Salut

les 2 lignes n'en forment qu'une
(saut de ligne du à la messagerie)

a+
rural thierry
"Max du Vuache" <nospam du a écrit dans le message de
news:
Salut Thierry,

la première ligne doit être:
ActiveCell.FormulaR1C1 = "=SUM(" & Sheets(1).Name & ":" & ")"
mais je ne comprends pas la deuxième.
De toute façon, jp m'a donné la bonne solution.

Merci pour avoir voulu m'aider

Max

"ru-th" a écrit dans le message de news:

Salut

pas testé
ActiveCell.FormulaR1C1= "=SUM(" & sheets(1).name & ":" &
sheets(sheets.count).name & "!RC)"

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"Max du Vuache" <nospam du a écrit dans le message de
news:
Bonjour,

J'ai un dossier vec une vingtaine de feuilles de format identique et je
voudrais créer avec une macro une feuille "Cumul" avec la somme de
toutes



les feuilles (sauf les cellules de texte).

Pour illustrer mon problème, j'ai trois feuilles: aa, bb et cc.
Avec l'enregistreur de macros ça donne:
ActiveCell.FormulaR1C1= "=SUM(aa:cc!RC)"
et ça marche.

Or, les noms des feuilles ne sont pas toujours identiques, donc j'ai
essayé ce créer des variables, une pour la première feuille et une
autre



pour la dernière:

f1=Sheets(1).Name
fLast=Sheets(Sheets.Count-1).Name
ActiveCell.FormulaR1C1= "=SUM(f1:fLast!RC)"

La variable f1 retourne bien "aa" et l'autre "cc", mais le resultat
est:



"#NOM?".
Pourquoi et comment faire pour obtenir la somme des feuilles ?

Merci de votre aide.

Max















Avatar
Max du Vuache
Re-bonjour Thierry,

Tu as raison, ta formule fonctionne, mais on doit ajouter un "-1" derriere
"Sheets.Count" afin que l'addition se fasse sans la feuille "Cumul" :
ActiveCell.FormulaR1C1 = "=SUM(" & Sheets(1).Name & ":" &
Sheets(Sheets.Count - 1).Name & "!RC)"

Merci et salut

Max

"ru-th" a écrit dans le message de news:
e6%
Salut

les 2 lignes n'en forment qu'une
(saut de ligne du à la messagerie)

a+
rural thierry
"Max du Vuache" <nospam du a écrit dans le message de
news:
Salut Thierry,

la première ligne doit être:
ActiveCell.FormulaR1C1 = "=SUM(" & Sheets(1).Name & ":" & ")"
mais je ne comprends pas la deuxième.
De toute façon, jp m'a donné la bonne solution.

Merci pour avoir voulu m'aider

Max

"ru-th" a écrit dans le message de news:

Salut

pas testé
ActiveCell.FormulaR1C1= "=SUM(" & sheets(1).name & ":" &
sheets(sheets.count).name & "!RC)"

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"Max du Vuache" <nospam du a écrit dans le message
de
news:
Bonjour,

J'ai un dossier vec une vingtaine de feuilles de format identique et
je
voudrais créer avec une macro une feuille "Cumul" avec la somme de
toutes



les feuilles (sauf les cellules de texte).

Pour illustrer mon problème, j'ai trois feuilles: aa, bb et cc.
Avec l'enregistreur de macros ça donne:
ActiveCell.FormulaR1C1= "=SUM(aa:cc!RC)"
et ça marche.

Or, les noms des feuilles ne sont pas toujours identiques, donc j'ai
essayé ce créer des variables, une pour la première feuille et une
autre



pour la dernière:

f1=Sheets(1).Name
fLast=Sheets(Sheets.Count-1).Name
ActiveCell.FormulaR1C1= "=SUM(f1:fLast!RC)"

La variable f1 retourne bien "aa" et l'autre "cc", mais le resultat
est:



"#NOM?".
Pourquoi et comment faire pour obtenir la somme des feuilles ?

Merci de votre aide.

Max