XL 2013 Nom de tableau : existe déjà

  • Initiateur de la discussion Initiateur de la discussion roybaf
  • 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 !

roybaf

XLDnaute Occasionnel
Bonjour à tous,

Dans ma macro j'importe des données externes via requête, je nomme mon tableau en "BD_compta",

Code:
 With Sheets("BD").ListObjects.Add(SourceType:=0, Source:= _
        "ODBC;DSN=dBASE Files;DefaultDir=" & chemin & ";DriverId=533;MaxBufferSize=2048;PageTimeout=5;" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandText = requetea
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = _
        "BD_compta" '"Tableau_Lancer_la_requête_à_partir_de_dBASE_Files"
        .Refresh BackgroundQuery:=False
    End With

Ensuite je transforme en plage et j'ai mes données à traiter.

La première fois que je lance la macro pas de problème, sauf que lorsque je la relance j'ai le message :

"Ce nom existe déjà, utilisez un nom unique"

Lors du commencement de ma macro je test si nom existe, s'il existe alors supprimé.

Code:
If FeuilleExiste(ThisWorkbook, "BD") Then
    Call sup_feuilles
    Call ajouter_feuilles
    ActiveWorkbook.Names("BD_compta").Delete

Je précise que je modifie mon code car je dois adapter à excel 2013, en effet sur excel 2016 tout fonctionne!!

Quand j'ouvre gestionnaire de nom : "BD_compta" n'y est pas... j'en perd mon latin!!

Merci d'avance pour vos retours.
 
bonjour
je pense que tu dois employer la méthode unlist
code qui suit à adapter
Code:
Sub DeList()
Dim wrksht As Worksheet
Dim objListObj As ListObject

Set wrksht = ActiveWorkbook.Worksheets("Sheet1")
Set objListObj = wrksht.ListObjects(1)
objListObj.Unlist
End Sub
 
En fait quand je lance la macro une seconde fois elle s'arrête sur: ListObject.DisplayName = _
"BD_compta", le nom existe déjà alors que je ne l'ai plus dans le gestionnaire des noms.

Je pense que l'objet créer garde en mémoire le nom BD_compta d'ou l'erreur, comment peut on écrire :

BD_compta=nothing
 
Code:
Public Sub Essai()
Dim nom, Lobj As ListObject
'Feuil1.ListObjects(1).Name = "BD_COMPTA"
Set Lobj = ThisWorkbook.Worksheets("Feuil1").ListObjects("BD_COMPTA") '
Set Lobj = Nothing'concerne la variable Lobj
'Feuil1.ListObjects(1).Name = "BD_COMPTA"
'nom = Feuil1.ListObjects(1).Name
'Feuil1.ListObjects("BD_COMPTA").Unlist
End Sub

edit si tu changeais sourcetype:=0 par xlSrcRange en début de code
 
Dernière édition:
Merci pour ton aide Bebere, j'ai essayé sans succès.

J'ai changé dans mon code au moment du bug "BD_compta" par "BD_compta2" le tableau c'est bien importé.

J'ai essayé de la relancer et rebelotte le nom existe déjà ! alors que j'ai vérifié avant lancement je n'avais ni "BD_compta" ni "BD_compta2" !!! Sur excel 2016 je n'ai pas de problème pourtant.

Ou sont stockés les noms de listobject??
 
- 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
33
Affichages
4 K
  • Question Question
Power Query power query
Réponses
22
Affichages
4 K
Retour