Microsoft 365 Ajout ligne tableau VBA

Eric.lo

XLDnaute Nouveau
Bonsoir à tous,

Voilà j'aimerai pourvoir créer un bouton VBA afin d'ajouter une ligne supplémentaire en dessous mon tableau. Après avoir écrit dans cette première ligne j'ai besoin d'une deuxième ligne mais qui se mette en dessous et non au dessus. Et ainsi de suite... Jusqu'à 15-20 lignes en fonction de ce que j'ai besoin, tout cela sans modifier la suite de mon tableau. Je ne sais pas si je me suis fais comprendre. Je vous met une image ce sera peut-être plus explicite :)
1644539604867.png

Merci d'avance pour vos réponse :)

Eric
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour à tous
non d'une pipe en bois !!! pourquoi bon sang !! ne pas utiliser un tableau structuré
c'est si facile d'y d'ajouter une ligne ou même une colonne a un endroit ou un autre
toujours se poser la question "est ce que j'utilise la bonne stratégie ou le bon outils"
 

Eric.lo

XLDnaute Nouveau
re
Bonjour à tous
non d'une pipe en bois !!! pourquoi bon sang !! ne pas utiliser un tableau structuré
c'est si facile d'y d'ajouter une ligne ou même une colonne a un endroit ou un autre
toujours se poser la question "est ce que j'utilise la bonne stratégie ou le bon outils"
Bonjour Patrick,

Tu parles de définir mes tableau dans la macro? Je t'avoue je débute dans les VBA, j'ai pu lire 2-3 trucs là dessus mais je n'ai pas trouvé la solution 😬
 

patricktoulon

XLDnaute Barbatruc
bonjourtout les deux
@Phil69970
perso je fait simple
je donne un nom à la ligne grise "limite"
et dans ton bouton
VB:
Sub CommandButtonx1_Click()
    Dim R As Range, Lig&, LiM&

    Set R = [A3:H65535].Resize([limite].Row - 3)
    Lig = R.Columns(1).End(xlDown).Row: ligm = [limite].Row
    LiM = [limite].Row

    If Lig = LiM - 1 Then
        [limite].Insert Shift:=xlDown
        With [A:D].Rows(LiM): .MergeCells = True: .BorderAround 1, 3: End With
        With [E:H].Rows(LiM): .MergeCells = True: .BorderAround 1, 3: End With
    End If
End Sub
di la ligne précédente est remplie ça marche sinon non
ou bien pareil mais en plus simple
VB:
Sub CommandButton1_Click()
    Dim LiM
    LiM = [limite].Row
    If [limite].Offset(-1).Cells(1) <> "" Then
        [limite].Insert Shift:=xlDown
        With [A:D].Rows(LiM): .MergeCells = True: .BorderAround 1, 3: End With
        With [E:H].Rows(LiM): .MergeCells = True: .BorderAround 1, 3: End With
    End If
End Sub

testé sur ton fichier post #10
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof