Définir une plage de cellules discontinues de manière correcte

Résolu
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 - 11 nov. 2011 à 21:21
 Utilisateur anonyme - 12 nov. 2011 à 14:25
Bonsoir le forum,

Je me retourne vers vous pour une petite question...

Je cherche à définir de manière correcte une plage de données discontinue sous la forme suivante : Une cellule sur deux.

En fait je désire tracer un graphique à partir d'une macro. Ce graph sera définit sur deux colonnes (abscisse, ordonnée) mais seulement une cellule sur deux.

Voici les deux lignes de mon code que je cherche à modifier :

ActiveChart.SeriesCollection(1).XValues =   Range("A1:A20") 'Valeurs en abscisse
    ActiveChart.SeriesCollection(1).Values = Range("B1:B20") 'Valeurs en ordonnée


Mais je désire remplacer "Range("A1:A20")" et "Range("B1:B20")" par une autre plage qui serait définie par une cellule sur deux (plage discontinue).

Voici le code que je propose mais qui ne fonctionne pas du tout car mal définit !

Dim Abscisse As Range, Ordonnée As Range
    Dim i As Long
    
    For i   = 1 To 20 Step 2
    Abscisse = Union(Range("A" & i))
    Ordonnée = Union(Range("B" & i))
    Next
    
    ActiveChart.SeriesCollection(1).XValues = Abscisse 'Valeurs en abscisse
    ActiveChart.SeriesCollection(1).Values = Ordonnée 'Valeurs en ordonnée



Qui aurait la gentillesse de proposer une solution à mes soucis ?

Merci d'avance,

André

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 nov. 2011 à 21:35
Bonsoir, André,
Alors ? (j'ai pourtant déjà eu l'occasion de te montrer certaines choses avec Union ...)
=>>
Dim abscisse As Range, ordonnee As Range
Set abscisse = Range("A1")
Set ordonnee = Range("B1")
For i = 3 To 20 Step 2
 Set abscisse = Union(abscisse, Range("A" & i))
 Set ordonnee = Union(ordonnee, Range("B" & i))
Next
MsgBox abscisse.Address & vbCrLf & ordonnee.Address

essaye de comprendre pourquoi, ici, je démarre la boucle au 3ème rang
on pourrait démarrer au 1er, mais cela conduirait à 2 expressions conditionnelles de plus !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
Utilisateur anonyme
11 nov. 2011 à 21:55
Salut,
Eh oui.... on se fait toujours attraper
Il faut au minimum changer son pseudo et des noms des variables, si on veux tricher...


CF2i - Guadeloupe
Ingénierie Informatique
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
11 nov. 2011 à 23:07
Merci à toi Ucfoutu, comme d'habitude tu as réponse à tout.

J'ai bien remarqué l'utilisation du "union" que tu as pu faire par le passé dans les codes que tu m'as proposé. J'ai essayé de décortiquer un peu tout ça et de m'en inspirer...mais je n'y suis pas arrivé. Je n'avais encore jamais utilisé cette propriété.

J'ai également essayé une recherche par le net, mais je n'ai rien trouvé de convainquant sur les plages de données discontinues ou le "union".

Du coup ne me restait plus que le forum. Je suis quand même content, car finalement mon code n'était pas si faux que sa. Enfin il y avait de l'idée quoi^^

Maintenant que j'ai du utiliser par moi même ce "union" et bien j'avoue que c'est nettement plus simple à comprendre. Le fait que tu commence à 3 me semble pertinent. On initiale la première cellule à A1, ensuite on doit zapper A2 et prendre en compte A3 donc le prochain coup (le premier du compteur finalement) devra être 3. Et ensuite par sauts de 2 de manière assez logique.

Maintenant c'est parfaitement clair et j'ai même pu corriger certaines petites erreurs du coup^^.

Merci à toi Ucfoutu


Message résolu !


Ps : Ce coup-ci ma demande était plutôt simple je l'avoue. J'ai néanmoins en réserve un autre problème bien plus compliqué en tête et j'hésite encore à le traiter. Si tu es intéressé à te casser un peu la tête dessus avec moi je suis partant pour essayer de créer la discussion. Mais j'avoue ne pas avoir beaucoup de temps à consacrer à cette fonction mais que je suis quand même bien curieux de voir le résultat éventuel que sa peut faire^^ Seul, je ne m'y investirais pas. Et j'ai peur que pour arriver à un résultat 100% satisfaisant il faille y passer trop de temps. Temps que je ne dispose malheureusement pas. A toi de me dire si sa pourrait t’intéresser Ucfoutu.

Bonne soirée et encore merci pour ta réponse à ce post ;)


André
0
Utilisateur anonyme
11 nov. 2011 à 23:37
Excuse moi SERIEUXETCOOL
Je plaisantais c'est tout.

A bientôt


CF2i - Guadeloupe
Ingénierie Informatique
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 nov. 2011 à 07:05
Pour ton post-scriptum :
"Envoie" toujours, mais dans une autre discussion.
Prends alors le plus grand soin à bien détailler avec la plus grande précision les tenants et aboutissants techniques (sans nécessairement exposer le reste).
En développement informatique, il est rare que l'on ne puisse trouver une solution lorsque tenants et aboutissants peuvent être reliés par la logique seule, d'une part, et que, d'autre part, l'effort demandé à la machine ne dépasse pas l'endurance de ses muscles.
Elle n'existe pas lorsque doivent intervenir des facteurs autres (perception, instinct, sensibilité, appréciations personnelles, etc ...).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
12 nov. 2011 à 14:20
Bien je vais créer cette nouvelle discussion cette après midi alors. J'essaierais d'être le plus précis possible mais je sais d'avance que les objectifs vont évoluer au fur et à mesure du développement du code. Sa reste du développement après tout^^

Bref on se retrouvera sur l'autre discussion pour se pencher sur sa. Ce que j'aimerais faire est largement possible Ucfoutu. Il n'y a rien de compliqué que tu ne saurais faire. J'en suis convaincu. Mais moi tout seul je ne me sens pas prêt pour m'attaquer à ce code. Donc n'ai crainte, sa restera simple.

Je vais manger. A toute.

PS : Acive, il n'y a aucun problème. Ton post m'a même fait rire^^

A bientôt,

André
0
Utilisateur anonyme
12 nov. 2011 à 14:25
Bon app.


CF2i - Guadeloupe
Ingénierie Informatique
0
Rejoignez-nous