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

Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Dernière intervention
6 mars 2017
- - Dernière réponse : mikmak78
Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Dernière intervention
6 mars 2017
- 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

2 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
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
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
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
Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Dernière intervention
6 mars 2017
-
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.