RESOLU-Syntaxe pour un range sur plusieurs plages séparées

NeMoS

XLDnaute Junior
Bonjour à tous,

Je crains que mon titre ne soit pas très explicite...

Je vous expose mon problème : je suis en train de mettre en place une macro qui génère automatiquement des graphiques.

Les valeurs sources des graphiques sont dans un tableau existant qui se remplit également par macro.

Suivant les sélections qui sont faites par l'utilisateur, le code va chercher les plages de valeurs correctes dans le tableau source ce qui signifie que les données qui servent à générer le graphique sont toutes variables.

Si j'écris le code "en dur" cela donne:

Code:
dim table as range
table = range ("B8:B16","D8:H16")

Maintenant en considérant tous les paramètres variables j'avais écrit :
Code:
table = range(.cells(i,2),.cells(j,2) & .cells(i,cd), .cells(j,cf))


Et en fait, impossible de trouver la bonne syntaxe...j'ai essayé avec et sans point devant cells,avec plus ou moins de parenthèses, j'ai un peu fouillé sur les forums mais rien de concluant.

Alors je m'en remets à votre expertise !

Merci beaucoup pour votre aide.

NeMoS
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Syntaxe pour un range sur plusieurs plages séparées

Re,

ceci devrait fonctionner, à condition que les différentes variables soient bien initialisées....
Code:
Dim table As Range
Set table = Union(Range(Cells(i, 2), Cells(j, 2)), Range(Cells(i, cd), Cells(j, cf)))
 

NeMoS

XLDnaute Junior
Re : Syntaxe pour un range sur plusieurs plages séparées

Bonjour Pierrot93 et merci pour la réponse rapide,

J'ai donc commencé par rajouter "set" devant table...

VBA n'aime toujours pas ma syntaxe mais je le comprends...je pense que que le "&" n'est pas ce qu'il faut mettre mais je n'arrive pas à trouver comment faire prendre en compte deux (ou plus) plages différentes.

Actuellement, le code bloque au niveau de la seconde virgule (entre cells(i,cd) et cells(j,cf)

Code:
set table = range(.cells(i,2),.cells(j,2) & .cells(i,cd), .cells(j,cf))

Merci encore !

NeMoS
 

VDAVID

XLDnaute Impliqué
Re : Syntaxe pour un range sur plusieurs plages séparées

Bonjour NeMos,

Peut-être comme ceci:

Code:
Set table = Range("B" & i & ":B" & j, Replace(Cells(i, cd).Address, "$", "") & ":" & Replace(Cells(j, cf).Address, "$", ""))
Mais il y avoir plus simple ^^

EDIT: Bonjour Pierrot93
Bonne journée !
 

Discussions similaires

Statistiques des forums

Discussions
312 027
Messages
2 084 762
Membres
102 657
dernier inscrit
Ferdy