IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Tableaux structurés : problème avec l'insertion d'une nouvelle ligne avec formule [XL-365]


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 67
    Points : 31
    Points
    31
    Par défaut Tableaux structurés : problème avec l'insertion d'une nouvelle ligne avec formule
    Bonjour chers Exceliens

    je tente d'apprendre à manipuler les tableaux structurés, mais je tombe (encore ) sur un problème.

    Voici un exemple très simplifié d'un tableau sur lequel je bosse :

    Nom : L10.jpg
Affichages : 186
Taille : 97,8 Ko

    En dernière colonne, j'ai mis en place un cumul des montants. N'ayant pas réussi à utiliser les noms des colonnes, j'ai donc mis Et automatiquement, cette formule c'est parfaitement bien recopiée jusqu'à la dernière ligne, soit la 10, ou l'on retrouve bien la formule Curieusement, lorsque je rajoute une ligne avec le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.ListObjects("T_01").ListRows.Add AlwaysInsert:=True
    la formule de la ligne 10 change et devient "=somme($E$4:E11)".

    Nom : L11.jpg
Affichages : 173
Taille : 110,1 Ko

    Comment faire pour que cette formule ne soit pas modifiée, et surtout que la 11 soit bien "=somme($E$4:E11)" ?

    Merci d'avance encore une fois pour votre aide

    Signé : "le boulet"

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 67
    Points : 31
    Points
    31
    Par défaut Une solution lourde
    J'ai bien trouvé une solution (un peu lourde) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Range("T_01").Parent.Activate
     
    'Premiere ligne des donnees
    PL_D = ActiveSheet.ListObjects("T_01").HeaderRowRange.Row + 1
     
    'Nombre de colonnes
    DER_COL = ActiveSheet.ListObjects("T_01").ListColumns.Count
     
    'Ajout d'une ligne à la fin du tableau
    ActiveSheet.ListObjects("T_01").ListRows.Add AlwaysInsert:=True
     
    'Efface les formules     
    Application.Goto ActiveSheet.ListObjects("T_01").DataBodyRange(2, DER_COL)
    Range(Selection, Selection.End(xlDown)).ClearContents
     
    'Remise en place de la formule
    Application.Goto ActiveSheet.ListObjects("T_01").DataBodyRange(1, DER_COL)
    Selection.FormulaR1C1 = "=SUM(R" & PL_D & "C" & DER_COL & ":RC[-1])"
    mais je pense qu'il doit y avoir une solution plus simple...

    Merci d'avance pour votre aide

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    Salut.

    Ce n'est pas vraiment un bug. C'est la façon dont Excel considère la formule de départ. En fait, si tu as des données jusqu'en ligne 5 et que donc du utilises SOMME(E$2:E5), Excel considère que tu as utilisé toute la colonne, mais seulement sur la ligne 5, ce qui correspondrait en fait à SOMME(Tableau[Cumu_LIGNE]) si tu l'écrivais hors du tableau.Excel considère donc que la colonne n'est pas "vraiment" formulée mais il essaie quand même de propager la dernière formule sur les nouvelles lignes, et il propage donc le fait qu'il fait la somme de toute la colonne du tableau.

    tu peux contourner ce problème en utilisant une référence mixte classique/Structurée, car [@Valeur] signifie "sur la même ligne dans la colonne Valeur" et donc, Excel ne considère plus la colonne entière.

    Nom : 2021-10-20_192244.png
Affichages : 159
Taille : 49,6 Ko


    Cela dit, dans ton tableau, ma fibre d'ancien comptable frémit en voyant les débits en moins. Pour moi, un débit négatif, c'est un crédit... Perso, j'aurais arrangé le tableau de cette façon

    Nom : 2021-10-20_193610.png
Affichages : 155
Taille : 8,3 Ko


    J'explique cela en détails dans ce billet de blog.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 67
    Points : 31
    Points
    31
    Par défaut
    Une fois de plus, avec vous, c'est parfait !

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Office 365] Tableaux structurés : problème avec l'insertion d'une nouvelle ligne avec formule
    Par BGIE_29300 dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 20/10/2021, 17h10
  2. Réponses: 3
    Dernier message: 23/05/2008, 14h52
  3. Insertion d'une nouvelle ligne dans la table
    Par boby15000 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/05/2008, 17h49
  4. [C# .NET2.0][MySQL] Insertion d'une nouvelle ligne via un dataset
    Par bodygard dans le forum Accès aux données
    Réponses: 1
    Dernier message: 16/05/2007, 12h22
  5. Réponses: 18
    Dernier message: 26/07/2006, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo