Récupérer le Range d'une plage nommée dynamique

  • Initiateur de la discussion Initiateur de la discussion d3d9x
  • Date de début Date de début

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 !

d3d9x

XLDnaute Nouveau
Bonjour à tous,

Je cherche à récupérer les valeurs et dimensions de plages nommées dynamiques, dont la formule est du type:
maPlageNommee = DECALER(A1;0;0;NBVAR(A1:A999);2)

Cette partie fonctionne parfaitement, ma plage nommée fonctionne très bien. Le problème arrive lorsque je veux récupérer cette plage.

Dans la macro que je réalise, je balaye toutes les plages nommées de mon document, et je tri celles qui font 2 colonnes de largeur.

Problème, toutes les plages nommées avec la formule 'DECALER' me génèrent une erreur.

For each plage_nommee in ActiveWorkbook
If Ubound(Range(plage_nommee.Name),2) = 2 then
' Je conserve
Endif
Next plage_nommee

Résultat : La méthode Range de l'objet '_Global' a échouée

Comment puis-je palier à ce problème? En effet je ne peux pas récupérer les dimensions de la plage, ni ses valeurs!

NB : L'objectif final est de réaliser une macro qui crée une mise en forme conditionnelle en fonction du contenu de ma plage nommée.

Merci d'avance !
 
Re : Récupérer le Range d'une plage nommée dynamique

Bonjour,

peut-être en passant par une variable intermédiaire:

Code:
 For Each plage_nommee In ActiveWorkbook.Names
    MonTab = Range(plage_nommee)
    If UBound(MonTab, 2) = 2 Then
        ' Je conserve
    End If
 Next


A+
 
Re : Récupérer le Range d'une plage nommée dynamique

Re,


le code du post#2 tel qu'il est, fonctionne chez mois. Joignez un extrait représentatif de votre classeur sans données confidentielles. Ce sera plus simple de tester sur vos propres plages nommées.

A+

Edit: Bonjour Chris, effectivement beaucoup plus simple !
 
Dernière édition:
Re : Récupérer le Range d'une plage nommée dynamique

Bonsoir,

Je pense qu'il faut récupérer la plage nommée
la stocké dans une variable tableau
et travailler comme un tableau


code ci-dessous : exemple

Sub test()

Dim tab1 As Variant
tab1 = Range("toto") ' ici toto est la plage nommée

For i = LBound(tab1, 1) To UBound(tab1, 1) ' Lignes
For j = LBound(tab1, 2) To UBound(tab1, 2) ' Colonnes
If tab1(i, j) = 3 Then
MsgBox "Test Ok est Resultat = " & tab1(i, j)
End If
Next j
Next i

End Sub

Laurent
 
Dernière édition:
Re : Récupérer le Range d'une plage nommée dynamique

Toutes mes excuses, je viens de comprendre mon erreur. Le code ne fonctionnait pas car certaines plages nommées faisaient référence à d'autres documents, non ouverts, et donc impossibles à estimer ...
 
- 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

Discussions similaires

Réponses
10
Affichages
2 K
Retour