Résolu XL 2013 Insertion ligne dans un tableau avec conservation formule (VBA)

tico06

XLDnaute Nouveau
Bonjour a tous,

Je souhaiterais insérer en VBA une ligne a la fin d'un tableau tout en conservant la mise en forme ainsi que les formules.
Pour être plus précis la formule a copier fait référence a une cellule de la ligne juste au dessus par exemple : (F:12=F:11+D:12-E:12)
avec le code ci dessous la formule est bien copié mais du coup la référence n'est pas décaler avec l'insertion de cette nouvelle ligne.
La formule copié est (F:13=F:11+D:13-D:12) alors qu'elle devrait être (F:13=F:12+D:13-D:12)

Merci d'avance pour votre aide

Code

VB:
Sub InsertLigne()
Me.ListObjects("Tableau1").ListRows.Add
For i = 1 To 10
   Range("Tableau1").End(xlDown).Offset(0, i).Formula = Range("Tableau1").End(xlDown).Offset(-1, i).Formula
Next
End Sub
 
Ce fil a été résolu! Aller à la solution…

sylvanu

XLDnaute Accro
Supporter XLD
Bonjour Tico,
Essayez :
VB:
Range("Tableau1").End(xlDown).Offset(1, i).Formula = Range("Tableau1").End(xlDown).Offset(0, i).FormulaR1C1
 

chris

XLDnaute Barbatruc
Bonjour

Par construction, si tu as respecté les règles, toute valeur saisie ou inscrite sur la ligne placée sous le tableau structuré hérite
  • du format (MFC et validation incluses)
  • des formules des lignes précédentes
Tes adresses avec des : entre la lettre et le chiffre paraissent fausses et, par ailleurs, pourquoi n'utilisent-elles pas la notation propre aux tableaux structurés ?

Tu as sans doutes des formules non homogènes dans la colonne...

Ton tableau devrait avoir un nom signifiant et non le nom automatique Tableau1

La ligne ListRows.Add suffit pour ajouter une ligne par VBA quand les formules des lignes précédentes respectent les règles

Donc inspecte les formules...

EDIT :

Je suppose que la formule en F12 est=F11+D12-E12 et donc qu'elle est différente sous le titre d'où le problème

Tu dois mettre dès le début, donc en F2 si le tableau a son titre en ligne 1
=SOMME(F1;D2;-E2)
afin que la formule puisse être homogène du haut en bas et éviter le problème que tu rencontres
 
Dernière édition:

tico06

XLDnaute Nouveau
Sylvanu
Merci pour ta réponse mais malheureusement cela ne fonctionne pas en plus cela m’insère une ligne total dans mon tableau ce dont je n'ai pas besoin

Chris :
Merci pour ta réponse
C'est a rendre fou mon "tableau1" été bien un tableau structuré
Pour être sure du truc j'ai recréer un tableau structuré sur une feuil2 identique a celui de la feuil1
J'ai recopié la même macro dans la feuil2 est la miracle tout fonctionne correctement o_O
Encore merci pour ton aide

Ps : pour info que se soit avec F11+D12-E12 ou SOMME(F1;D2;-E2) les deux fonctionnent

Cordialement
 
Ce message a été identifié comme étant une solution!

chris

XLDnaute Barbatruc
RE

La formule F11+D12-E12 ne peut pas être saisie sous le titre car l'addition arithmétique va rejeter la valeur texte alors que la SOMME mathématique l'accepte.

Dès qu'UNE formule diffère dans une colonne, les automatismes s'arrêtent ou cafouillent.

Donc je te conseille de suivre ma recommandation...
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas