Microsoft 365 écriture formule pour tableau structuré

  • Initiateur de la discussion Initiateur de la discussion CortoXls
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CortoXls

XLDnaute Junior
Bonjour à tous

Je cherche à écrire une formule équivalente à celle-ci (je suis dans un tableau structuré qui va évoluer)
Lign étant la ligne active et TblMois le tableau sur la feuille active

VB:
Set CellCredit = Cells(Lign, 7)

je voudrai faire référence à la colonne par son nom "Recettes" et non par son N° mais je ne trouve pas la bonne formulation

j'ai essayé en vain cette formulation ainsi que toutes (ou presque) les variantes possibles y compris avec des crochets...
Code:
Set CellCredit = TblMois.Cells(Lign, ListColumns("Recettes"))
 
Hello

Regardes ici, tu vas avoir les syntaxes

Bonjour,
Merci pour le lien
Je viens de passer auparavant un temps infini à lire le site de P. Fauconnier...
Voilà ce que j'ai écrit mais ça ne fonctionne pas mieux je suis décalé de 7 lignes...

VB:
Set CellCredit = TblMois.ListColumns("Recettes").DataBodyRange.Rows(Lign)
 
Dernière édition:
tu n'as visiblement pas (bien) lu le lien que je t'ai envoyé
il y a notament un tableau avec différentes syntaxes pour adresser, une ligne, une colonne, une cellule.

Set CellCredit = TblMois.ListColumns("Recettes").DataBodyRange(Lign)
 
tu n'as visiblement pas (bien) lu le lien que je t'ai envoyé
il y a notament un tableau avec différentes syntaxes pour adresser, une ligne, une colonne, une cellule.

Set CellCredit = TblMois.ListColumns("Recettes").DataBodyRange(Lign)
si bien sûr que j'ai lu ton lien et même mis en favori !

Par contre je suis décalé de 7 lignes, mon tableau démarrant à la ligne 7.
Cette fois-ci je ne parviens pas à redéfinir ma variable Lign...
VB:
Set Cellchange = ActiveCell             'la variable CellChange correspond à la cellule active
Lign = Cellchange.Row                   'la variable Lign correspond à la ligne de la cellule active
Je suppose que je dois intégrer DatabodyRange dans l'une ou l'autre déf.
 
Bonsoir.
Si Lign est un n° de ligne dans la feuille, le plus simple c'est peut être :
VB:
Set CellCrédit = [TblMois[Recettes]].Rows(Lign - [TblMois].Row + 1)
Mais si Lign vient d'un Target.Row il est peut être plus simple de prendre Intersect([TblMois[Recettes]], Target.EntireRow)
 
Dernière édition:
Le ListObject n'est pas connu de VBA. Mais vous pouvez le récupérer de la collection ListObjects :
VB:
Set LOt = ListObjects("TblMois")
Set CellCredit = LOt.ListColumns("Recettes").DatabodyRange.Rows(Lign - LOT.HeaderRowRange.Row)
Merci à tous !
A partir de vos conseils, je fais désormais des TS car effectivement c'est bien plus facile lorsqu'on est au début d'un projet où tout peut changer (colonnes, lignes, emplacement du tableau...)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
553
Retour