Nommer une plage par VBA

Résolu
hbe -  
 hbe -
Bonjour,

Je souhaiterais nommer une plage de cellules qui varient en fonction des données extraites. Pour sélectionner les cellules documentées j'écris Range ("A1").CurrentRegion.Select, mais il m'est difficile de nommer cette plage car la macro exige les références des lignes et colonnes, ce qui ne me convient pas car elles sont variables.
Pease help.

3 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    essaies
    Dim fin As String
    fin = Cells.Find("*", , , , , xlPrevious).Address
    Sheets(1).Names.Add Name:="lazone", RefersTo:=" =$A$1:" & fin
    0
  2. hbe
     
    Bonjour, j'ai essayé votre proposition, mais sans succès. Aucun message d'erreur, la plage n'est cependant pas nommé.
    Merci de m'aider svp.
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Désolé, mais comme d'habitude,j'avais testé avant d'envoyer une proposition et la zone était bien nommée
      0
    2. hbe
       
      Merci pour votre aide, je pense que c'est moi qui n'ai rien compris, pourriez-vous m'aider comment remplir la syntaxe fin = Cells.Find("*", , , , , xlPrevious).Address, la plage de cellules qui m'intéresse étant déjà sélectionnée préalablement par current.region.
      Cordialement
      0
    3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      il n(y a pas besoin de sélectionner au préalable par current;region d'autant plus qu'une règle de base de VBA déconseille formellement d'utiliser "select"
      d'autre part "current.region " est assez piègée(colonne vide par ex) s'il y a des trous dans la zone à baptiser
      "fin" donne l'adresse de la dernière cellule de la feuille ayant une donnée

      si tu peux ou veux utiliser "current.region"
      Sub xxx() 
      Dim plage As String 
      plage = Range("A1").CurrentRegion.Address 
      Sheets(1).Names.Add Name:="coucou", RefersTo:=" =plage" 
      End Sub



      je viens de re-tester les 2 manières et c'est OK partout
      0
  3. hbe
     
    bonjour Michel,
    Merci c'est génial, tout est Ok.
    A+
    0