J'ai créé un modèle de feuille (feuille_paye.xlt) avec des cellules nommées
(Brut, Net_Imposable, ...).
Dans un classeur, tous les mois, j'insère une nouvelle feuille_paye.xlt, que
je renomme (Jan, Fév,...).
Dans chaque feuille, le menu Insertion Nom Définir affiche des cellules
nommées AVEC une particularité, le nom de la feuille qui est inscrit sur
l'extrème droite de l'écran.
Je souhaite faire une feuille "récapitulatif" avec des cellules sommes type
=SOMME('Jan:Juil!'Brut) . Cela me renvoit une erreur type #NOM?.
En revanche
=SOMME(Jan!Brut;Fév!Brut;Mars!Brut;Avr!Brut;Mai!Brut;Juin!Brut;Juil!Brut)
renvoit une somme correcte
Je ne peux pas faire une somme 3D avec une référence précise de cellule (ex:
SOMME('Jan:Juil!'D30) car des lignes intermédiaires sont suceptibles d'avoir
été ajoutées ou supprimées ds chq feuille, d'où l'appel d'une cellule
nommée.
L'un ou l'une d'entre vous saurait-il où se trouve l'erreur, et s'il y a
une solution pour saisir les sommes, moyenne, ... des cellules Nommées 3D ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Longre
Hello,
Dans une formule 3D, tu ne peux utiliser qu'une seule adresse de plage, donc dans ton cas ça ne peut de toute manière pas fonctionner, la cellule "Brut" pouvant changer d'adresse sur chaque feuille.
Tu peux essayer cette petite fonction VBA à la place :
Function MASOMME(Feuille1 As String, Feuille2 As String, Nom As String) As Double
Dim Wbk As Workbook, I As Integer Application.Volatile Set Wbk = Application.Caller.Worksheet.Parent With Wbk.Sheets For I = .Item(Feuille1).Index To .Item(Feuille2).Index With .Item(I) If .Type = xlWorksheet Then MASOMME = MASOMME + .Range(Nom) End With Next I End With
End Function
=MASOMME("Jan";"Juil";"Brut")
Laurent
Rebonjour aux MPFE(ttes),
J'ai créé un modèle de feuille (feuille_paye.xlt) avec des cellules nommées (Brut, Net_Imposable, ...). Dans un classeur, tous les mois, j'insère une nouvelle feuille_paye.xlt, que je renomme (Jan, Fév,...). Dans chaque feuille, le menu Insertion Nom Définir affiche des cellules nommées AVEC une particularité, le nom de la feuille qui est inscrit sur l'extrème droite de l'écran.
Je souhaite faire une feuille "récapitulatif" avec des cellules sommes type =SOMME('Jan:Juil!'Brut) . Cela me renvoit une erreur type #NOM?. En revanche =SOMME(Jan!Brut;Fév!Brut;Mars!Brut;Avr!Brut;Mai!Brut;Juin!Brut;Juil!Brut) renvoit une somme correcte
Je ne peux pas faire une somme 3D avec une référence précise de cellule (ex: SOMME('Jan:Juil!'D30) car des lignes intermédiaires sont suceptibles d'avoir été ajoutées ou supprimées ds chq feuille, d'où l'appel d'une cellule nommée.
L'un ou l'une d'entre vous saurait-il où se trouve l'erreur, et s'il y a une solution pour saisir les sommes, moyenne, ... des cellules Nommées 3D ?
D'avance merci +++ evit@
Hello,
Dans une formule 3D, tu ne peux utiliser qu'une seule adresse de plage, donc
dans ton cas ça ne peut de toute manière pas fonctionner, la cellule "Brut"
pouvant changer d'adresse sur chaque feuille.
Tu peux essayer cette petite fonction VBA à la place :
Function MASOMME(Feuille1 As String, Feuille2 As String, Nom As String) As Double
Dim Wbk As Workbook, I As Integer
Application.Volatile
Set Wbk = Application.Caller.Worksheet.Parent
With Wbk.Sheets
For I = .Item(Feuille1).Index To .Item(Feuille2).Index
With .Item(I)
If .Type = xlWorksheet Then MASOMME = MASOMME + .Range(Nom)
End With
Next I
End With
End Function
=MASOMME("Jan";"Juil";"Brut")
Laurent
Rebonjour aux MPFE(ttes),
J'ai créé un modèle de feuille (feuille_paye.xlt) avec des cellules nommées
(Brut, Net_Imposable, ...).
Dans un classeur, tous les mois, j'insère une nouvelle feuille_paye.xlt, que
je renomme (Jan, Fév,...).
Dans chaque feuille, le menu Insertion Nom Définir affiche des cellules
nommées AVEC une particularité, le nom de la feuille qui est inscrit sur
l'extrème droite de l'écran.
Je souhaite faire une feuille "récapitulatif" avec des cellules sommes type
=SOMME('Jan:Juil!'Brut) . Cela me renvoit une erreur type #NOM?.
En revanche
=SOMME(Jan!Brut;Fév!Brut;Mars!Brut;Avr!Brut;Mai!Brut;Juin!Brut;Juil!Brut)
renvoit une somme correcte
Je ne peux pas faire une somme 3D avec une référence précise de cellule (ex:
SOMME('Jan:Juil!'D30) car des lignes intermédiaires sont suceptibles d'avoir
été ajoutées ou supprimées ds chq feuille, d'où l'appel d'une cellule
nommée.
L'un ou l'une d'entre vous saurait-il où se trouve l'erreur, et s'il y a
une solution pour saisir les sommes, moyenne, ... des cellules Nommées 3D ?
Dans une formule 3D, tu ne peux utiliser qu'une seule adresse de plage, donc dans ton cas ça ne peut de toute manière pas fonctionner, la cellule "Brut" pouvant changer d'adresse sur chaque feuille.
Tu peux essayer cette petite fonction VBA à la place :
Function MASOMME(Feuille1 As String, Feuille2 As String, Nom As String) As Double
Dim Wbk As Workbook, I As Integer Application.Volatile Set Wbk = Application.Caller.Worksheet.Parent With Wbk.Sheets For I = .Item(Feuille1).Index To .Item(Feuille2).Index With .Item(I) If .Type = xlWorksheet Then MASOMME = MASOMME + .Range(Nom) End With Next I End With
End Function
=MASOMME("Jan";"Juil";"Brut")
Laurent
Rebonjour aux MPFE(ttes),
J'ai créé un modèle de feuille (feuille_paye.xlt) avec des cellules nommées (Brut, Net_Imposable, ...). Dans un classeur, tous les mois, j'insère une nouvelle feuille_paye.xlt, que je renomme (Jan, Fév,...). Dans chaque feuille, le menu Insertion Nom Définir affiche des cellules nommées AVEC une particularité, le nom de la feuille qui est inscrit sur l'extrème droite de l'écran.
Je souhaite faire une feuille "récapitulatif" avec des cellules sommes type =SOMME('Jan:Juil!'Brut) . Cela me renvoit une erreur type #NOM?. En revanche =SOMME(Jan!Brut;Fév!Brut;Mars!Brut;Avr!Brut;Mai!Brut;Juin!Brut;Juil!Brut) renvoit une somme correcte
Je ne peux pas faire une somme 3D avec une référence précise de cellule (ex: SOMME('Jan:Juil!'D30) car des lignes intermédiaires sont suceptibles d'avoir été ajoutées ou supprimées ds chq feuille, d'où l'appel d'une cellule nommée.
L'un ou l'une d'entre vous saurait-il où se trouve l'erreur, et s'il y a une solution pour saisir les sommes, moyenne, ... des cellules Nommées 3D ?
D'avance merci +++ evit@
Evita
Merci beaucoup laurent, cela fonctionne très bien
Encore une petite question, La déclaration d'application volatile est-elle nécessaire dans ce cas ou est-ce une "sécurité" apportée à la fonction?
Très grand merci à tous les animateurs-formateurs et intervenants de ce forum et à ceux d'entre vous qui ont pris le temps de faire des sites et qui les nourrissent régulièrement d'infos géniales. C'est une énorme source d'infos, tellement conviviale.... Merci -- Evit@
Laurent Longre" <>
Hello,
Dans une formule 3D, tu ne peux utiliser qu'une seule adresse de plage, donc dans ton cas ça ne peut de toute manière pas fonctionner, la cellule "Brut" pouvant changer d'adresse sur chaque feuille.
Tu peux essayer cette petite fonction VBA à la place :
Function MASOMME(Feuille1 As String, Feuille2 As String, Nom As String) As Double
Dim Wbk As Workbook, I As Integer Application.Volatile Set Wbk = Application.Caller.Worksheet.Parent With Wbk.Sheets For I = .Item(Feuille1).Index To .Item(Feuille2).Index With .Item(I) If .Type = xlWorksheet Then MASOMME = MASOMME + .Range(Nom) End With Next I End With
End Function
=MASOMME("Jan";"Juil";"Brut")
Laurent
Merci beaucoup laurent, cela fonctionne très bien
Encore une petite question, La déclaration d'application volatile est-elle
nécessaire dans ce cas ou est-ce une "sécurité" apportée à la fonction?
Très grand merci à tous les animateurs-formateurs et intervenants de ce
forum et à ceux d'entre vous qui ont pris le temps de faire des sites et qui
les nourrissent régulièrement d'infos géniales. C'est une énorme source
d'infos, tellement conviviale.... Merci
--
Evit@
Laurent Longre" <>
Hello,
Dans une formule 3D, tu ne peux utiliser qu'une seule adresse de plage,
donc dans ton cas ça ne peut de toute manière pas fonctionner, la cellule
"Brut" pouvant changer d'adresse sur chaque feuille.
Tu peux essayer cette petite fonction VBA à la place :
Function MASOMME(Feuille1 As String, Feuille2 As String, Nom As String) As
Double
Dim Wbk As Workbook, I As Integer
Application.Volatile
Set Wbk = Application.Caller.Worksheet.Parent
With Wbk.Sheets
For I = .Item(Feuille1).Index To .Item(Feuille2).Index
With .Item(I)
If .Type = xlWorksheet Then MASOMME = MASOMME + .Range(Nom)
End With
Next I
End With
Encore une petite question, La déclaration d'application volatile est-elle nécessaire dans ce cas ou est-ce une "sécurité" apportée à la fonction?
Très grand merci à tous les animateurs-formateurs et intervenants de ce forum et à ceux d'entre vous qui ont pris le temps de faire des sites et qui les nourrissent régulièrement d'infos géniales. C'est une énorme source d'infos, tellement conviviale.... Merci -- Evit@
Laurent Longre" <>
Hello,
Dans une formule 3D, tu ne peux utiliser qu'une seule adresse de plage, donc dans ton cas ça ne peut de toute manière pas fonctionner, la cellule "Brut" pouvant changer d'adresse sur chaque feuille.
Tu peux essayer cette petite fonction VBA à la place :
Function MASOMME(Feuille1 As String, Feuille2 As String, Nom As String) As Double
Dim Wbk As Workbook, I As Integer Application.Volatile Set Wbk = Application.Caller.Worksheet.Parent With Wbk.Sheets For I = .Item(Feuille1).Index To .Item(Feuille2).Index With .Item(I) If .Type = xlWorksheet Then MASOMME = MASOMME + .Range(Nom) End With Next I End With
End Function
=MASOMME("Jan";"Juil";"Brut")
Laurent
Philippe.R
Bonjour Evita, Application.volatile permet le recalcul de la fonction lors d'un changement de données. -- Amicales Salutations XL 97 / 2000 / 2002
"Evita" a écrit dans le message de news:
Merci beaucoup laurent, cela fonctionne très bien
Encore une petite question, La déclaration d'application volatile est-elle nécessaire dans ce cas ou est-ce une "sécurité" apportée à la fonction?
Très grand merci à tous les animateurs-formateurs et intervenants de ce forum et à ceux d'entre vous qui ont pris le temps de faire des sites et qui les nourrissent régulièrement d'infos géniales. C'est une énorme source d'infos, tellement conviviale.... Merci -- Evit@
Laurent Longre" <>
Hello,
Dans une formule 3D, tu ne peux utiliser qu'une seule adresse de plage, donc dans ton cas ça ne peut de toute manière pas fonctionner, la cellule "Brut" pouvant changer d'adresse sur chaque feuille.
Tu peux essayer cette petite fonction VBA à la place :
Function MASOMME(Feuille1 As String, Feuille2 As String, Nom As String) As Double
Dim Wbk As Workbook, I As Integer Application.Volatile Set Wbk = Application.Caller.Worksheet.Parent With Wbk.Sheets For I = .Item(Feuille1).Index To .Item(Feuille2).Index With .Item(I) If .Type = xlWorksheet Then MASOMME = MASOMME + .Range(Nom) End With Next I End With
End Function
=MASOMME("Jan";"Juil";"Brut")
Laurent
Bonjour Evita,
Application.volatile permet le recalcul de la fonction lors d'un changement de données.
--
Amicales Salutations
XL 97 / 2000 / 2002
"Evita" <ASUPPRIMEReve_13_04@yahoo.fr> a écrit dans le message de news:
uviJSoxFFHA.3824@TK2MSFTNGP10.phx.gbl...
Merci beaucoup laurent, cela fonctionne très bien
Encore une petite question, La déclaration d'application volatile est-elle nécessaire dans ce cas ou
est-ce une "sécurité" apportée à la fonction?
Très grand merci à tous les animateurs-formateurs et intervenants de ce forum et à ceux d'entre vous
qui ont pris le temps de faire des sites et qui les nourrissent régulièrement d'infos géniales. C'est
une énorme source d'infos, tellement conviviale.... Merci
--
Evit@
Laurent Longre" <>
Hello,
Dans une formule 3D, tu ne peux utiliser qu'une seule adresse de plage, donc dans ton cas ça ne peut
de toute manière pas fonctionner, la cellule "Brut" pouvant changer d'adresse sur chaque feuille.
Tu peux essayer cette petite fonction VBA à la place :
Function MASOMME(Feuille1 As String, Feuille2 As String, Nom As String) As Double
Dim Wbk As Workbook, I As Integer
Application.Volatile
Set Wbk = Application.Caller.Worksheet.Parent
With Wbk.Sheets
For I = .Item(Feuille1).Index To .Item(Feuille2).Index
With .Item(I)
If .Type = xlWorksheet Then MASOMME = MASOMME + .Range(Nom)
End With
Next I
End With
Bonjour Evita, Application.volatile permet le recalcul de la fonction lors d'un changement de données. -- Amicales Salutations XL 97 / 2000 / 2002
"Evita" a écrit dans le message de news:
Merci beaucoup laurent, cela fonctionne très bien
Encore une petite question, La déclaration d'application volatile est-elle nécessaire dans ce cas ou est-ce une "sécurité" apportée à la fonction?
Très grand merci à tous les animateurs-formateurs et intervenants de ce forum et à ceux d'entre vous qui ont pris le temps de faire des sites et qui les nourrissent régulièrement d'infos géniales. C'est une énorme source d'infos, tellement conviviale.... Merci -- Evit@
Laurent Longre" <>
Hello,
Dans une formule 3D, tu ne peux utiliser qu'une seule adresse de plage, donc dans ton cas ça ne peut de toute manière pas fonctionner, la cellule "Brut" pouvant changer d'adresse sur chaque feuille.
Tu peux essayer cette petite fonction VBA à la place :
Function MASOMME(Feuille1 As String, Feuille2 As String, Nom As String) As Double
Dim Wbk As Workbook, I As Integer Application.Volatile Set Wbk = Application.Caller.Worksheet.Parent With Wbk.Sheets For I = .Item(Feuille1).Index To .Item(Feuille2).Index With .Item(I) If .Type = xlWorksheet Then MASOMME = MASOMME + .Range(Nom) End With Next I End With