Modifier des zones nommées auto vba excel

Résolu
pygos Messages postés 202 Statut Membre -  
pygos Messages postés 202 Statut Membre -
Bonjour,

Je suis confronté à deux problèmes :

1- suite à l'exécution d'une macro qui définit un nom pour une zone le résultat resort en format texte comme suit :

Range("F11:F53").Select
Names.Add Name:="S" & Range("e11") & ActiveSheet.Name & Range("f10") & Range("A7"), RefersTo:="'" & ActiveSheet.Name & "'!" & Selection.Address

Résultat :

SAU7LUMAS1 (nom de la zone)

="'7'!$F$11:$F$53" (macro génère des doubles côtes format texte)

Je suis obligé de revenir dans insertion/nom/définir/SAU7LUMAS1

et de supprimer les "

C'est long et fastidieux !

2- j'ai pour 12 onglets ( 480 zones définis)

Lorsque que je copie le fichier (déplacer-copier) je souhaiterais trouver une macro qui change le nom des zones définies en : (et ceci pour les 480 zones)

SAU7LUMAS1 -------> DEVIENT SME7LUMAS1 (la zone reste identique)

sauf si je trouve une solution pour le 1er problème cité.

Merci d'avance pour la résolution de mes deux questions.

Cordialement,

pygos

4 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    C'est normal puisque .address te retourne une chaine.
    met :
    ,RefersTo:=Selection
    sans la référence au classeur car elle est incluse dedans.

    eric
    0
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Essaies ceci :
    Range("F11:F53").Select
    Names.Add Name:="S" & Range("e11") & ActiveSheet.Name & Range("f10") & Range("A7"), RefersTo:= ActiveSheet.Name & "'!" & Selection.Address
    


    Pour ta deuxième question il faut faire une boucle sur la collection Names.
    0
  3. pygos Messages postés 202 Statut Membre
     
    merci à tous les deux mais :

    Pour la solution d'ériiic traduit comme suit :

    Range("F11:F53").Select
    Names.Add Name:="S" & Range("e11") & ActiveSheet.Name & Range("f10") & Range("A7"), RefersTo:=Selection.Range

    j'obtiens un message d'erreur. erreur d'exécution '450'

    Et pour la solution de gbinforme le résultat ne change pas :

    ="7'!$F$11:$F$53"

    Merci à tous les deux pour votre recherche.......

    Cordialement,

    pygos
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      J'ai édité, mettre RefersTo:=Selection (sans le .range)
      0
  4. pygos Messages postés 202 Statut Membre
     
    Eriiic,

    Un grand merci , c'est la solution à mon problème !

    C'est rapide ! efficace ! Bonne continuation à tous les deux !

    pygos
    0