VBA Suppression noms
Bonjour,
Ton fichier en retour enregistré en xlsm (fichier Excel avec macros).
Exécuter la procédure Delete_names.
Testé sous Mac.
Cdlt.
Delete names.xlsm
Public Sub Delete_names() Dim nm As Name, i As Long Application.DisplayAlerts = False Worksheets.Add On Error Resume Next For Each nm In ActiveWorkbook.Names i = i + 1 With ActiveSheet .Cells(i, 1).Value = nm.Name .Cells(i, 2).Value = nm.RefersTo .Cells(i, 3).Value = nm.Visible nm.Delete End With Next MsgBox "Nombre de nom(s) : " & i, 64, "Information" End Sub
Merci beaucoup ! Ce code fonctionne !
Merci à tout le monde pour l'aide !
[quote="à 09:35, saaku"]ÇA fonctionne[/quote]
[quote="à 09:39, saaku"]Merci beaucoup ! Ce code fonctionne ![/quote]
tant mieux si ça marche !!!
eh oui : ça ajoute une nouvelle feuille, ça y écrit la liste des noms du classeur et ça les supprime, mais après la sauvegarde du classeur, sa fermeture, et sa ré-ouverture, ça recrée de nouveau le nom défini _xlfn.IFERROR !!!
normal, puisqu'il y a toujours les fonctions SIERREUR() de la feuille cachée "Import LN Resp" ; donc en fait, même si saaku pense que c'est réglé, ça veut pas dire qu'elle ne voit plus _xlfn.IFERROR qu'il n'y est plus : il est toujours là, mais caché car NON-visible !
peut-être que c'est seulement sur mon PC et pas sur son Macintosh que _xlfn.IFERROR est recréé ?
@saaku
je crois que tu n'as pas lu mon post précédent, car sinon, tu aurais vu que _xlfn.IFERROR est toujours là !
d'ailleurs, le fichier de ce post n'a pas été téléchargé :
lien sur ce post (clique sur le lien vert) : https://forum.excel-pratique.com/viewtopic.php?p=675792#p675792
ce post aussi est passé inaperçu : https://forum.excel-pratique.com/viewtopic.php?p=675820#p675820
dhany
Re,
@ dhany, c'est quoi la question ?
A tout hasard as-tu conservé l'original du fichier de saaku ? Il l'a retiré…
Cdlt.
@Jean-Eric
c'est le fichier .xlsx de saaku que j'ai converti en .xlsm ; il y avait 2 feuilles cachées "Import LN Resp" et "GL" que j'ai rendu visibles ; dans ThisWorkbook, la sub Workbook_Open() rend visibles tous les noms définis existants mais ne les supprime pas ! y'a plus qu'un seul nom défini : c'est le _xlfn.IFERROR qui revient automatiquement à chaque ouverture du classeur, même si tu le supprimes manuellement (ou par VBA) ; normal : le seul moyen d'éviter ça, c'est de supprimer de la 1ère feuille "Import LN Resp" toutes les formules qui utilisent la fonction SIERREUR() ; voici toutes les cellules concernées : B4 ; C12:C50 ; J12:U50
ma question précédente est devenue sans objet car j'viens d'voir que même dans un tout nouveau classeur, la fonction SIERREUR() génère le nom défini _xlfn.IFERROR ; simplement, j'm'en étais pas rendu compte car il était caché ; je pense que ça l'fait aussi sur ton Excel 2016.
conclusion : la présence de _xlfn.IFERROR est normale ; c'est pas à considérer comme une erreur ➯ problème réglé !
dhany