Probleme d'argument dans le Range [Résolu]

mikmak78 59 Messages postés vendredi 5 octobre 2012Date d'inscription 6 mars 2017 Dernière intervention - 21 mai 2014 à 08:11 - Dernière réponse : mikmak78 59 Messages postés vendredi 5 octobre 2012Date d'inscription 6 mars 2017 Dernière intervention
- 21 mai 2014 à 13:08
Bonjour,
je souhaite selectionner plusieurs cellules n'importe où dans plusieurs plages non-adjacentes, mais voila j'ai pas mal de données... et apres avoir eliminé certaines plages dans mon range je remarque que ma macro fonctionne. Je pense donc qu'il y a une limite au niveau du range.
Voici ma macro (double click apparition d un calendar)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("D4:D26,F4:F26,H4:H26,J4:J26,L4:L26,N4:N26,P4:P26,R4:R26,T4:T26,V4:V26,X4:X26,Z4:Z26,AB4:AB26,AD4:AD26,AF4:AF26,AH4:AH26,AJ4:AJ26,AL4:AL26,AN4:AN26,AP4:AP26,AR4:AR26,AT4:AT26,AV4:AV26,AX4:AX26,AZ4:AZ26,BB4:BB26,BD4:BD26,BF4:BF26,BH4:BH26,BJ4:BJ26,BL4:BL26")) Is Nothing Then
calendrier.Show
End If
End Sub
Je remercie d'avance mes "helper"
Afficher la suite 

Votre réponse

3 réponses

ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 21 mai 2014 à 10:52
0
Merci
Bonjour,
Je pense donc qu'il y a une limite au niveau du range.

Plutôt que de "penser", j'ouvrirais à ta place mon aide VBA sur le mot Intersect et y verrais que cette méthode accepte un maximum de 30 arguments (range) .
Puis je "décomposerais"
If not intersect (max 30) ans not intersect (max 30) ... Then
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 21 mai 2014 à 11:23
0
Merci
Ou encore :
Utilise la méthode Union.
Elle-même admet toutefois un mlaximum de 30 arguments range.
Décompose-la donc, ainsi (exemple) :
 Dim toto As Range
Set toto = Union(Range("D4:D26"), Range("F4:F26"), Range("H4:H26"), Range("J4:J26"), Range("L4:L26"), Range("N4:N26"), Range("P4:P26"), Range("R4:R26"))

Set toto = Union(toto, Range("T4:T26"), Range("V4:V26"), Range("X4:X26"), Range("Z4:Z26"), Range("AB4:AB26"), Range("AD4:AD26"), Range("AF4:AF26"), Range("AH4:AH26"), Range("AJ4:AJ26"), Range("AL4:AL26"), Range("AN4:AN26"), Range("AP4:AP26"), Range("AR4:AR26"), Range("AT4:AT26"), Range("AV4:AV26"), Range("AX4:AX26"), Range("AZ4:AZ26"), Range("BB4:BB26"), Range("BD4:BD26"), Range("BF4:BF26"), Range("BH4:BH26"), Range("BJ4:BJ26"), Range("BL4:BL26"), Range("CL4:CL26"))
If Not Intersect(Target, toto) Is Nothing Then ....
mikmak78 59 Messages postés vendredi 5 octobre 2012Date d'inscription 6 mars 2017 Dernière intervention - 21 mai 2014 à 13:08
Merci Uctoufou probleme resolu

Ce que je retiens:
Avant de poser une question verifier dans l'aide -_-!
utliser la fonction Union est bigrement utile
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.