générer la défnition des noms :s

fifi

XLDnaute Occasionnel
bonjour,pour mettre à jours différents classeurs éparpillés un peu partout...
je voudrais pouvoir modifier les plages nommées d'un classeur via une macro

Pour cela j'ai une liste (noms en colonne A et formules en colonne 2), mais je n'arrive pas à réécrire les plages nommées via une macro .

j'essaye ce code mais ..ca ne marche pas

Code:
Sub NommerChampsDynamique()
  For Each c In Range("A1:A30")
    If Not IsEmpty(c.Offset(1, 0)) Then
      ActiveWorkbook.Names.Add Name:=c, RefersToR1C1Local:=c.Offset(0, 1)
     End If
   Next
End Sub

Mes plages nommées ressemblent à ca :
Nom de la plage : ASY_ligne_ampli
formule : =DECALER($A$1;EQUIV($O$23;$AI:$AI;0)-1;EQUIV("TMY0";$1:$1;0)+4;1;Info!$E$9)

Si quelqu'un peut m'aider svp :D, merci
 

ledzepfred

XLDnaute Impliqué
Re : générer la défnition des noms :s

Bonjour Fifi,

l'enregistreur de macros peut venir à ta rescousse :

Avec la formule que tu as mis dans ton post, voici ce que l'enregistreur me donne :
Code:
ActiveWorkbook.Names.Add Name:="ASY_ligne_ampli", RefersToR1C1:= "=OFFSET(R1C1,MATCH(R23C15,C35,0)-1,MATCH(""TMY0"",R1,0)+4,1,Info!R9C5)"

a+
 

fifi

XLDnaute Occasionnel
Re : générer la défnition des noms :s

le problème c'est que j'en ai plus de 300 des plages définies. toute sles définir à la main va etre très tès fastidieux surtout que les formules vont être remise à jours en fonctions des mises à jour.
 

ledzepfred

XLDnaute Impliqué
Re : générer la défnition des noms :s

bonsoir fifi,

désolé de te répondre si tard...
L'idéal serait de poster ton fichier pour pouvoir comparer les définitions des plages nommées, on pourra peut-être te proposer un code vba pour que ces plages soient définies automatiquement au démarrage du fichier.

A+
 

fifi

XLDnaute Occasionnel
Re : générer la défnition des noms :s

bonsoir
, ci dessous l'adresse d'un classeur vierge avec juste la liste des noms définis :D y en a pas mal , tous différents presque et cela change souvent.

le top serait d'avoir cette liste sur un fichier txt et de pouvoir "charger" la liste au démarrage du classeur.

si tu peux m'orienter sur une solution pour réécrire cela :D

merci
 
Dernière édition:

ledzepfred

XLDnaute Impliqué
Re : générer la défnition des noms :s

bonsoir fifi,

ben dis donc quelle usine à gaz! Pardonnes-moi mais trop de plages nommées tue les plages nommées.

Désolé mais je ne vois pas comment résoudre ton pb, j'ai essayé quelques pistes mais sans succès. Peut-être qu'un autre forumeur pourra t'aider.

A+
 

eriiic

XLDnaute Barbatruc
Re : générer la défnition des noms :s

Bonjour tout le monde,

C'est vrai que excel ne réagit pas comme on l'attend sur Names.Add
Après de multiples essais je te livre où j'en suis en attendant mieux.

Je n'ai pas réussi à mettre la formule dans un nom sans qu'elle soit évaluée auparavant. Et je n'ai réussi à l'évaluer que hors macro :-s

Pour évaluer les formules:
- sélectionner B:B
- remplacer = par =
(fais par petites plages car sur certaines formules excel veut sauvegarder les infos (?). Peut-être que ça ne le fera pas sur le classeur complet)

Pour que les formules restent lisibles tu peux te définir un nom 'formule' après avoir sélectionné C1:
formule =LIRE.CELLULE(6; Feuil1!B1)
et remplir C avec =formule

et la macro:
Code:
Sub test()
    For Each c In Range("A1", [A65536].End(xlUp))
        ActiveWorkbook.Names.Add Name:=c.Value, RefersTo:=c.Offset(0, 1).Formula
    Next c
End Sub
eric

edit: le fichier oublié
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 839
Messages
2 092 678
Membres
105 508
dernier inscrit
Albator