Problème écriture tableau
A
Bonjour,
J'ai un problème d'interprétation de mon code, je souhaite ecrire des lignes dans mon tableau, hors ces lignes sont en dehors de mon tableau.
J'essaye de déclarer mon tableau en listobject mais rien à faire.
Merci
Invité
Bonjour
Vous voulez écrire ou supprimer des lignes dans votre TS !?
Car les seules lignes ou votre TS est déclaré c'est dans la sub "supprimer"
Sub supprimer()
Dim t_tableau As ListObject
Set t_tableau = ThisWorkbook.Worksheets("Feuil1").ListObjects("Tableau1")
'Indiciation de la ligne
i_row = 1
While i_row <= t_tableau.ListRows.Count
'Check x et X"
While t_tableau.ListRows(i_row).Range(5) = "x" Or t_tableau.ListRows(i_row).Range(5) = "X"
t_tableau.ListRows(i_row).Delete 'Suppression
'Check si hors tableau
If i_row > t_tableau.ListRows.Count Then
Exit Sub
End If
Wend
i_row = i_row + 1 'Incrémentation
'Check si hors tableau
If i_row > t_tableau.ListRows.Count Then
Exit Sub
End If
Wend
End SubA+
A
Bonjour,
j'aimerais les saisir et les effacer mais Effacer fonctionne
Voilà
thevPassionné d'Excel
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonjour,
ci-dessous code pour ajouter
Sub Bouton2_Cliquer()
Dim var_pn, var_ra, var_rb, var_ln
Dim ligne As ListRow
Dim i As Integer
var_pn = Range("H12")
var_ra = Range("G26")
var_rb = Range("K11")
var_ln = Range("K26")
With [Tableau1].ListObject
Set ligne = .ListRows.Add: i = ligne.Index 'ajout d'une ligne à la fin du TS
If var_pn <> "" And var_ra <> "" And var_rb <> "" And var_ln <> "" Then
.ListColumns("Pn").DataBodyRange(i) = var_pn
.ListColumns("r").DataBodyRange(i) = var_ra
.ListColumns("R ").DataBodyRange(i) = var_rb
.ListColumns("Ln").DataBodyRange(i) = var_ln
End If
End With
End Subci-dessous code pour supprimer (on doit aller de la dernière ligne à la première)
Sub supprimer()
Dim t_tableau As ListObject
Dim i_row As Integer
Set t_tableau = [Tableau1].ListObject
'Indiciation de la ligne
With t_tableau
For i_row = .ListRows.Count To 1 Step -1
If UCase(.ListColumns("Supprimer").DataBodyRange(i_row)) = "X" Then .ListRows(i_row).Delete 'Suppression
Next i_row
End With
End SubJe vous engage à consulter mon tutoriel pour les instructions VBA à utiliser pour un TS
Salut BrunoM45
Salut,
Une fonction de Pierre Fauconnier à mettre dans votre module boite à outils
' // TS_AddRow By Pierre Fauconnier le : 23/02/2022
' // Ajoute une ligne dans un tableau structuré et la remplie avec les valeurs passées en Array
' // Exemple TS_AddRow Range("Tableau1"), VBA.array("Nom", txtNom.Value, "Date", Format(txtDate.Value, "Short date")
Function TS_AddRow(TS As Range, Values, Optional Position As Long)
Dim lstR As ListRow
Dim lstO As ListObject
Dim Counter As Long
Set lstO = TS.ListObject
If Position = 0 Or Position > lstO.ListRows.Count Then Position = lstO.ListRows.Count + 1
Set lstR = lstO.ListRows.Add(Position)
For Counter = LBound(Values) To UBound(Values) Step 2
lstR.Range(lstO.ListColumns(Values(Counter)).index).Value = Values(Counter + 1)
Next
If Not lstR Is Nothing Then Set lstR = Nothing
If Not lstO Is Nothing Then Set lstO = Nothing
End Function