Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chifounou

XLDnaute Occasionnel
Bonjour,



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 ?
 
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!
 
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 😉
 
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:
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

Dernière édition:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…