OVH Cloud OVH Cloud

Range dynamique - VB

7 réponses
Avatar
Alexandre Hamelin
Bonjour encore!

Dans mes recherches précédentes concernant les graphiques, jen suis venu à
peut-être trouver une solution, néanmoins, j'aurais encore besoin de conseils:

Est-il possible de créer un Range dynamique qui s'agrandira à chaque retour
sur un "For...Next".

Voilà: mon but ultime est de créer en VB un graphique qui couvrira plusieurs
lignes consécutives mais "mergées": chaque ligne est constituée de 4 plus
petite lignes, lesquelles ont été sélectionnées et mergées pour faire une
grosse cellule. le problème c'est que la valeur d'une telle cellule est celle
de la cellule fille à l'extrème gauche-en haut. Par exemple: une cellule
mergé peut couvrir A1 jusqu'à B6. Si elle a une valeur, cette valeur n,est
réellement reconnue par Excel que dans la cellule A1. toutes les autres étant
vides. Lorsque l'on crée un graphique en incluant de telles cellules, on
obtient des "trous" dans le graph.

L'intérêt de faire un range dynamique serait de donner ce range qui ne
contient que les premières cellules d'une liste de cellules mergés à une
chart pour obtenir un beau graphique sans trous gigantesques entre les
différentes plages d'une même série.

Est-ce possible de définir un range d'une manière dynamique en lui ajoutant
à chaque fois une nouvelle cellule?

Merci!

7 réponses

Avatar
lSteph
Bonsoir,
Pour les merges , tu sais que mon opinion n'y changerait qu'une lettre
toutefois il me semble que le truc serait gérable dans une feuille où
il n'y a pas de merge mais serait liée aux cellules de celle où il y en
a.
Cela servirait de source à ton graphique sans poser le pb que tu
évoques.. c'est juste une idée!

Cordialement.

lSteph

Bonjour encore!

Dans mes recherches précédentes concernant les graphiques, jen suis venu à
peut-être trouver une solution, néanmoins, j'aurais encore besoin de
conseils:

Est-il possible de créer un Range dynamique qui s'agrandira à chaque retour
sur un "For...Next".

Voilà: mon but ultime est de créer en VB un graphique qui couvrira plusieurs
lignes consécutives mais "mergées": chaque ligne est constituée de 4 plus
petite lignes, lesquelles ont été sélectionnées et mergées pour faire une
grosse cellule. le problème c'est que la valeur d'une telle cellule est celle
de la cellule fille à l'extrème gauche-en haut. Par exemple: une cellule
mergé peut couvrir A1 jusqu'à B6. Si elle a une valeur, cette valeur n,est
réellement reconnue par Excel que dans la cellule A1. toutes les autres étant
vides. Lorsque l'on crée un graphique en incluant de telles cellules, on
obtient des "trous" dans le graph.

L'intérêt de faire un range dynamique serait de donner ce range qui ne
contient que les premières cellules d'une liste de cellules mergés à une
chart pour obtenir un beau graphique sans trous gigantesques entre les
différentes plages d'une même série.

Est-ce possible de définir un range d'une manière dynamique en lui ajoutant
à chaque fois une nouvelle cellule?

Merci!


--
- -

lSteph

Avatar
Patrick Penet
La cellule de référence (valeur et adresse) de cellules
fusionnées est toujours la première en haut et à gauche
de la zone.

Donc il faut que tu "démerge" tes cellules et que tu utilise
"centrer sur plusieurs colonnes" qui donne exactement
le même effet.

Pour incrémenter un Range, par ex:

Dim oR as range, x as integer

For x=1 to 25
set oR = activesheet.Range("a7:e" & 6+x)
'...
next x

HTH
PP

"Alexandre Hamelin" a écrit dans le message de news:

Bonjour encore!

Dans mes recherches précédentes concernant les graphiques, jen suis venu à
peut-être trouver une solution, néanmoins, j'aurais encore besoin de conseils:

Est-il possible de créer un Range dynamique qui s'agrandira à chaque retour
sur un "For...Next".

Voilà: mon but ultime est de créer en VB un graphique qui couvrira plusieurs
lignes consécutives mais "mergées": chaque ligne est constituée de 4 plus
petite lignes, lesquelles ont été sélectionnées et mergées pour faire une
grosse cellule. le problème c'est que la valeur d'une telle cellule est celle
de la cellule fille à l'extrème gauche-en haut. Par exemple: une cellule
mergé peut couvrir A1 jusqu'à B6. Si elle a une valeur, cette valeur n,est
réellement reconnue par Excel que dans la cellule A1. toutes les autres étant
vides. Lorsque l'on crée un graphique en incluant de telles cellules, on
obtient des "trous" dans le graph.

