Nouvelle ligne dans un tableau VBA [Résolu]

Signaler
Messages postés
168
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
18 janvier 2020
-
Anthelm
Messages postés
168
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
18 janvier 2020
-
Bonjour,

J'ai trouvé ces deux macros qui permettent de créer une ligne à la fin d'un tableau:

Celle ci marche très bien:

Range("Tableau1").ListObject.ListRows.Add AlwaysInsert:=False



Celle la par contre, je ne vois pas ou mettre "MyNewRow" après, comment la lancer.

Set myNewRow = ActiveWorkbook.Worksheets(1).ListObject(1).ListRows.Add


Dans tous les cas, j'aimerai ajouter des valeurs à la ligne en question, et je ne vois pas bien comment le formuler...

• Range("Tableau1").ListObject.ListRows.Add AlwaysInsert:=False
•(Cetteligne) colonne 1.value = "Valeur 1"
•(Cetteligne) colonne 2.value = "Valeur 2"

... Quelque chose du genre!

Merci beaucoup!

2 réponses

Messages postés
27353
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 janvier 2020
2 043
Bonjour;

Sub test()
Dim lo As ListObject, rCell As Range, Calc As XlCalculation
    Calc = Application.Calculation
    Application.Calculation = xlCalculationManual
    Set lo = Worksheets(1).ListObjects(1)
    With lo
        'si le tableau n'est pas vide, dernière cellule colonne décalée d'une ligne
        If .InsertRowRange Is Nothing Then
            Set rCell = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
        Else
            '1ère. ligne du tableau
            Set rCell = .InsertRowRange.Cells(1)
        End If
    End With

    'remplissage de la nouvelle ligne
    With rCell
        .Value = "à définir"
        .Offset(, 0).Value = "Valeur 1"
        .Offset(, 1).Value = "Valeur 2"
    End With
    Application.Calculation = Calc
End Sub




Cordialement,
Jordane
Messages postés
168
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
18 janvier 2020
1
Merci, mais...

"si le tableau n'est pas vide, dernière cellule colonne décalée d'une ligne"

? :)

Edit:

Ok j'ai regardé la définition de InsertRowRange:
"Si l'option Insérer une ligne n'est pas visible, car la liste est inactive, l'objet Nothing est renvoyé."

Si le tableau est vide, la ligne 1 contiendra les entêtes, les premières données arriveront simplement en ligne 2 je suppose, donc peut être pas besoin de ca.

With rCell
.Value = "à définir"
.Offset(, 0).Value = "Valeur 1"
.Offset(, 1).Value = "Valeur 2"
End With
Application.Calculation = Calc

Yes, ok :) Merci beaucoup ! Je vais partir sur ça.