Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 [CLOS] Tableau Structuré et recopie de Formule

ChTi160

XLDnaute Barbatruc
Bonjour ,
j'ai un tableau structuré avec une Colonne (6) qui comporte les Formules du Calcul (somme) par Ligne des Colonnes 3,4,5
lorsque j'ajoute (via un Userform ,Macro) Une Ligne , a mon tableau les Colonnes 3,4,5 sont bien remplies , mais la Colonne Total (6) ne s'incrémente pas de la Formule de la Ligne au dessus !
Avez vous une idée du Pourquoi ?
dans l'attente
Merci et Bonne fin de Journée
Jean marie
 

wDog66

XLDnaute Nouveau
Salut ChTi160

Franchement j'avoue que les TS pour ça, c'est un peu la galère
Essayez manuellement, vous verrez (probablement) que la formule ne suit pas...

Systématiquement j'insère les formules via VBA

A+
 

Cousinhub

XLDnaute Barbatruc
Re-,
J'ai modifié la dimension du tableau (tu avais mis 8)
VB:
Dim TabDonnees(1 To 7, 1)
La formule s'insère automatiquement dans un TS, donc inutile d'y insérer quelque chose.
A la création, tu mets tes titres, puis "Insertion/Tableau" (tu précises qu'il y a bien des titres)
Dans la colonne "Total", tu mets ta formule kivabien
Puis, tu peux supprimer la ligne(via clic droit dans une cellule de cette ligne, Supprimer/Ligne de tableau)
La formule reste intégrée au TS
Lors de l'ajout d'une ligne (j'ai commenté la ligne où tu insérais la formule), les 7 premières colonnes vont se remplir, et la formule s'ajouter toute seule, comme une grande...
Je te laisse tester
 

Pièces jointes

  • Test Formules Chti160.xlsm
    29.4 KB · Affichages: 3

ChTi160

XLDnaute Barbatruc
Re
merci de ces réponse
j'avais un tableau , que j'ai transformé en TS sans autre Chose ,j'ai ensuite modifié la Formule pour y mettre les références de colonnes au lieu des cellules;
je me suis rendu compte que dans ma Formule il n'y avait pas de référence au Nom du Tableau (=SOMME([@[RTT]:[FRACTIONNEMENT]])) au lieu de (=SOMME(t_BDD[@[RTT]:[FRACTIONNEMENT]])est ce important ?
je regarde à appliquer la proposition de TooFatBoy!
Jean marie
 

Cousinhub

XLDnaute Barbatruc
Re-,
Et en complément, pour remplir la nouvelle ligne, autant utiliser le codage propre aux TS
(Déclarer I as Long au préalable)
VB:
...
With Range("t_BDD").ListObject
     Set LstR = .ListRows.Add: I = LstR.Index
     .DataBodyRange(I).Resize(, 7) = Application.Transpose(TabDonnees)
End With
...
 

Cousinhub

XLDnaute Barbatruc
Re,-
Non, il ne faut pas rentrer la formule par le biais de VBA...
 

ChTi160

XLDnaute Barbatruc
Re
Cousinhub
j'ai compris c'est juste une question !
je me suis rendu compte que dans ma Formule il n'y avait pas de référence au Nom du Tableau (=SOMME([@[RTT]:[FRACTIONNEMENT]])) au lieu de (=SOMME(t_BDD[@[RTT]:[FRACTIONNEMENT]])est ce important ?
donc
VB:
With Range("t_BDD").ListObject
     Set LstR = .ListRows.Add
    With LstR
       .Range.Cells(1, 1).Resize(, UBound(TabDonnees, 1)) = Application.Transpose(TabDonnees)
    End With
n'est pas du Codage TS ? tu dis :
"autant utiliser le codage propre aux TS"
j'ai encore rien Compris Lol
Merci a vous deux
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re
j'ai beau supprimer mon tableau ,le re définir "t_BDD" ,y mettre la formule dans la Colonne (6) ,supprimer la Ligne .
lorsque j'ajoute une Ligne rien ne se passe Lol
Je clos le sujet !
merci a vous .
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re
'c'est bon j'avais oublié de redimensionner le tableau 1 to 7
Édit : j'ai aussi vu qu'il existe des options (3) qui concernent les diverses possibilités de recopie ou non des formules !
Merci a vous deux
Jean marie
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…