Utiliser un nom de plage Excel en VBA

Bonjour le forum,

A court de solution et à bout de nerfs, j'ai besoin de votre aide pour corriger mon erreur sur un bout de code pourtant rudimentaire.

Voici le décor :

Sur ma Feuil1 j'ai nommé "PLANNING" la plage F3 à W10.

Dans le VBE, j'ai écrit cette procédure :

Sub Ouverture()

Résultats :

Sur les premières lignes, tout va bien : l'adresse de la première cellule et le nombre de cellules sont corrects.

Mais dès que je rajoute la boucle for each je n'obtiens plus ni l'adresse de la première cellule, ni le nombre de cellules. Et elle .me retourne invariablement les cellules W9 à W20.

J'ai du oublier un truc essentiel, mais lequel ?

Merci pour votre attention et, éventuellement, pour vos réponses. Et bonne journée à tout le monde.

N.P.

Bonjour NaPhi, bonjour le forum,

Essaie comme ça :

Sub Ouverture()
Dim Plan As Range
Dim Rdv As Range

Set Plan = Sheets("Feuil1").Range("PLANNING")
Debug.Print Plan.Cells(1, 1).Address
Debug.Print Plan.Cells.Count
For Each Rdv In Plan
    Debug.Print Rdv.Address & " " & Rdv.Value
Next
End Sub

Bonjour,

Salut ThauThème !

Essaie :

For Each Rdv In Plan.Cells

Cordialement.

Merci ThauThème

Malheureusement, cette forme-là me donne une erreur 9 - l'indice n'appartient pas à la sélection


MFerrand a écrit :

Bonjour,

Salut ThauThème !

Essaie :

For Each Rdv In Plan.Cells

Cordialement.

Bonjour MFerrand

Même problème en rajoutant .cells : On part de W9, F10, G10... jusqu'à W20

pfffff si déjà je cale ici, je ne suis pas près d'avoir fini !

Re,

Vérification faite : pas d'erreur sur ta proc. initiale !

(sauf que j'ai dû remplacer les Debug.Print qui n'affichaient rien (?) par des MsgBox pour voir.)

Cordialement.

Mince alors !

Ca fonctionne avec MsgBox !

Va comprendre !

Merci beaucoup en tout cas.

Trop bien ce forum !

Rechercher des sujets similaires à "utiliser nom plage vba"