Valeur dans la cellule d'un tableau en passant par le VBA

Bonjour,

J'ai un problème assez simple je pense mais je n'ai pas trouvé de réponse aussi simple. Je souhaite juste afficher une valeur dans une cellule d'un tableau en passant par le VBA

Sub Macro1()
Dim Tableau1
Tableau1.Range("A2").Value = 2
End Sub
22.xlsm (13.91 Ko)

Merci par avance

Hello,

Une possibilité :

Sub Macro1()
Dim Tableau1 As ListObject
Range("Tableau1").Cells(1, 1) = 2
End Sub

Après, il y a moyen d'automatiser les numéros de ligne, voir les colonnes particulières avec leurs entêtes.

Super merci, ça marche comme je veux sur ce fichier. Je vais essayer de l'appliquer à mon vrai fichier de ce fait.

Je pense que ce que tu as proposé répond bien à mon problème. En fait j'ai créé un tableau pour avoir une belle mise en forme mais je veux que les données à l'intérieur se comporte comme si il n'y avait pas de tableau pour que je fusionne cette macro avec une autre assez complexe déjà créée.

En fait ça ne marche pas comme je veux.

Je pars d'un userform sur lequel je recueil 1stInput et chaque rentrée est fait sur une nouvelle ligne afin de créer un suivi

Le code marchait nickel avant que je crée le tableau (ça en était un juste avec des bordures avant)

Dim derLigne As Long
Dim Tableau1 As ListObject

derLigne = Range("A" & Rows.Count).End(xlUp).Row
        Range("Tableau1").Cell(1, derLigne + 1) = .lstInput.Value

Ancien code à la place de la dernière du nouveau :

Sheets("Suivi").Range("A" & derLigne + 1).Value = .lstInput.Value

EDIT : merci je vais regarder ton lien

Re,

Ce code mettra ta valeur 1stInput en dernière ligne de la colonne 1 de ton tableau structuré.

Sub Macro1()
Dim Tableau1 As ListObject
Range("tableau1").ListObject.ListColumns(1).DataBodyRange(Range("tableau1").Rows.Count).Offset(1, 0) = .lstInput.Value
End Sub

Bien que j'aurais tendance à t'inciter à donner un nom plus explicite à ton tableau.

Le code précédent plante si tu n'as pas de donnée dans la colonne 1.

Le code suivant pourrait régler ce problème :

Sub Macro1()
Dim Tableau1 As ListObject
If Range("tableau1").ListObject.ListRows.Count = 0 Then
Range("tableau1").Cells(1, 1).Value = .lstInput.Value
Else: Range("tableau1").ListObject.ListColumns(1).DataBodyRange(Range("tableau1").Rows.Count).Offset(1, 0) = .lstInput.Value
End If
Next
End Sub

Je n'ai pas assez l'habitude d'utiliser ces syntaxes, je me les approprie en même temps que je les donne ici.

@tous, n'hésitez pas à améliorer ces bouts de code, ça me ferait plaisir !

Merci beaucoup, j'ai réussis à faire ce que je voulais. Je vais finaliser tout ça pour avoir un doc et un code nickel

Rechercher des sujets similaires à "valeur tableau passant vba"