XL 2016 Définir plage cellule sans référence à feuille

chifounou

XLDnaute Occasionnel
Bonjour,

IMG_3109.JPG


J'essaye de définir la plage suivante

=OFFSET($BA$89,,,41,COUNT($BB$89:$BG$89)+1)

Mais lorsque je valide, cela la convertit automatiquement en l'assignant à la feuille active

=OFFSET('Jan 2017'!$BA$89,,,41,COUNT('Jan 2017'!$BB$89:$BG$89)+1)

Hors mon but est d'avoir cette plage indépendante de toute assignation de feuille afin justement de pouvoir utiliser la plage définie dans n'importe quelle feuille que je souhaite.

Est-ce possible ?
 

cathodique

XLDnaute Barbatruc
Oui, c'est possible. tu supprimes 'Jan 2017!'. Mais ensuite, j'ai bien peur qu'Excel ne s'emmêle "les pattes".

Le nom ainsi définit sera valide pour la feuille active seulement.

nb: pour pouvoir déplacer le curseur dans la petite fenêtre, place s'y le curseur, ensuite appuie sur la touche F2. par la suite tu pourras déplacer le curseur avec les touches gauche/droite.

Bonne continuation!
 

chifounou

XLDnaute Occasionnel
Bonjour,

Ben quand je supprime 'Jan 2017' il me le remet automatiquement sans que j'ai le choix. Je trouve ça vraiment dommage car j'aurais voulu me servir de cette plage variable toujours pour le même graphique (copié-collé) mais dans plein de feuilles différentes.

Sinon, merci pour le tuyau ;)
 

Lone-wolf

XLDnaute Barbatruc
Re

je pensais à un truc du genre

VB:
Option Explicit

Public ws As Worksheet, plage As Range, cel As Range, x As Integer

Sub test()

For Each ws In ThisWorkbook.Sheets
Set plage = ws.[C2:G12]
For Each cel In plage
x = x + 10
cel.Value = x
Next cel
Next
End Sub
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous,

Voir un essai dans le fichier joint.

Si on n'a que peu de feuille, on peut définir le nom de feuille pour chaque feuille à la main (choisir la zone correspondant à la feuille courante dans la liste zone).

Sinon, pour automatiser, on peut utiliser la macro suivante.

La première définition du nom DYN a été faite sur Feuil2. Ensuite une macro a été enregistrée pour (re)définir ce nom. La macro donne la syntaxe exacte de la définition du nom DYN.

Le code est entièrement contenu dans le module de ThisWorkbook (Private Sub Workbook_Open )

VB:
Private Sub Workbook_Open()
Dim w As Worksheet, old
  Application.ScreenUpdating = False
  Set old = ActiveSheet
  For Each w In ThisWorkbook.Worksheets
    On Error Resume Next
    w.Activate
    w.Names("DYN").Delete
    w.Names.Add Name:="DYN", RefersToR1C1:= _
        Replace("=OFFSET(Feuil2!R1C5,0,0,COUNTA(Feuil2!C5),1)", "Feuil2", w.Name)
  Next w
End Sub


Edit : version v3
 

Pièces jointes

  • chifounou- Nom plage feuille- v3.xlsm
    30 KB · Affichages: 25
Dernière édition:

eriiic

XLDnaute Barbatruc
Bonjour,

Je dirais que tout dépend de l'usage que tu veux en faire.
Si c'est pour faire un graphique d'une feuille précise tu devrais pouvoir le faire avec Indirect(), apparemment c'est ton cas.
Si c'est pour utiliser dans une formule sur plusieurs feuilles, il faudrait le définir au niveau feuille sur chaque feuille où il est susceptible d'être utilisé (et non au niveau classeur). Le nom utilisé pour les calculs sera celui défini sur cette feuille.
eric
 

Discussions similaires

Statistiques des forums

Discussions
312 327
Messages
2 087 314
Membres
103 515
dernier inscrit
Cherbil12345