Insertion ligne tableau Macro qui ne fonctionne plus

Bonjour j'utilise ce vieux fichier depuis quelques années.

Hors la macro ne fonctionne plus sur office 2013. Excel plante... sur plusieurs ordinateurs...

le résultat attendu est simple, quand la cellule B8 est remplie, une ligne s'ajoute au tableau...

merci d'avance pour votre aide

12sb.zip (468.45 Ko)

Bonjour dam0920, le forum,

le résultat attendu est simple, quand la cellule B8 est remplie, une ligne s'ajoute au tableau

  • En dessous de B8 ?
image image
7sb.zip (467.11 Ko)

Cordialement,

Merci pour ton aide Xorsankukai.

effectivement la ligne créée doit se placer sous B8.

il faudrait que la ligne qui s'ajoute soit une copie de la ligne B8 (hors mis la date qu'on inscrit pour déclencher la création de ligne.

d'autre part, où dois-je déclarer "tableau1" pour faire fonctionner ta macro dans le tableau original ?

cordialement,

Re,

Merci pour le retour,

où dois-je déclarer "tableau1" pour faire fonctionner ta macro dans le tableau original ?

  • Tu sélectionnes tes données de B4 à AA7
  • Tu supprimes le filtre
  • Tu cliques sur"Mettre sous forme de tableau"
  • Tu choisis ton style
  • Tu cliques sur "Mon tableau comporte des entêtes"

ensuite

  • Tu cliques sur Formules/Gestionnaire de noms
  • Tu vois apparaitre son nom (si tu le modifie, il faut également le modifier dans la macro).

https://www.excel-pratique.com/fr/astuces/tableau-structure

Cordialement,

Re,

Si il faut appliquer ce code sur les feuilles de chaque mois....et qu'elles sont toutes configurées de la même façon...

A tester:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 Dim wsh

  wsh = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", _
              "Septembre", "Octobre", "Nvembre", "Décembre") 'les feuilles à traiter

   If Not IsError(Application.Match(Sh.Name, wsh, 0)) Then
    If Not Application.Intersect(Target, Sh.ListObjects(1).DataBodyRange) Is Nothing Then
     cancel = True
      If Target.Count > 1 Then Exit Sub
      'If Target.Value = "" Then Exit Sub
      If Target.Row = Sh.ListObjects(1).ListRows.Count + 4 Then Sh.ListObjects(1).ListRows.Add
    End If
   End If
End Sub
  • Code à placer dans le module ThisWorkBook...

Cordialement,

Rechercher des sujets similaires à "insertion ligne tableau macro qui fonctionne"