L'intérêt de faire un range dynamique serait de donner ce range qui ne
contient que les premières cellules d'une liste de cellules mergés à une
chart pour obtenir un beau graphique sans trous gigantesques entre les
différentes plages d'une même série.

Est-ce possible de définir un range d'une manière dynamique en lui ajoutant
à chaque fois une nouvelle cellule?

Merci!



Avatar
lSteph
Bonjour Patrick,

Selon ce que tu suggères à Alexandre et dont je soutiens le principe à
1000%, comme évoqué pas seulement dans ce fil, au sujet des (Beurk
)Merge.
Pour que cela s'applique à l'exemple directement dans la même feuille
tel que présenté il me semble qu'il conviendrait (bien sûr de supprimer
les fusions)
mais
plutôt de garder la police de la première ligne en Noir sur fond blanc
et celles contenant la même valeur dans les lignes consécutives en
blanc sur blanc et ainsi éventuellement encadrer les groupes de
cellules présentant la même étiquette.

Cordialement.

lSteph

Patrick Penet a exprimé avec précision :
La cellule de référence (valeur et adresse) de cellules
fusionnées est toujours la première en haut et à gauche
de la zone.

Donc il faut que tu "démerge" tes cellules et que tu utilise
"centrer sur plusieurs colonnes" qui donne exactement
le même effet.

Pour incrémenter un Range, par ex:

Dim oR as range, x as integer

For x=1 to 25
set oR = activesheet.Range("a7:e" & 6+x)
'...
next x

HTH
PP

"Alexandre Hamelin" a écrit dans
le message de news:
Bonjour encore!

Dans mes recherches précédentes concernant les graphiques, jen suis venu à
peut-être trouver une solution, néanmoins, j'aurais encore besoin de
conseils:

Est-il possible de créer un Range dynamique qui s'agrandira à chaque retour
sur un "For...Next".

Voilà: mon but ultime est de créer en VB un graphique qui couvrira
plusieurs
lignes consécutives mais "mergées": chaque ligne est constituée de 4 plus
petite lignes, lesquelles ont été sélectionnées et mergées pour faire une
grosse cellule. le problème c'est que la valeur d'une telle cellule est
celle
de la cellule fille à l'extrème gauche-en haut. Par exemple: une cellule
mergé peut couvrir A1 jusqu'à B6. Si elle a une valeur, cette valeur n,est
réellement reconnue par Excel que dans la cellule A1. toutes les autres
étant
vides. Lorsque l'on crée un graphique en incluant de telles cellules, on
obtient des "trous" dans le graph.

L'intérêt de faire un range dynamique serait de donner ce range qui ne
contient que les premières cellules d'une liste de cellules mergés à une
chart pour obtenir un beau graphique sans trous gigantesques entre les
différentes plages d'une même série.

Est-ce possible de définir un range d'une manière dynamique en lui ajoutant
à chaque fois une nouvelle cellule?

Merci!




--
- -


Avatar
FxM
Bonjour,

Pourquoi rouvrir un nouveau fil ?
Si les réponses de l'autre ne conviennent pas, il serait souhaitable
d'indiquer pourquoi.

@+
FxM



Bonjour encore!

Dans mes recherches précédentes concernant les graphiques, jen suis venu à
peut-être trouver une solution, néanmoins, j'aurais encore besoin de conseils:

Est-il possible de créer un Range dynamique qui s'agrandira à chaque retour
sur un "For...Next".

Voilà: mon but ultime est de créer en VB un graphique qui couvrira plusieurs
lignes consécutives mais "mergées": chaque ligne est constituée de 4 plus
petite lignes, lesquelles ont été sélectionnées et mergées pour faire une
grosse cellule. le problème c'est que la valeur d'une telle cellule est celle
de la cellule fille à l'extrème gauche-en haut. Par exemple: une cellule
mergé peut couvrir A1 jusqu'à B6. Si elle a une valeur, cette valeur n,est
réellement reconnue par Excel que dans la cellule A1. toutes les autres étant
vides. Lorsque l'on crée un graphique en incluant de telles cellules, on
obtient des "trous" dans le graph.

L'intérêt de faire un range dynamique serait de donner ce range qui ne
contient que les premières cellules d'une liste de cellules mergés à une
chart pour obtenir un beau graphique sans trous gigantesques entre les
différentes plages d'une même série.

Est-ce possible de définir un range d'une manière dynamique en lui ajoutant
à chaque fois une nouvelle cellule?

Merci!



Avatar
Alexandre Hamelin
Les autres réponses conviennent tout à fait!

Elles m'en apportent de nouvelles cependant! Comme un Range dynamique n'est
pas nécessairement lié à du Charting j'ai considéré que le sujet pourrait
intéresser d'autres utilisateurs!


