Bonjour à tous
j'ai besoin de nommer mes tableaux de type List Object de manière connue de façon de pouvoir après écrire par macro VBA des fonctions permettant de récupérer les données d'un tableau pour les remettre dans un autre (via une clef de recherche commune entre les tableau) pour faire des calculs de notes de frais
J'utilise donc la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
  Set Plage2 = Sheets(nom_feuille_out).Cells(2, 1).Resize(nb_ligne, nb_col)
  Sheets(nom_feuille_out).ListObjects.Add(xlSrcRange, Plage2, , xlYes).Name = "SELECTION" & nom_feuille_out
  Set Tbl2 = Sheets(nom_feuille_out).ListObjects("SELECTION" & nom_feuille_out)
Pour cela j'utilise un code du type

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Nom_tableau = Tbl2.Name
calcul_data= _
        "=VLOOKUP([@[Numéro unique]]," & Nom_tableau & "[#All],8,0)*([@[Date fin mission]]-[@[Date début mission]])"
 
        With Range("$H" & (2 + i))
           .Value = calcul_data
           .Style = "Comma"
        End With
Mon problème c'est de récupérer le nom de ce 2nd tableau
j'ai tenté d’imposer un nom à ce tableau (par exemple Tab1), mais si le nom existe déjà sur une autre feuille, lorsque VBA me rend la main ce nom va être modifié en Tab1_ voire en Tab11
Le problème c'est qu'à l'exécution de ma macro, le tableau Tab1 est bien créer un 2nd fois, que le nom est relue dans la suite de la macro comme Tab1
C'est uniquement à la sortie que le nom se transforme
et cette transformation fait que la formule saisie dans le tableau n°2 n'est plus correcte et donne comme résultat N/A

Comment forcer Excel à rafraichir le cas échéant le nom du fichier pour que lorsque je le relise le nom soit réellement le nom qui sera ensuite utilisé par excel et non celui que j'ai essayé de mettre et qui doublonnait ?

L'autre solution serait sinon de nommer mon tableau en y ajoutant systématiquement la date et l'heure en suffixe pour éviter tous les doublons... mais j'aurais préféré éviter d'avoir des noms à rallonge...

Merci