Définir une plage de cellules discontinues de manière correcte [Résolu]

Messages postés
336
Date d'inscription
dimanche 3 avril 2011
Dernière intervention
12 juin 2012
- 11 nov. 2011 à 21:21 - Dernière réponse :  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é
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 11 nov. 2011 à 21:35
3
Merci
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

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de ucfoutu
- 11 nov. 2011 à 21:55
0
Merci
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
Commenter la réponse de Utilisateur anonyme
Messages postés
336
Date d'inscription
dimanche 3 avril 2011
Dernière intervention
12 juin 2012
- 11 nov. 2011 à 23:07
0
Merci
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é
Commenter la réponse de SERIEUXETCOOL
- 11 nov. 2011 à 23:37
0
Merci
Excuse moi SERIEUXETCOOL
Je plaisantais c'est tout.

A bientôt


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 12 nov. 2011 à 07:05
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
336
Date d'inscription
dimanche 3 avril 2011
Dernière intervention
12 juin 2012
- 12 nov. 2011 à 14:20
0
Merci
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é
Commenter la réponse de SERIEUXETCOOL
- 12 nov. 2011 à 14:25
0
Merci
Bon app.


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.