Bonjour,

Pourquoi rouvrir un nouveau fil ?
Si les réponses de l'autre ne conviennent pas, il serait souhaitable
d'indiquer pourquoi.

@+
FxM



Bonjour encore!

Dans mes recherches précédentes concernant les graphiques, jen suis venu à
peut-être trouver une solution, néanmoins, j'aurais encore besoin de conseils:

Est-il possible de créer un Range dynamique qui s'agrandira à chaque retour
sur un "For...Next".

Voilà: mon but ultime est de créer en VB un graphique qui couvrira plusieurs
lignes consécutives mais "mergées": chaque ligne est constituée de 4 plus
petite lignes, lesquelles ont été sélectionnées et mergées pour faire une
grosse cellule. le problème c'est que la valeur d'une telle cellule est celle
de la cellule fille à l'extrème gauche-en haut. Par exemple: une cellule
mergé peut couvrir A1 jusqu'à B6. Si elle a une valeur, cette valeur n,est
réellement reconnue par Excel que dans la cellule A1. toutes les autres étant
vides. Lorsque l'on crée un graphique en incluant de telles cellules, on
obtient des "trous" dans le graph.

L'intérêt de faire un range dynamique serait de donner ce range qui ne
contient que les premières cellules d'une liste de cellules mergés à une
chart pour obtenir un beau graphique sans trous gigantesques entre les
différentes plages d'une même série.

Est-ce possible de définir un range d'une manière dynamique en lui ajoutant
à chaque fois une nouvelle cellule?

Merci!






Avatar
Alexandre Hamelin
Fantastique! j'hésite encore sur laquelle de ces 2 méthodes je vais me
fonder, mais je sais déjà que mes problèmes sont réglés! Merci!!!

Brillants!


La cellule de référence (valeur et adresse) de cellules
fusionnées est toujours la première en haut et à gauche
de la zone.

Donc il faut que tu "démerge" tes cellules et que tu utilise
"centrer sur plusieurs colonnes" qui donne exactement
le même effet.

Pour incrémenter un Range, par ex:

Dim oR as range, x as integer

For x=1 to 25
set oR = activesheet.Range("a7:e" & 6+x)
'...
next x

HTH
PP

"Alexandre Hamelin" a écrit dans le message de news:

Bonjour encore!

Dans mes recherches précédentes concernant les graphiques, jen suis venu à
peut-être trouver une solution, néanmoins, j'aurais encore besoin de conseils:

Est-il possible de créer un Range dynamique qui s'agrandira à chaque retour
sur un "For...Next".

Voilà: mon but ultime est de créer en VB un graphique qui couvrira plusieurs
lignes consécutives mais "mergées": chaque ligne est constituée de 4 plus
petite lignes, lesquelles ont été sélectionnées et mergées pour faire une
grosse cellule. le problème c'est que la valeur d'une telle cellule est celle
de la cellule fille à l'extrème gauche-en haut. Par exemple: une cellule
mergé peut couvrir A1 jusqu'à B6. Si elle a une valeur, cette valeur n,est
réellement reconnue par Excel que dans la cellule A1. toutes les autres étant
vides. Lorsque l'on crée un graphique en incluant de telles cellules, on
obtient des "trous" dans le graph.

L'intérêt de faire un range dynamique serait de donner ce range qui ne
contient que les premières cellules d'une liste de cellules mergés à une
chart pour obtenir un beau graphique sans trous gigantesques entre les
différentes plages d'une même série.

Est-ce possible de définir un range d'une manière dynamique en lui ajoutant
à chaque fois une nouvelle cellule?

Merci!








Avatar
Alexandre Hamelin
l'incrémentation de range n'a pas l'effet désiré: la méthode ci-dessous ne
fait qu'agrandir le range sans laisser de trous:
Le code:
Dim oR as range, x as integer

For x=1 to 25
set oR = activesheet.Range("a7:e" & 6+x)
'...
next x


Ne fait que sélectionner a7:e31

Je voudrais pouvoir incrémenter dynamiquement un range pour avoir, par
exemple, des sauts de 2 lignes à chaque fois:
Donc mon range commence avec la cellule a1, je voudrais ensuite ajouter a3,
puis a5, puis a7 et ainsi de suite, jusqu'à une ligne limite inconnu au
départ.

Est-ce possible?

En passant: "merge" et Centrer sur les colonnes, c'est la même fonction...
:s :p Et j'ai au dessus de 3645 lignes de 21 colonnes à "mappé" à la main, la
copie de formule d'Excel ne prends pas en compte les cellules mergées...

Avez-vous une autre idée???

Merci! C'est réellement apprécié!