Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion ZAJNI
  • 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 !

ZAJNI

XLDnaute Nouveau
Bonjour à tous,

Alors j'aimerai copier une ligne d'un tableau nommé sur une feuille excel dans un tableau similaire dans une autre feuille.
Je veux utiliser la formule : [Tableau_base[Nom]].item(1).copy mais cela ne marche pas
Pourriez-vous me proposer une solution mais avec la même écriture, c'est à dire l'utilisation de [Tableau_Base]

Ci-joint le fichier Excel.
Mes remerciements
Bien à vous,
 

Pièces jointes

bonjour ZAJNI,

un essai..

Sub CopieLigne()
Dim x As Integer
Dim SauvegardeRacine(1 To 3) As Range
Dim TabBase As ListObject
Dim TabDest As ListObject

x = 1 'ligne a copier

Set TabBase = Worksheets("Tableau base").ListObjects("Tableau_Base") 'tableau (Envoyeur)
Set TabDest = Worksheets("Tableau destination").ListObjects("Tableau_destination") 'tableau (receveur)

Set SauvegardeRacine(1) = TabBase.ListRows(x).Range 'On récupère la ligne souhaitée

TabDest.ListRows.Add 'ajoute une nouvelle ligne
TabDest.ListRows(TabDest.ListRows.Count).Range.Formula = SauvegardeRacine(1).Formula
End Sub
 

Pièces jointes

Merci beaucoup pour ton aide

et si mon j'ai plusieurs onglets avec des tableaux similaires, sauf que le nom du tableau change en fonction du nom de la feuille: par exemple
Feuille : Classe_2 contient le tableau : Tableau_Classe_2
comment puis-je accéder à ces tableaux dans une boucle sur VBA en utilisant l'écriture : [Tableau_Classe_2[Nom]] ou autre expression ?

Merci beaucoup
 
Bonsoir ZAJNI, sixair,

Voyez le fichier joint et ces macros dans ThisWorkbook :
VB:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Sh.ListObjects.Count = 0 Then Exit Sub
If Intersect(Target, Sh.ListObjects(1).DataBodyRange) Is Nothing Then Exit Sub
Cancel = True
Intersect(Target.EntireRow, Sh.ListObjects(1).DataBodyRange).Copy
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Sh.ListObjects.Count * Application.CutCopyMode = 0 Then Exit Sub
If Intersect(ActiveCell, Sh.ListObjects(1).Range.Offset(1)) Is Nothing Then Exit Sub
Cancel = True
Intersect(ActiveCell.EntireRow, Sh.ListObjects(1).Range.Offset(1)).Cells(1).PasteSpecial xlPasteValues
End Sub
S'il n'y a qu'un tableau (ListObject) dans chaque feuille il est inutile d'utiliser son nom.

A+
 

Pièces jointes

- 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
3
Affichages
130
Réponses
12
Affichages
248
Réponses
6
Affichages
183
Réponses
7
Affichages
230
  • Question Question
XL 2013 user form
Réponses
2
Affichages
240
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…