XL 2013 Insertion d'une ligne dans tableau VBA

tico06

XLDnaute Nouveau
Bonjour a tous,

Je souhaite insérer une nouvelle ligne au début de mon tableau excel tout en conservant les propriétés (formule, Mise en forme conditionnelles, format) de la ligne du dessous.
Mon tableau est un tableau structuré (nommé Tableau2).
Ce tableau comporte une entête en ligne 6 et commence en ligne 7. Il comporte 7 colonne (de B a H)

Merci d'avance pour votre aide
 
Solution
Bonsoir,

Opérations courantes sur les tableaux.
Il n'y a pas de problème avec la MFC même si on vide le tableau.
La formule est la même dans toute la colonne.

VB:
Sub SuppressionLigneTableau()
  n = 1
  If [tableau1].Item(n, 1) <> "" Then [tableau1].Rows(n).delete
End Sub


Sub InsèreLigneTableau()
  [tableau1].Rows(1).Insert
End Sub

Sub AjoutFinTableau()
  If [tableau1].Item(1, 1) <> "" Then n = [tableau1].Rows.Count + 1 Else n = 1
  [tableau1[nom]].Item(n, 1) = "xxxx"
End Sub

Sub VideTableau()
   If [tableau1].Item(1, 1) <> "" Then [tableau1].delete
End Sub

Boisgontier

job75

XLDnaute Barbatruc
Bonsoir tico06,

Les formats et la Mise en forme conditionnelle sont répercutés automatiquement sur la ligne insérée.

Par contre les formules ne sont pas copiées, pour cela utilisez cette macro :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
With ListObjects(1).Range
    If Application.CountA(.Rows(2)) Or .Rows.Count < 3 Then Exit Sub
    For Each c In .Rows(3).Cells
        If c.HasFormula Then c.AutoFill c(0).Resize(2), xlFillValues
    Next
End With
End Sub
Elle doit être placée dans le code de la feuille (clic droit sur l'onglet et Visualiser le code).

Elle s'exécute quand on modifie la feuille, y compris quand on insère des lignes.

A+
 

job75

XLDnaute Barbatruc
Chez moi la MFC se recopie automatiquement mais sa formule ne va pas, il y a un $ de trop sur $H$7, utilisez :
Code:
=ET($H7<AUJOURDHUI();NON(ESTVIDE($G7)))
Et la formule en colonne H se recopie aussi automatiquement.

Mais si vous avez un problème ajoutez ma macro du post #2, fichier joint.
 

Pièces jointes

  • Test(1).xlsm
    20.4 KB · Affichages: 13

Dranreb

XLDnaute Barbatruc
Bonjour.
Là encore pour une raison que j'ignore, quand j'ai ouvert votre classeur la formule en H7 n'était pas prise comme étant celle de toute la colonne. Une fois propagée manuellement sur toute les lignes, elle l'est devenue, et est mise même si on supprime toutes les lignes du tableau avant d'en insérer une nouvelle. Et cette supression préalable ne bousille plus la réf de la formule MFC si corrigée comme indiqué par job75.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonsoir,

Opérations courantes sur les tableaux.
Il n'y a pas de problème avec la MFC même si on vide le tableau.
La formule est la même dans toute la colonne.

VB:
Sub SuppressionLigneTableau()
  n = 1
  If [tableau1].Item(n, 1) <> "" Then [tableau1].Rows(n).delete
End Sub


Sub InsèreLigneTableau()
  [tableau1].Rows(1).Insert
End Sub

Sub AjoutFinTableau()
  If [tableau1].Item(1, 1) <> "" Then n = [tableau1].Rows.Count + 1 Else n = 1
  [tableau1[nom]].Item(n, 1) = "xxxx"
End Sub

Sub VideTableau()
   If [tableau1].Item(1, 1) <> "" Then [tableau1].delete
End Sub

Boisgontier
 

Pièces jointes

  • OperTables.xlsm
    19.3 KB · Affichages: 14
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 047
Messages
2 084 864
Membres
102 690
dernier inscrit
souleymaane