Appeler une plage nommée dans une macro VBA

Bonsoir,

Je m'échine depuis un moment à créer une macro qui ferais référence à une plage nommée d'un autre feuillet. Je m'explique:

J'ai un classeur, il y'a une feuille "Accueil" contenant un bouton permettant d'afficher une plage nommée "NIVEAU1_1" sur une autre feuille "Niv1" , sous conditions. Et là je sèche. Surtout que si je remplace le nom de la plage par la référence de la même plage, ça marche, sauf que bien sur ça ne me va pas du tout!

====

Voici mon code (qui marche pas):

Sub Start_app()

If Sheets("Niv1").Range("Niveau1_1").Offset(1, 9).Text = "(CTRL+;)" Then

Sheets("Niv1").Activate

Range("A1").Offset(1, 9).Activate

End If

End Sub

==

Sur un autre fichier Excel, la même chose ou presque fonctionnait très bien, sauf que j'appelais la plage recherchée avec sa référence et non son nom:

Voici l'ancien code (qui marche):

Private Sub Start_Click()

If Sheets("P1").Range("C2") = "(CTRL + ; )" Then

Sheets("P1").Activate

Sheets("P1").Range("C2").Activate

End if

End sub

===

J'ai beau chercher, je ne trouve nul part la solution

Merci d'avance en tout cas!

Bonne soirée

Bonsoir et bienvenu(e)

Ta 1ère macro fonctionne (du moins pas d'erreur)

Ce que j'ai fait

Nommer une feuille "Niv1"

Dans cette feuille nommer une cellule NIVEAU1_1

Une ligne en dessous et 9 colonnes plus loin j'ai écris (CTRL+;)

A partir d'une autre feuille j'ai exécuté la 1ère macro et je me suis retrouvé dans la page "Niv1" dans la cellule J2, conformément à la macro

Alors si ce n'est pas ce que veux

Bonjour Banzai64,

Grace a toi, j'ai vu ce qui n'allait pas, merci, merci !! Dans ton code, tu nommes une cellule ("NIVEAU1_1"), mais moi, c'est une plage. Il fallait donc que je précise depuis quelle cellule au sein de la plage ("NIVEAU1_1") le code "Offset(1,9)" devait se baser. En fait, il me décalé la plage de 1 ligne, 9 colonnes.

Merci du coup de main, sans ta réponse, j'aurais pas vu mon erreur.

Très bonne journée !

=====

Nouveau code qui marche:

Sub Start_app()

If Sheets("Niv1").Range("NIVEAU1_1").Cells(1).Offset(1, 9).Text = "(CTRL+;)" Then

Sheets("Niv1").Activate

Range("NIVEAU1_1").Cells(1).Offset(1, 9).Activate

End If

End Sub

Rechercher des sujets similaires à "appeler plage nommee macro vba"