Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

formule avec plusieurs onglets dont les noms changent

2 réponses
Avatar
Marc T
Bonjour,
j'essaie =E0 l'aide d'une macro fourni par JB de cr=E9er des onglets selon
un mod=E8le =E0 partir d'une liste. j'ai du mal avec cette macro. En
effet, si j'enl=E8ve les "F_" elle fonctionne une fois et renomme apr=E8s
"mod=E8le 2, mod=E8le 3, ...)
de plus, je souhaite obtenir un onglet r=E9capitulatif mais comme le nom
des onglets changent, je me retrouve avec des "#REF!!".
voici le fichier qui sera plus compr=E9hensible
http://cjoint.com/?0mkpCcZmCFJ
merci de votre aide
@ bient=F4t
MarcT

2 réponses

Avatar
michel ou sam
Bonjour,
je vais essayer de t'aider un peu

Si tu enlèves le "F_", il faut modifier la procédure supOnglets() car il y
a un test impossible sur les 2 premiers caractères de la feuille par le
Left(Sheets(s).Name, 2) = ""

Soit par sécurité et pour reconnaitre facilement des feuilles tu mets une ou
x lettres devant le nom de la feuille, je verrai par exemple "Profil_" et
réajustes le Left(Sheets(s).Name, 7) = "Profil_"
Soit tu es sûr de toi et tu enlèves ce test mais tu as intérêt à regrouper
les 3 feuilles fixes en Feuil1, Feuil2 et Feuil3 de la collection
afin de travailler uniquement de la Feuil4 à la fin de la collection : For
s = Sheets.Count To 4 Step -1


Pour ton 2eme pb, il faut créer une fonction qui lit la cellule (X, Y) de
chaque feuille de la collection et en fait la somme
puis après tu utilises cette formule dans une cellule comme toutes autres
formules d'Excel
=sommetout(B10) par exemple
(perso, dans mes tests, j'ai un pb de mise à jour du résultat et je ne sais
pas pourquoi)

voici mes tests

Sub supOnglets()
Application.DisplayAlerts = False 'Suppression du message d'alerte à la
suppresion de la feuille
For s = Sheets.Count To 4 Step -1
Sheets(s).Delete
Next s
Application.DisplayAlerts = True 'Remise des alertes
End Sub

Function sommetout(Cellule As Range)
total = 0
For s = Sheets.Count To 4 Step -1
total = total + Sheets(s).Range(Cellule.Address).Value 'ça devrait
être plus simple mais je ne sais pas comment faire
Next s
sommetout = total 'attention pb de recalcul après chgt d'une valeur, même F9
est sans action
.End Function

Michel

"Marc T" a écrit dans le message de news:

Bonjour,
j'essaie à l'aide d'une macro fourni par JB de créer des onglets selon
un modèle à partir d'une liste. j'ai du mal avec cette macro. En
effet, si j'enlève les "F_" elle fonctionne une fois et renomme après
"modèle 2, modèle 3, ...)
de plus, je souhaite obtenir un onglet récapitulatif mais comme le nom
des onglets changent, je me retrouve avec des "#REF!!".
voici le fichier qui sera plus compréhensible
http://cjoint.com/?0mkpCcZmCFJ
merci de votre aide
@ bientôt
MarcT
Avatar
Marc T
On 12 déc, 18:19, "michel ou sam" wrote:
Bonjour,
je vais essayer de t'aider un peu

Si tu enl ves le "F_", il faut modifier la proc dure supOnglets()  car il y
a un test impossible sur les 2 premiers caract res de la feuille  par l e
Left(Sheets(s).Name, 2) = ""

Soit par s curit et pour reconnaitre facilement des feuilles tu mets une ou
x lettres devant le nom de la feuille, je verrai par exemple "Profil_" et
r ajustes le Left(Sheets(s).Name, 7) = "Profil_"
Soit tu es s r de toi et tu enl ves ce test mais tu as int r t regrouper
les 3 feuilles fixes en Feuil1, Feuil2 et Feuil3 de la collection
afin de travailler uniquement de la Feuil4 la fin de la collection :  F or
s = Sheets.Count To 4 Step -1

Pour ton 2eme pb, il faut cr er une fonction qui lit la cellule (X, Y) de
chaque feuille de la collection et en fait la somme
puis apr s tu utilises cette formule dans une cellule comme toutes autres
formules d'Excel
=sommetout(B10) par exemple
(perso, dans mes tests, j'ai un pb de mise jour du r sultat et je ne sais
pas pourquoi)

voici mes tests

Sub supOnglets()
  Application.DisplayAlerts = False 'Suppression du message d'alerte la
suppresion de la feuille
  For s = Sheets.Count To 4 Step -1
      Sheets(s).Delete
  Next s
  Application.DisplayAlerts = True 'Remise des alertes
End Sub

Function sommetout(Cellule As Range)
total = 0
  For s = Sheets.Count To 4 Step -1
      total = total + Sheets(s).Range(Cellule.Address).Value ' a devrait
tre plus simple mais je ne sais pas comment faire
 Next s
sommetout = total 'attention pb de recalcul apr s chgt d'une valeur, m me F9
est sans action
.End Function

Michel

Bonjour,


merci de ton aide.
je teste et te tiens au courant
bonne journée
@ bientôt
MarcT