Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1015 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA. Nom de Tableau dynamique.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA. Nom de Tableau dynamique.

n°2237161
Boosterx
Posté le 06-09-2014 à 14:25:12  profilanswer
 

Bonjour,
Sur feuil1, j'ai une macro qui ajoute des données dans un tableau qu'Excel a nommé(Tableau2)
Je duplique la feuil1 -> Feuil1 (2)  
La macro ne fonctionne plus sur feuil1 (2) car Excel à changer le nom du Tableau .
 
J'ai un msgBox qui affiche le nom du Tableau dupliqué.
C'est ce Nom dynamique que j'aimerais insérer dans le code

Code :
  1. Sub Tblo()
  2. Dim LR As ListRow
  3. Dim Lo As ListObject  'Affiche le Nom du Tableau
  4. Set Ws = Worksheets(Sheets.Count)
  5. For Each Lo In Ws.ListObjects
  6. MsgBox Lo.Name & ""
  7. Next
  8. Range("Tableau2" ).Select  'pas besoin de préciser le nom de la feuille
  9. Set LR = Selection.ListObject.ListRows.Add(AlwaysInsert:=True)
  10. LR.Range.Cells(1, 2) = 10
  11. LR.Range.Cells(1, 3) = 15
  12. End Sub


En gros.
J'aimerais qu'au lieu d'avoir un affichage par MsgBox du nom du Tableau dupliqué  
que ce nom soit remplacé automatiquement dans le code.
Exemple
Si MsgBox trouve "Tableau14"
Range("Tableau2" ).Select  devient  
Range("Tableau14" ).Select  
Merci de votre aide.
 
 

mood
Publicité
Posté le 06-09-2014 à 14:25:12  profilanswer
 

n°2237163
Marc L
Posté le 06-09-2014 à 17:42:57  profilanswer
 

   
           Bonjour, bonjour !
 
           S'affranchir du ralentisseur Select est preuve d'un code optimisé, inutile de sélectionner un objet pour y accéder !
           Respecter la règle TBTO (hiérarchie objet entre autres) est source d'efficacité …
           Donc ne pas mélanger des collections même si elles peuvent avoir des éléments en commun !
           Appeler un élément d'une collection directement par son numéro d'index :
 

Code :
  1.     With Worksheets(Worksheets.Count).ListObjects(1).ListRows.Add
  2.         .Range(2).Value = 10
  3.         .Range(3).Value = 15
  4.     End With


 

n°2237167
Boosterx
Posté le 06-09-2014 à 20:59:59  profilanswer
 

Merci Marc L
Ca marche!!!!   :D   :sol:  
Je vais suivre tes recommandations.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA. Nom de Tableau dynamique.

 

Sujets relatifs
[VBA] Collections et Objets - Quand et comment vider la mémoire[VBA] - fonction FIND associée à la recherche d'une date
[RESOLU ] [VBA] ERREUR 91 - FINDNEXT[RESOLU] [VBA] - EXCEL 2010 - Optimisation de code
HELP pour comparaison de cellules VBAVBA - creer tableau dans word
Ajouter un reset dans un compteur dynamique (fonctionnel) ?L'indice n'appartient pas à la sélection, VBA Excel
Demande de réunion VBA Excel/Outlook 
Plus de sujets relatifs à : VBA. Nom de Tableau dynamique.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR