utilisation nom plage dans macro

Le
mik
Bonjour,

je cherchais a savoir si il était possible d'utiliser le nom que l'on donne
à une plage dans une macro.
Exemple:
je nomme ma plage "titi" qui fait référence à þuil1!$A$1:$B$2 et ainsi
dans ma macro je balaye "titi" au lieu de balayer þuil1!$A$1:$B$2 en dur.
Si ma macro est appelée dans un autre fichier et que la plage "titi" a 150
lignes au lieu de 2 il n'est pas besoin de retoucher le code (le nb de
colonne change pas).

Merci de votre réponse
mik
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Misange
Le #19810181
Bonsoir,
oui bien sur tu peux ! C'est même une excellente solution
Range("MaPlage").select

des infos plus détaillées ici
http://www.excelabo.net/pasapas/range

Misange migrateuse
http://www.excelabo.net : Participez à un travail collaboratif sur excel !


mik a écrit :
Bonjour,

je cherchais a savoir si il était possible d'utiliser le nom que l'on donne
à une plage dans une macro.
Exemple:
je nomme ma plage "titi" qui fait référence à þuil1!$A$1:$B$2 et ainsi
dans ma macro je balaye "titi" au lieu de balayer þuil1!$A$1:$B$2 en dur.
Si ma macro est appelée dans un autre fichier et que la plage "titi" a 150
lignes au lieu de 2 il n'est pas besoin de retoucher le code (le nb de
colonne change pas).

Merci de votre réponse
mik


mik
Le #19811241
Merci Misange!!
C'est exactement ce que je cherchais!!

Bonne journée,
mik

"Misange" wrote:

Bonsoir,
oui bien sur tu peux ! C'est même une excellente solution
Range("MaPlage").select

des infos plus détaillées ici
http://www.excelabo.net/pasapas/range

Misange migrateuse
http://www.excelabo.net : Participez à un travail collaboratif sur excel !


mik a écrit :
> Bonjour,
>
> je cherchais a savoir si il était possible d'utiliser le nom que l'on donne
> à une plage dans une macro.
> Exemple:
> je nomme ma plage "titi" qui fait référence à þuil1!$A$1:$B$2 et ainsi
> dans ma macro je balaye "titi" au lieu de balayer þuil1!$A$1:$B$2 en dur.
> Si ma macro est appelée dans un autre fichier et que la plage "titi" a 150
> lignes au lieu de 2 il n'est pas besoin de retoucher le code (le nb de
> colonne change pas).
>
> Merci de votre réponse
> mik



mik
Le #19818161
Bon j'y arrive pas :(
J'ai une formation prévue mi aout pour améliorer ça mais en attendant
quelqu'un pourrait-il m'expliquer pourquoi "Range("nomplage").Offset(1,
5).Value m'affiche "vide" alors que j'ai bien 5 colonnes dans ma plage et que
toutes mes celulles sont remplies?

Ma demande finale est assez simple:
J'ai 2 Plages, je voudrais faire une somme à la fin de la plage 1 d'apres un
critère qu'il faudrait rechercher dans la plage 2. Un espèce de RECHERCHEV

Exemple:
Plage 1
A1 =vide mais couleur fond bleu
A2 =vide mais couleur fond rouge

Plage 2
B1 (de couleur fond bleu) 
B2 (de couleur fond rouge) =5

donc total en A3 à la fin de la plage 1 = 17

Merci d'avance de votre aide


"mik" wrote:

Merci Misange!!
C'est exactement ce que je cherchais!!

Bonne journée,
mik

"Misange" wrote:

> Bonsoir,
> oui bien sur tu peux ! C'est même une excellente solution
> Range("MaPlage").select
>
> des infos plus détaillées ici
> http://www.excelabo.net/pasapas/range
>
> Misange migrateuse
> http://www.excelabo.net : Participez à un travail collaboratif sur excel !
>
>
> mik a écrit :
> > Bonjour,
> >
> > je cherchais a savoir si il était possible d'utiliser le nom que l'on donne
> > à une plage dans une macro.
> > Exemple:
> > je nomme ma plage "titi" qui fait référence à þuil1!$A$1:$B$2 et ainsi
> > dans ma macro je balaye "titi" au lieu de balayer þuil1!$A$1:$B$2 en dur.
> > Si ma macro est appelée dans un autre fichier et que la plage "titi" a 150
> > lignes au lieu de 2 il n'est pas besoin de retoucher le code (le nb de
> > colonne change pas).
> >
> > Merci de votre réponse
> > mik
>


MichDenis
Le #19818151
Bonjour Mik

s = Range("nomplage").Offset(1, 5).Value
Ceci retourne une ligne plus bas et 5 colonne plus à droite.

Si tu veux obtenir la valeur de la cellule 5 colonnes à droite,
s = Range("nomplage").Offset(0, 5).Value
OU
s = Range("nomplage").Offset(, 5).Value



"mik"
Bon j'y arrive pas :(
J'ai une formation prévue mi aout pour améliorer ça mais en attendant
quelqu'un pourrait-il m'expliquer pourquoi "Range("nomplage").Offset(1,
5).Value m'affiche "vide" alors que j'ai bien 5 colonnes dans ma plage et que
toutes mes celulles sont remplies?

Ma demande finale est assez simple:
J'ai 2 Plages, je voudrais faire une somme à la fin de la plage 1 d'apres un
critère qu'il faudrait rechercher dans la plage 2. Un espèce de RECHERCHEV

Exemple:
Plage 1
A1 =vide mais couleur fond bleu
A2 =vide mais couleur fond rouge

Plage 2
B1 (de couleur fond bleu) 
B2 (de couleur fond rouge) =5

donc total en A3 à la fin de la plage 1 = 17

Merci d'avance de votre aide


"mik" wrote:

Merci Misange!!
C'est exactement ce que je cherchais!!

Bonne journée,
mik

"Misange" wrote:

> Bonsoir,
> oui bien sur tu peux ! C'est même une excellente solution
> Range("MaPlage").select
>
> des infos plus détaillées ici
> http://www.excelabo.net/pasapas/range
>
> Misange migrateuse
> http://www.excelabo.net : Participez à un travail collaboratif sur excel !
>
>
> mik a écrit :
> > Bonjour,
> >
> > je cherchais a savoir si il était possible d'utiliser le nom que l'on donne
> > à une plage dans une macro.
> > Exemple:
> > je nomme ma plage "titi" qui fait référence à þuil1!$A$1:$B$2 et ainsi
> > dans ma macro je balaye "titi" au lieu de balayer þuil1!$A$1:$B$2 en dur.
> > Si ma macro est appelée dans un autre fichier et que la plage "titi" a 150
> > lignes au lieu de 2 il n'est pas besoin de retoucher le code (le nb de
> > colonne change pas).
> >
> > Merci de votre réponse
> > mik
>


mik
Le #19819991
Bonjour,

ca ne donne rien de plus.
il y a 14 lignes et 5 colonnes donc je devrais de toutes facons voir quelque
chose en Range("nomplage").Offset(1, 5).value

En mettant un espion dans VBA, cela m'indique que toutes les "coordonnes de
RANGE" sont vides... Pourtant il en voit bien de Range("nomplage").Offset(1,
1) à Range("nomplage").Offset(14, 5).

Merci de votre aide

"MichDenis" wrote:

Bonjour Mik

s = Range("nomplage").Offset(1, 5).Value
Ceci retourne une ligne plus bas et 5 colonne plus à droite.

Si tu veux obtenir la valeur de la cellule 5 colonnes à droite,
s = Range("nomplage").Offset(0, 5).Value
OU
s = Range("nomplage").Offset(, 5).Value



"mik"
Bon j'y arrive pas :(
J'ai une formation prévue mi aout pour améliorer ça mais en attendant
quelqu'un pourrait-il m'expliquer pourquoi "Range("nomplage").Offset(1,
5).Value m'affiche "vide" alors que j'ai bien 5 colonnes dans ma plage et que
toutes mes celulles sont remplies?

Ma demande finale est assez simple:
J'ai 2 Plages, je voudrais faire une somme à la fin de la plage 1 d'apres un
critère qu'il faudrait rechercher dans la plage 2. Un espèce de RECHERCHEV

Exemple:
Plage 1
A1 =vide mais couleur fond bleu
A2 =vide mais couleur fond rouge

Plage 2
B1 (de couleur fond bleu) 
B2 (de couleur fond rouge) =5

donc total en A3 à la fin de la plage 1 = 17

Merci d'avance de votre aide


"mik" wrote:

> Merci Misange!!
> C'est exactement ce que je cherchais!!
>
> Bonne journée,
> mik
>
> "Misange" wrote:
>
> > Bonsoir,
> > oui bien sur tu peux ! C'est même une excellente solution
> > Range("MaPlage").select
> >
> > des infos plus détaillées ici
> > http://www.excelabo.net/pasapas/range
> >
> > Misange migrateuse
> > http://www.excelabo.net : Participez à un travail collaboratif sur excel !
> >
> >
> > mik a écrit :
> > > Bonjour,
> > >
> > > je cherchais a savoir si il était possible d'utiliser le nom que l'on donne
> > > à une plage dans une macro.
> > > Exemple:
> > > je nomme ma plage "titi" qui fait référence à þuil1!$A$1:$B$2 et ainsi
> > > dans ma macro je balaye "titi" au lieu de balayer þuil1!$A$1:$B$2 en dur.
> > > Si ma macro est appelée dans un autre fichier et que la plage "titi" a 150
> > > lignes au lieu de 2 il n'est pas besoin de retoucher le code (le nb de
> > > colonne change pas).
> > >
> > > Merci de votre réponse
> > > mik
> >



Daniel.C
Le #19821561
Bonjour.
Si tu n'as que 5 colonnes et que tu décales de 5, tu vas taper dans la
6e colonne à partir du bord gauche de "nomplage". Pour mieux le
visualiser, entre :
Range("nomplage").Offset(1, 5).Select
et regarde ce qui est sélectionné.
Daniel

Bonjour,

ca ne donne rien de plus.
il y a 14 lignes et 5 colonnes donc je devrais de toutes facons voir quelque
chose en Range("nomplage").Offset(1, 5).value

En mettant un espion dans VBA, cela m'indique que toutes les "coordonnes de
RANGE" sont vides... Pourtant il en voit bien de Range("nomplage").Offset(1,
1) à Range("nomplage").Offset(14, 5).

Merci de votre aide

"MichDenis" wrote:

Bonjour Mik

s = Range("nomplage").Offset(1, 5).Value
Ceci retourne une ligne plus bas et 5 colonne plus à droite.

Si tu veux obtenir la valeur de la cellule 5 colonnes à droite,
s = Range("nomplage").Offset(0, 5).Value
OU
s = Range("nomplage").Offset(, 5).Value



"mik" discussion :
Bon j'y arrive pas :(
J'ai une formation prévue mi aout pour améliorer ça mais en attendant
quelqu'un pourrait-il m'expliquer pourquoi "Range("nomplage").Offset(1,
5).Value m'affiche "vide" alors que j'ai bien 5 colonnes dans ma plage et
que toutes mes celulles sont remplies?

Ma demande finale est assez simple:
J'ai 2 Plages, je voudrais faire une somme à la fin de la plage 1 d'apres un
critère qu'il faudrait rechercher dans la plage 2. Un espèce de RECHERCHEV

Exemple:
Plage 1
A1 =vide mais couleur fond bleu
A2 =vide mais couleur fond rouge

Plage 2
B1 (de couleur fond bleu) 
B2 (de couleur fond rouge) =5

donc total en A3 à la fin de la plage 1 = 17

Merci d'avance de votre aide


"mik" wrote:

Merci Misange!!
C'est exactement ce que je cherchais!!

Bonne journée,
mik

"Misange" wrote:

Bonsoir,
oui bien sur tu peux ! C'est même une excellente solution
Range("MaPlage").select

des infos plus détaillées ici
http://www.excelabo.net/pasapas/range

Misange migrateuse
http://www.excelabo.net : Participez à un travail collaboratif sur excel !


mik a écrit :
Bonjour,

je cherchais a savoir si il était possible d'utiliser le nom que l'on
donne à une plage dans une macro.
Exemple:
je nomme ma plage "titi" qui fait référence à þuil1!$A$1:$B$2 et ainsi
dans ma macro je balaye "titi" au lieu de balayer þuil1!$A$1:$B$2 en
dur. Si ma macro est appelée dans un autre fichier et que la plage "titi"
a 150 lignes au lieu de 2 il n'est pas besoin de retoucher le code (le nb
de colonne change pas).

Merci de votre réponse
mik












mik
Le #19832811
J'ai fait le test et offset ne permet pas de sélectionner une celulle à
l'intérieur de la plage mais de sélectionner une zone de taille (nb lignes et
nb colonnes) identique à la plage par rapport à l'emplacement de cette meme
plage.

donc dans mon exemple "nomplage" en $A$1:$E$14 (14 lignes, 5 colonnes)
Range("nomplage").Offset(1, 5).Select te sélectionne la plage $F$2:$J$15

Donc la question est comment sélectionner une seule cellule de ma plage??

Merci

"Daniel.C" wrote:

Bonjour.
Si tu n'as que 5 colonnes et que tu décales de 5, tu vas taper dans la
6e colonne à partir du bord gauche de "nomplage". Pour mieux le
visualiser, entre :
Range("nomplage").Offset(1, 5).Select
et regarde ce qui est sélectionné.
Daniel

> Bonjour,
>
> ca ne donne rien de plus.
> il y a 14 lignes et 5 colonnes donc je devrais de toutes facons voir quelque
> chose en Range("nomplage").Offset(1, 5).value
>
> En mettant un espion dans VBA, cela m'indique que toutes les "coordonnes de
> RANGE" sont vides... Pourtant il en voit bien de Range("nomplage").Offset(1,
> 1) à Range("nomplage").Offset(14, 5).
>
> Merci de votre aide
>
> "MichDenis" wrote:
>
>> Bonjour Mik
>>
>> s = Range("nomplage").Offset(1, 5).Value
>> Ceci retourne une ligne plus bas et 5 colonne plus à droite.
>>
>> Si tu veux obtenir la valeur de la cellule 5 colonnes à droite,
>> s = Range("nomplage").Offset(0, 5).Value
>> OU
>> s = Range("nomplage").Offset(, 5).Value
>>
>>
>>
>> "mik" >> discussion :
>> Bon j'y arrive pas :(
>> J'ai une formation prévue mi aout pour améliorer ça mais en attendant
>> quelqu'un pourrait-il m'expliquer pourquoi "Range("nomplage").Offset(1,
>> 5).Value m'affiche "vide" alors que j'ai bien 5 colonnes dans ma plage et
>> que toutes mes celulles sont remplies?
>>
>> Ma demande finale est assez simple:
>> J'ai 2 Plages, je voudrais faire une somme à la fin de la plage 1 d'apres un
>> critère qu'il faudrait rechercher dans la plage 2. Un espèce de RECHERCHEV
>>
>> Exemple:
>> Plage 1
>> A1 =vide mais couleur fond bleu
>> A2 =vide mais couleur fond rouge
>>
>> Plage 2
>> B1 (de couleur fond bleu) 
>> B2 (de couleur fond rouge) =5
>>
>> donc total en A3 à la fin de la plage 1 = 17
>>
>> Merci d'avance de votre aide
>>
>>
>> "mik" wrote:
>>
>>> Merci Misange!!
>>> C'est exactement ce que je cherchais!!
>>>
>>> Bonne journée,
>>> mik
>>>
>>> "Misange" wrote:
>>>
>>>> Bonsoir,
>>>> oui bien sur tu peux ! C'est même une excellente solution
>>>> Range("MaPlage").select
>>>>
>>>> des infos plus détaillées ici
>>>> http://www.excelabo.net/pasapas/range
>>>>
>>>> Misange migrateuse
>>>> http://www.excelabo.net : Participez à un travail collaboratif sur excel !
>>>>
>>>>
>>>> mik a écrit :
>>>>> Bonjour,
>>>>>
>>>>> je cherchais a savoir si il était possible d'utiliser le nom que l'on
>>>>> donne à une plage dans une macro.
>>>>> Exemple:
>>>>> je nomme ma plage "titi" qui fait référence à þuil1!$A$1:$B$2 et ainsi
>>>>> dans ma macro je balaye "titi" au lieu de balayer þuil1!$A$1:$B$2 en
>>>>> dur. Si ma macro est appelée dans un autre fichier et que la plage "titi"
>>>>> a 150 lignes au lieu de 2 il n'est pas besoin de retoucher le code (le nb
>>>>> de colonne change pas).
>>>>>
>>>>> Merci de votre réponse
>>>>> mik
>>>>
>>





MichDenis
Le #19833101
Présentation plus claire, réponse probablement mieux adapté !

Soit la plage nommée "NomPlage" faisant référence à : $A$1:$E$14
Sélectionne la cellule F1 , soit 5 colonnes à droite de A1

Range("nomplage")(1,1).Offset(, 5).Select




"mik"
J'ai fait le test et offset ne permet pas de sélectionner une celulle à
l'intérieur de la plage mais de sélectionner une zone de taille (nb lignes et
nb colonnes) identique à la plage par rapport à l'emplacement de cette meme
plage.

donc dans mon exemple "nomplage" en $A$1:$E$14 (14 lignes, 5 colonnes)
Range("nomplage").Offset(1, 5).Select te sélectionne la plage $F$2:$J$15

Donc la question est comment sélectionner une seule cellule de ma plage??

Merci

"Daniel.C" wrote:

Bonjour.
Si tu n'as que 5 colonnes et que tu décales de 5, tu vas taper dans la
6e colonne à partir du bord gauche de "nomplage". Pour mieux le
visualiser, entre :
Range("nomplage").Offset(1, 5).Select
et regarde ce qui est sélectionné.
Daniel

> Bonjour,
>
> ca ne donne rien de plus.
> il y a 14 lignes et 5 colonnes donc je devrais de toutes facons voir quelque
> chose en Range("nomplage").Offset(1, 5).value
>
> En mettant un espion dans VBA, cela m'indique que toutes les "coordonnes de
> RANGE" sont vides... Pourtant il en voit bien de Range("nomplage").Offset(1,
> 1) à Range("nomplage").Offset(14, 5).
>
> Merci de votre aide
>
> "MichDenis" wrote:
>
>> Bonjour Mik
>>
>> s = Range("nomplage").Offset(1, 5).Value
>> Ceci retourne une ligne plus bas et 5 colonne plus à droite.
>>
>> Si tu veux obtenir la valeur de la cellule 5 colonnes à droite,
>> s = Range("nomplage").Offset(0, 5).Value
>> OU
>> s = Range("nomplage").Offset(, 5).Value
>>
>>
>>
>> "mik" >> discussion :
>> Bon j'y arrive pas :(
>> J'ai une formation prévue mi aout pour améliorer ça mais en attendant
>> quelqu'un pourrait-il m'expliquer pourquoi "Range("nomplage").Offset(1,
>> 5).Value m'affiche "vide" alors que j'ai bien 5 colonnes dans ma plage et
>> que toutes mes celulles sont remplies?
>>
>> Ma demande finale est assez simple:
>> J'ai 2 Plages, je voudrais faire une somme à la fin de la plage 1 d'apres un
>> critère qu'il faudrait rechercher dans la plage 2. Un espèce de RECHERCHEV
>>
>> Exemple:
>> Plage 1
>> A1 =vide mais couleur fond bleu
>> A2 =vide mais couleur fond rouge
>>
>> Plage 2
>> B1 (de couleur fond bleu) 
>> B2 (de couleur fond rouge) =5
>>
>> donc total en A3 à la fin de la plage 1 = 17
>>
>> Merci d'avance de votre aide
>>
>>
>> "mik" wrote:
>>
>>> Merci Misange!!
>>> C'est exactement ce que je cherchais!!
>>>
>>> Bonne journée,
>>> mik
>>>
>>> "Misange" wrote:
>>>
>>>> Bonsoir,
>>>> oui bien sur tu peux ! C'est même une excellente solution
>>>> Range("MaPlage").select
>>>>
>>>> des infos plus détaillées ici
>>>> http://www.excelabo.net/pasapas/range
>>>>
>>>> Misange migrateuse
>>>> http://www.excelabo.net : Participez à un travail collaboratif sur excel !
>>>>
>>>>
>>>> mik a écrit :
>>>>> Bonjour,
>>>>>
>>>>> je cherchais a savoir si il était possible d'utiliser le nom que l'on
>>>>> donne à une plage dans une macro.
>>>>> Exemple:
>>>>> je nomme ma plage "titi" qui fait référence à þuil1!$A$1:$B$2 et ainsi
>>>>> dans ma macro je balaye "titi" au lieu de balayer þuil1!$A$1:$B$2 en
>>>>> dur. Si ma macro est appelée dans un autre fichier et que la plage "titi"
>>>>> a 150 lignes au lieu de 2 il n'est pas besoin de retoucher le code (le nb
>>>>> de colonne change pas).
>>>>>
>>>>> Merci de votre réponse
>>>>> mik
>>>>
>>





mik
Le #19833171
non non offset ne sert pas à sélectionner une cellule de ma plage mais
seulement à décales en DEHORS de la plage.
Mais merci bcp car la syntaxe est en effet Range("nomplage")(1,5).select.

par contre du coup comment je parcours ma plage dans VBA si je connais pas
le nb max de lignes???

merci
mik

"MichDenis" wrote:

Présentation plus claire, réponse probablement mieux adapté !

Soit la plage nommée "NomPlage" faisant référence à : $A$1:$E$14
Sélectionne la cellule F1 , soit 5 colonnes à droite de A1

Range("nomplage")(1,1).Offset(, 5).Select




"mik"
J'ai fait le test et offset ne permet pas de sélectionner une celulle à
l'intérieur de la plage mais de sélectionner une zone de taille (nb lignes et
nb colonnes) identique à la plage par rapport à l'emplacement de cette meme
plage.

donc dans mon exemple "nomplage" en $A$1:$E$14 (14 lignes, 5 colonnes)
Range("nomplage").Offset(1, 5).Select te sélectionne la plage $F$2:$J$15

Donc la question est comment sélectionner une seule cellule de ma plage??

Merci

"Daniel.C" wrote:

> Bonjour.
> Si tu n'as que 5 colonnes et que tu décales de 5, tu vas taper dans la
> 6e colonne à partir du bord gauche de "nomplage". Pour mieux le
> visualiser, entre :
> Range("nomplage").Offset(1, 5).Select
> et regarde ce qui est sélectionné.
> Daniel
>
> > Bonjour,
> >
> > ca ne donne rien de plus.
> > il y a 14 lignes et 5 colonnes donc je devrais de toutes facons voir quelque
> > chose en Range("nomplage").Offset(1, 5).value
> >
> > En mettant un espion dans VBA, cela m'indique que toutes les "coordonnes de
> > RANGE" sont vides... Pourtant il en voit bien de Range("nomplage").Offset(1,
> > 1) à Range("nomplage").Offset(14, 5).
> >
> > Merci de votre aide
> >
> > "MichDenis" wrote:
> >
> >> Bonjour Mik
> >>
> >> s = Range("nomplage").Offset(1, 5).Value
> >> Ceci retourne une ligne plus bas et 5 colonne plus à droite.
> >>
> >> Si tu veux obtenir la valeur de la cellule 5 colonnes à droite,
> >> s = Range("nomplage").Offset(0, 5).Value
> >> OU
> >> s = Range("nomplage").Offset(, 5).Value
> >>
> >>
> >>
> >> "mik" > >> discussion :
> >> Bon j'y arrive pas :(
> >> J'ai une formation prévue mi aout pour améliorer ça mais en attendant
> >> quelqu'un pourrait-il m'expliquer pourquoi "Range("nomplage").Offset(1,
> >> 5).Value m'affiche "vide" alors que j'ai bien 5 colonnes dans ma plage et
> >> que toutes mes celulles sont remplies?
> >>
> >> Ma demande finale est assez simple:
> >> J'ai 2 Plages, je voudrais faire une somme à la fin de la plage 1 d'apres un
> >> critère qu'il faudrait rechercher dans la plage 2. Un espèce de RECHERCHEV
> >>
> >> Exemple:
> >> Plage 1
> >> A1 =vide mais couleur fond bleu
> >> A2 =vide mais couleur fond rouge
> >>
> >> Plage 2
> >> B1 (de couleur fond bleu) 
> >> B2 (de couleur fond rouge) =5
> >>
> >> donc total en A3 à la fin de la plage 1 = 17
> >>
> >> Merci d'avance de votre aide
> >>
> >>
> >> "mik" wrote:
> >>
> >>> Merci Misange!!
> >>> C'est exactement ce que je cherchais!!
> >>>
> >>> Bonne journée,
> >>> mik
> >>>
> >>> "Misange" wrote:
> >>>
> >>>> Bonsoir,
> >>>> oui bien sur tu peux ! C'est même une excellente solution
> >>>> Range("MaPlage").select
> >>>>
> >>>> des infos plus détaillées ici
> >>>> http://www.excelabo.net/pasapas/range
> >>>>
> >>>> Misange migrateuse
> >>>> http://www.excelabo.net : Participez à un travail collaboratif sur excel !
> >>>>
> >>>>
> >>>> mik a écrit :
> >>>>> Bonjour,
> >>>>>
> >>>>> je cherchais a savoir si il était possible d'utiliser le nom que l'on
> >>>>> donne à une plage dans une macro.
> >>>>> Exemple:
> >>>>> je nomme ma plage "titi" qui fait référence à þuil1!$A$1:$B$2 et ainsi
> >>>>> dans ma macro je balaye "titi" au lieu de balayer þuil1!$A$1:$B$2 en
> >>>>> dur. Si ma macro est appelée dans un autre fichier et que la plage "titi"
> >>>>> a 150 lignes au lieu de 2 il n'est pas besoin de retoucher le code (le nb
> >>>>> de colonne change pas).
> >>>>>
> >>>>> Merci de votre réponse
> >>>>> mik
> >>>>
> >>
>
>
>



Daniel.C
Le #19833301
Inexact.
Range("A1:A10").Offset(1).Select
sélectionne les cellules A2:A11, soit à la fois des cellules internes
et des cellules externes à la plage initiale.
Le syntaxe :
Range("A1:A10")(1,2).Select
sélectionne B1, soit une cellule à l'extérieur de la plage initiale.
Si tu veux parcourir chacune de tes cellules, utilise :
Dim c as Range
For each c in range("nomplage")
...
next c
Daniel
PS le nombre de ligne de la plaqge est donné par :
range("nomplage").rows.count

non non offset ne sert pas à sélectionner une cellule de ma plage mais
seulement à décales en DEHORS de la plage.
Mais merci bcp car la syntaxe est en effet Range("nomplage")(1,5).select.

par contre du coup comment je parcours ma plage dans VBA si je connais pas
le nb max de lignes???

merci
mik

"MichDenis" wrote:

Présentation plus claire, réponse probablement mieux adapté !

Soit la plage nommée "NomPlage" faisant référence à : $A$1:$E$14
Sélectionne la cellule F1 , soit 5 colonnes à droite de A1

Range("nomplage")(1,1).Offset(, 5).Select




"mik" discussion :
J'ai fait le test et offset ne permet pas de sélectionner une celulle à
l'intérieur de la plage mais de sélectionner une zone de taille (nb lignes
et nb colonnes) identique à la plage par rapport à l'emplacement de cette
meme plage.

donc dans mon exemple "nomplage" en $A$1:$E$14 (14 lignes, 5 colonnes)
Range("nomplage").Offset(1, 5).Select te sélectionne la plage $F$2:$J$15

Donc la question est comment sélectionner une seule cellule de ma plage??

Merci

"Daniel.C" wrote:

Bonjour.
Si tu n'as que 5 colonnes et que tu décales de 5, tu vas taper dans la
6e colonne à partir du bord gauche de "nomplage". Pour mieux le
visualiser, entre :
Range("nomplage").Offset(1, 5).Select
et regarde ce qui est sélectionné.
Daniel

Bonjour,

ca ne donne rien de plus.
il y a 14 lignes et 5 colonnes donc je devrais de toutes facons voir
quelque chose en Range("nomplage").Offset(1, 5).value

En mettant un espion dans VBA, cela m'indique que toutes les "coordonnes
de RANGE" sont vides... Pourtant il en voit bien de
Range("nomplage").Offset(1, 1) à Range("nomplage").Offset(14, 5).

Merci de votre aide

"MichDenis" wrote:

Bonjour Mik

s = Range("nomplage").Offset(1, 5).Value
Ceci retourne une ligne plus bas et 5 colonne plus à droite.

Si tu veux obtenir la valeur de la cellule 5 colonnes à droite,
s = Range("nomplage").Offset(0, 5).Value
OU
s = Range("nomplage").Offset(, 5).Value



"mik" de discussion :
Bon j'y arrive pas :(
J'ai une formation prévue mi aout pour améliorer ça mais en attendant
quelqu'un pourrait-il m'expliquer pourquoi "Range("nomplage").Offset(1,
5).Value m'affiche "vide" alors que j'ai bien 5 colonnes dans ma plage et
que toutes mes celulles sont remplies?

Ma demande finale est assez simple:
J'ai 2 Plages, je voudrais faire une somme à la fin de la plage 1 d'apres
un critère qu'il faudrait rechercher dans la plage 2. Un espèce de
RECHERCHEV

Exemple:
Plage 1
A1 =vide mais couleur fond bleu
A2 =vide mais couleur fond rouge

Plage 2
B1 (de couleur fond bleu) 
B2 (de couleur fond rouge) =5

donc total en A3 à la fin de la plage 1 = 17

Merci d'avance de votre aide


"mik" wrote:

Merci Misange!!
C'est exactement ce que je cherchais!!

Bonne journée,
mik

"Misange" wrote:

Bonsoir,
oui bien sur tu peux ! C'est même une excellente solution
Range("MaPlage").select

des infos plus détaillées ici
http://www.excelabo.net/pasapas/range

Misange migrateuse
http://www.excelabo.net : Participez à un travail collaboratif sur
excel !


mik a écrit :
Bonjour,

je cherchais a savoir si il était possible d'utiliser le nom que l'on
donne à une plage dans une macro.
Exemple:
je nomme ma plage "titi" qui fait référence à þuil1!$A$1:$B$2 et
ainsi dans ma macro je balaye "titi" au lieu de balayer
þuil1!$A$1:$B$2 en dur. Si ma macro est appelée dans un autre
fichier et que la plage "titi" a 150 lignes au lieu de 2 il n'est pas
besoin de retoucher le code (le nb de colonne change pas).

Merci de votre réponse
mik






















Publicité
Poster une réponse
Anonyme