Vérifier si un range se trouve dans un autre range lors d'une boucle

  • Initiateur de la discussion Initiateur de la discussion bihine
  • 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 !

B

bihine

Guest
Bonjour, 🙂

Après pas mal de recherche sur mon problème (merci pour toutes les solutions que j'ai pu trouver sur le forum pour d'autres problèmes), je n'arrive pas à trouver quelque chose qui répond à mes besoins.

Voici mon problème via un extrait de mon code très très très allégé:
Code:
Sub Afficher ()
Dim crochet as Range

For each crochet in range ("E3:E326")
    If crochet.value = True Then
        If ... 'crochet compris entre E59 et E63
              Fait ça...
        ElseIf ... 'crochet compris entre E210 et E172             
              Fait ça...
        Else
              Fait ça...
        EndIf
     Else
     ...
     EndIf
Next crochet

Mon problème réside dans le fait que je ne peux pas utiliser les opérateurs (<= et >=) pour déterminer si "crochet" se trouve dans un certain range car ils analysent la valeur des range et non la position (localisation) comme j'en aurais besoin.

J'ai essayé pas mal d'alternatives avec le débogueur Pas à Pas détaillé mais rien ne marche comme je le veux.

La question peut paraître simplette mais je n'arrive pas à trouver de solution...

Désolée si je n'ai pas respecter certaines règles du forum, je ne suis pas très familière avec l'aspect "écriture"...Je suis plus lectrice habituellement! 😉

Merci d'avance à ceux qui me répondront! 😀
 
Re : Vérifier si un range se trouve dans un autre range lors d'une boucle

Bonjour,

regarde du coté de la méthode "intersect", exemple ci-dessous :
Code:
If Intersect(ActiveCell, Range("A1:A10")) Is Nothing Then
    MsgBox ActiveCell.Address & " pas dans la plage A1:A10"
Else
    MsgBox ActiveCell.Address & " dans la plage A1:A10"
End If

bonne soirée
@+
 
Re : Vérifier si un range se trouve dans un autre range lors d'une boucle

Bonjour Pierrot,

Merci beaucoup pour la réponse plus que rapide!
J'avais essayé la méthode "intersect" mais j'ai l'impression que je l'avais mal utilisée!!
Je vais manger et je teste ça par la suite! 😉

Merci encore!
 
Re : Vérifier si un range se trouve dans un autre range lors d'une boucle

Re,

cela devrait donner ceci :
Code:
Dim crochet As Range
For Each crochet In Range("E3:E326")
    If crochet.Value = True Then
        If Not Intersect(crochet, Range("E59:E63")) Is Nothing Then
            'ton code
            ElseIf Not Intersect(crochet, Range("E172:E210")) Is Nothing Then
            'tes instructions
        Else
            'autres instructions
        End If
     Else
     
     End If
Next crochet

bon appétit...
@+
 
Re : Vérifier si un range se trouve dans un autre range lors d'une boucle

Finalement tout allait bien jusqu'à ce que la boucle passe au second "crochet"...

À la première itération tout va bien et la macro fait ce que je lui demande. Par contre, rendu à seconde itération, j'ai un code 1004 (la méthode 'intersect' de l'objet '_Global' à échoué) sur la première ligne utilisant le "intersect" tel que montré plus haut...

Je ne comprends pas pourquoi ça a fonctionné un fois mais pas après??
 
Re : Vérifier si un range se trouve dans un autre range lors d'une boucle

Re,

comprends pas trop.... attention ce code va s'appliquer sur la feuille active ou sur la feuille dans laquelle il se trouve... n'as tu pas de cellules fusionnées ??? quand tu dis, 2ème itération, c'est la cellule E4 ? que contient-elle ? sans plus de détails difficile de t'en dire plus...
 
Re : Vérifier si un range se trouve dans un autre range lors d'une boucle

Re,

J'ai un peu peur de joindre mon fichier car:
a. il est gros
b. je ne code sûrement pas selon les "normes" (j'apprends sur le tas) alors j'aurais un peu honte lol

Mais j'ai l'impression que tu m'as donné la solution dans ta réponse en disant "va s'appliquer sur la feuille active". La sélection de ma feuille se faisait en dehors de ma boucle et cela ne posait pas de problème avant que je modifie mon fichier!
En mettant la sélection de la feuille dans la boucle, tout fonctionne!

halala ces débutants... 😉

Merci encore Pierrot!
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

A
Réponses
12
Affichages
2 K
AnjyD
A
A
Réponses
18
Affichages
2 K
association
A
Q
Réponses
0
Affichages
777
quicktibong
Q
M
Réponses
7
Affichages
7 K
M
E
Réponses
4
Affichages
8 K
eperluette
E
Retour