Rajouter des lignes dans un tableau structurée via VBA

Bonjour,

J'ai besoin d'une macro permettant de rajouter des lignes dans un tableau structuré ce que j'ai réussi à faire.

Seulement les lignes ne sont pas de la même hauteur que les précédentes.

Voici mon code

image

Pouvez-vous m'aider pour que le format des lignes ajoutées soit identique?

Merci d'avance pour votre aide.

Frédéric

Bonjour,

J'ai corrigé votre validation de données sur la première colonne et vidé votre tableau structuré. L'ajout de ligne fonctionne correctement au niveau du format.

Votre code simplifié :

Sub Ajouter_Ligne()
    Dim ligne As ListRow

    ActiveSheet.Unprotect "1234"
    With ActiveSheet.ListObjects("Carriere")
        Set ligne = .ListRows.Add(AlwaysInsert:=False)
        Application.GoTo ligne.Range(1), True
    End With
    ActiveSheet.Protect Password:="1234"

End Sub

Bonjour c'est super merci cela fonctionne très bien,

Maintenant à l'usage je me rends compte que si on clique trop il y des lignes et que l'on ne peut pas revenir en arrière.

Il faut faire un deuxième bouton suppression de ligne vous pensez?

Et je me demandais s'il était possible de changer le bouton par un plus par exemple mais je n'ai pas trouvé de tutoriel pour faire cela.

Sauriez-vous m'explqiuer comment changer la forme du bouton?

Merci d'avance pour votre aide.

Frédéric

Bonjour,

J'ai avancé dans mon tableau et rajouté un bouton supprimer une ligne qui fonctionne.

Cependant quand on clique sur ajouter cela decalle la feuille vers le bas ce qui oblige à remonter dans la feuille je ne sais pas pourquoi.

Cela peut être pénible s'il faut ajouter 15 lignes d'ancienneté. Comment faire pour résoudre cet inconvénient?

Merci d'avance pour votre aide.

Frédéric

bonjour Thev,Frédéric38360,

pour ne pas décaller en bas, supprimez la virgule et le "true"

Application.GoTo ligne.Range(1), True

pour supprimer

Sub Supprimer_Ligne()

     ActiveSheet.Unprotect "1234"
     With ActiveSheet.ListObjects("Carriere")
          If .ListRows.Count Then
               .ListRows(.ListRows.Count).Delete
          Else
               MsgBox "le tableau est déjà vide"
          End If
     End With
     ActiveSheet.Protect Password:="1234"

End Sub

Bonjour,

Merci cela fonctionne bien mais il y a encore une petite chose. Je m'explique, quand j'arrive à une ligne en supprimant je peux encore supprimer, cela n'a pas d'effet.

Si je reclique j'ai bien la msgbox le tableau est déjà vide. Par contre les formules en f16,g16 et h16 ont disparus sur la ligne restant.

Si je rajoute des lignes ensuite j'ai bien les formules sur les nouvelle slignes mais plus sur la première(ligne 16).

Comment remédier à cela?

Meri d'avance.

re,

même si le tableau est vide et contient 0 "listrows", on voit cette ligne vide, donc on doit la cacher.

Bonjour,

Sauf erreur de ma part avec ton fichier lorsque l'on ajoute une ligne elle n'a pas de formule (la première que l'on ajoute, les autres en ont bien une).

Auriez-vous une idée pour que toutes lignes aient une formule,

Parce que vu qu'il est protégé mes collègues ne pourront pas y ajouter de formule !

Merci d'avance pour votre aide.

Frédéric

re,

il faut une fois copier&coller les formules de la ligne 2 vers la ligne 1 et puis on est partie pour toujours.

Bonsoir,

Ok merci c'est parfait c'est exactement ce que je voualis je clôture bonne soirée.

Frédéric

Rechercher des sujets similaires à "rajouter lignes tableau structuree via vba"