Ajout/Suppression de lignes en VBA

Bonjour,

J'aimerais savoir si il était possible d'ajouter ou supprimer des lignes dans un tableau non structuré avec des boutons (+/-), j'entend par la tableau que j'ai dessiné moi même et non pas un tableau par insertion ---> tableau.

L'idée serait d'essayer de détecter la dernière ligne du tableau et d'ajouter une nouvelle lignes en se basant sur la config des précédentes, car elle contiennent des formules qui devront être présente dans la nouvelle lignes crée,

Attention, dans le cas ou la ligne précédente serait rempli , il ne faudrait pas qu'elle recopie les données, uniquement les formules.

enfaite il ne s'agit pas de spécialement recopier la dernière lignes, il serait tout bêtement d'ajouter une ligne avec le même le formatage que les précédentes,

Comment détecter la dernière lignes du tableau ? Voici les éléments que je peux donner,

Le tableau commence en B8 jusqu'à J8 (B7-J7 contiennent les entêtes du tableau)

En B8 j'ai une donnée qui se répète sur toutes les lignes du tableau, (disons que la donnée est : "Paris") on pourrait se servir de cela pour détecter la fin du tableau en partant de B8-J8 pour ajouter/supprimer une ligne. Du coup tester B pour trouver la dernière valeur "Paris" et ajouter la ligne supplémentaire

Par définition lorsqu'une nouvelle ligne est crée elle ajoutera le mot "Paris" en B et les formules de D-E-F-I-J

Je ne sais pas si cela est réalisable ou encore si mes explications sont compréhensible, n'hésitez pas à me le dire.

Cordialement,

Bonjour

Le plus simple serait que tu joignes un fichier avec sur un onglet le fichiet que tu as au départ et sur un 2° onglet le fichier tel que tu voudrais qu'il devienne.
OK ?

Bye :!

Helllo le voila

5test.zip (1.37 Mo)

A l'inverse de l'ajout de ligne, l'idée pour la suppression de ligne serait soit de regarder la dernière ligne du tableau en colonne B pour détecter la fin du tableau par rapport avec la cellule "Paris" et de supprimer la ligne entière et faire remonter le bloc vers le haut, soit dans une autre hypothèse ce serait pourquoi pas de supprimer toutes les lignes pour lequel la colonne B = Paris dont la cellule en C est vide, ainsi ca nous ferait une suppression de tout ce qui est vide, cela me conviendrais également, du coup le bouton (-) serait un peu plus radicale que le (+) qui lui ajoute ligne par ligne.

Finalement j'ai réussi à trouver la bonne macro pour supprimer des lignes avec deux conditions, il me reste maintenant à trouver comment ajouter des lignes en se basant sur les formules et mise en forme.

Sub DelEmpty()
Dim iRow As Long
For iRow = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Cells(iRow, "B").Value = "première condition" And _
Cells(iRow, "C").Value = "deuxième conditions" Then
Rows(iRow).Delete
End If
Next iRow
End Sub

Si ca peut servir à d'autres....

Bonjour

Ci joint ma solution mais je ne comprends pas "Séparation" n'est que dans la colonne C...

De plus je n'aime pas les MP donc on continue sur ce post

A+ François

bonjour le fil,

Sub Plus()
     Dim i     As Variant, c
     With ActiveSheet
          .Range("B8:B1000").Name = "Parigoo"     'la plage pour chercher "Paris"
          i = Application.Min(Evaluate("if(parigoo<>""Paris"",row(parigoo),""~"")"))     'premiere ligne <>"Pais"
          If IsNumeric(i) Then
               Set c = .Range("B" & i - 1 & ":J" & i - 1)     'plage du dernier "Paris"
               c.Insert xlShiftDown, xlFormatFromRightOrBelow     'insérer de B à J
               c.Copy c.Offset(-1)           'copier dernier paris sur ligne précédente et insérée
               On Error Resume Next
               c.SpecialCells(xlConstants).ClearContents     'supprimer les constants de la dernière lignes, conserver les formules
               On Error GoTo 0
               c.Cells(1).Value = "Paris"    '1ière cellule = "paris"
          End If
     End With
End Sub
Rechercher des sujets similaires à "ajout suppression lignes vba"