Selection d'un ensemble de cellules

annyeong56 Messages postés 25 Date d'inscription jeudi 24 mars 2011 Statut Membre Dernière intervention 6 avril 2011 - 28 mars 2011 à 10:24
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 - 28 mars 2011 à 13:46
Bonjour,

Je veux sélectionner un ensemble de cellules. je ne trouve pas d'exemple sur le net.

un truc de ce style :

j=3
myrange = Worksheets("Inputs").Range(Cells(j, 14) & Cells(j, 15) & Cells(j, 16))

le code doit permettre de sélectionner le contenu des 3 cellules contigues, (par ex. resp. 2, 2 et 3, et mettre le nombre dans myrange.

ca marche quand je fais la manip avec des range, mais je voudrais le faire avec des "cells" car je mets ca dans une boucle for, avec une itération sur le "j", et avec des "Cells" c'est plus pratique.

Merci !

6 réponses

foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
28 mars 2011 à 11:42
Bonjour,

myrange = Worksheets("Inputs").Range(Cells(j, 14), Cells(j, 16)) 


Il me semble que c'est comme ceci
0
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
28 mars 2011 à 11:45
Ou plutot :
With Worksheets("Inputs")
    myrange = .Range(.Cells(j, 14), .Cells(j, 16)) 
End With


Pour éviter les incohérences d'onglets
0
annyeong56 Messages postés 25 Date d'inscription jeudi 24 mars 2011 Statut Membre Dernière intervention 6 avril 2011
28 mars 2011 à 12:26
ok, merci

et si les cellules ne sont pas a coté ?
par exemple : cells(j,14) et cells(j,17) et cells(j,19)
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
28 mars 2011 à 13:38
Salut,

pour pouvoir utiliser des cellules non contiguës 2 methodes :

1) la methode union:

Union(Cells(j, 14), Cells(j, 17), Cells(j, 19))


2) la methode via la propriété address:

Range(Cells(j, 14).Address(False, False) & "," & Cells(j, 17).Address(False, False) & "," & Cells(j, 19).Address(False, False))


La deuxieme methode est lourde en syntaxe. Dans les 2 cas la limite est de 255 cellules ou plage de cellules non contiguës.

Ensuite GROSSE ERREUR !!!

Union(Cells(j, 14), Cells(j, 17), Cells(j, 19))
renvois un objet de type range donc la variable myrange droit être au minimum de type objet.
Dans ton cas il est preferable qu'elle soit typée en Range.

Donc pour attribuer une référence d'objet à une variable objet il faut utiliser l'instruction set
.

En clair:

With Worksheets("Inputs")
    Set myrange = Union(.Cells(j, 14), .Cells(j, 17), .Cells(j, 19))
End With


A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
28 mars 2011 à 13:42
La par contre j'utilise cette méthode :
With Worksheets("Inputs")
    myrange = .Range(.Cells(j, 14).Address & "," & .Cells(j, 17).Address & "," & .Cells(j, 19).Address) 
End With
0
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
28 mars 2011 à 13:46
Merci bigfish pour le Union.

C'est une bien meilleur solution.

Pour le Set, honte a moi, copier-coller de féniant.
0
Rejoignez-nous