Autres Selectionner 1 cellule sur 3 sur la meme ligne en VBA

Martin37

XLDnaute Nouveau
Bonjour à tous,

Je cherche à créer un programme VBA qui sélectionne une cellule sur 3 sur une même ligne jusqu à la fin du tableau.

Pour le moment j'ai réussi à trouver la dernière case du tableau, mais je n'arrive pas à créer la plage de données en VBA pour ensuite tracer le graphe.

Voici le code que j'ai pour le moment (le début fonctionne mais pas la fin):

Dim Column As Integer
Column = 3
Do While Not IsEmpty(Cells(1, Column))
Cells(3, Column).Select
Column = Column + 3
Loop

Dim list As Range
Dim i As Integer

i = 3
Do While i <> Column
list = Union(list, Cells(3, i))
i = i + 3
Loop
list.Select

Par avance merci pour votre aide
 

Martin37

XLDnaute Nouveau
Bonjour

la question serait: pourquoi vouloir selectionner une cellule sur 3 ?? pour quoi faire?
for j=1 to fin step 3
faire ce qu'il y a à faire...
next j
Bonjour,

Merci pour votre réponse, les données dont j'ai besoin sont situées toutes les 3 cellules, les cellules intermédiares sont des fonctions permettant de les comparer entre elles.
Mon but est de créer une liste de données avec toutes ces cellules (1 sur 3) afin de pouvoir créer un graphique avec cette liste de données.

Pour le moment le programme que j ai sélectionne les cellules 1 par 1, mais ne les garde pas en sélection donc je ne peux pas avoir la liste de données...

Par avance merci pour votre aide
 

Martin37

XLDnaute Nouveau
Aurais tu un bout de fichier exemple ?
Ce sont des données confidentielles, c'est pour cela que j'ai uniquement partagé quelques bouts de code.

J'ai ce code pour le moment:

//Cette partie fonctionne, cela sélectionne 1 cellule sur 3 jusqu a la dernière

Dim Column As Integer
Column = 3
Do While Not IsEmpty(Cells(1, Column))
Cells(3, Column).Select
Column = Column + 3
Loop

//A partir d'ici cela ne marche pas (C'est ici que je veux créer une liste de données pour faire un graphe)

Dim list As Range
Dim i As Integer

i = 3
Do While i <> Column
list = Union(list, Cells(3, i))
i = i + 3
Loop
list.Select
 

Phil69970

XLDnaute Barbatruc
Bonjour @Martin37 et bienvenu sur xld , Vincent

@Martin37
Ce sont des données confidentielles, c'est pour cela que j'ai uniquement partagé quelques bouts de code.

Je comprends très bien que certains fichiers des utilisateurs peuvent être confidentiels mais rien ne t’empêche de faire un fichier représentatif

C'est quoi représentatif ?

- représentatif, même organisation des lignes et des colonnes, mêmes libellés, mêmes noms de feuilles...
- anonymisé, pas de données personnelles réelles tels nom, n° sécu, adresse ... remplacé par Nom1, Nom2 etc ....
- simplifié, une quinzaine de lignes reproduisant l'ensemble des différents cas envisageables (Avec le résultat souhaité éventuellement)

*Préciser l'ordre de grandeur des lignes à traiter, exemple mon fichier comporte 1 000 lignes ou bien 200 000 lignes ==> la méthodologie peut être différents.

Je rajouterais si tu veux que l'on t'aide il nous faut bien souvent autre chose qu'un vague morceau de code !!!! :oops:

Une demande claire donne très souvent une réponse rapide et qui correspond au mieux à la demande.

Si cela fonctionne sur le fichier fourni et pas sur le vrai fichier c'est qu'il n'est en rien représentatif ou que tu n'as pas su transposer ce qui devrait être bien souvent qu'un simple copier coller du code.

@Phil69970
 

Martin37

XLDnaute Nouveau
Bonjour @Martin37 et bienvenu sur xld , Vincent

@Martin37


Je comprends très bien que certains fichiers des utilisateurs peuvent être confidentiels mais rien ne t’empêche de faire un fichier représentatif

C'est quoi représentatif ?

- représentatif, même organisation des lignes et des colonnes, mêmes libellés, mêmes noms de feuilles...
- anonymisé, pas de données personnelles réelles tels nom, n° sécu, adresse ... remplacé par Nom1, Nom2 etc ....
- simplifié, une quinzaine de lignes reproduisant l'ensemble des différents cas envisageables (Avec le résultat souhaité éventuellement)

*Préciser l'ordre de grandeur des lignes à traiter, exemple mon fichier comporte 1 000 lignes ou bien 200 000 lignes ==> la méthodologie peut être différents.

Je rajouterais si tu veux que l'on t'aide il nous faut bien souvent autre chose qu'un vague morceau de code !!!! :oops:

Une demande claire donne très souvent une réponse rapide et qui correspond au mieux à la demande.

Si cela fonctionne sur le fichier fourni et pas sur le vrai fichier c'est qu'il n'est en rien représentatif ou que tu n'as pas su transposer ce qui devrait être bien souvent qu'un simple copier coller du code.

@Phil69970
Bonjour,

Voici un fichier représentatif. Ce que je veux faire, c'est un graphique avec les données de simulation de chaque test pour toutes les pièces (par exemple un graphique avec comme liste de données C3 F3 I3 L3 O3 R3 U3 X3, puis pareil a la 4eme ligne...), mais je veux que excel les selectionne automatiquement quand je clique sur un bouton et me sorte le graphique.
 

Pièces jointes

  • Book2.xlsx
    9.2 KB · Affichages: 1

job75

XLDnaute Barbatruc
Bonjour Martin37, le forum,

Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False 'désactive les évènements
[B12:I12] = Array([C1], [F1], [I1], [L1], [O1], [R1], [U1], [X1])
[C3:C7,F3:F7,I3:I7,L3:L7,O3:O7,R3:R7,U3:U7,X3:X7].Copy [B13]
Application.EnableEvents = True 'réactive les évènements
End Sub
Elle se déclenche automatiquement quand on modifie ou valide une cellule quelconque.

A+
 

Pièces jointes

  • Book(1).xlsm
    21.7 KB · Affichages: 2

Martin37

XLDnaute Nouveau
Bonjour Martin37, le forum,

Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False 'désactive les évènements
[B12:I12] = Array([C1], [F1], [I1], [L1], [O1], [R1], [U1], [X1])
[C3:C7,F3:F7,I3:I7,L3:L7,O3:O7,R3:R7,U3:U7,X3:X7].Copy [B13]
Application.EnableEvents = True 'réactive les évènements
End Sub
Elle se déclenche automatiquement quand on modifie ou valide une cellule quelconque.

A+

Bonjour,

Merci pour ta réponse, juste pour être sur de bien comprendre le fonctionnement, tu as ajouté le graphique manuellement c'est bien ca?
Et a quoi servent les lignes pour désactiver et réactiver les événements?

A+
 

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 184
Membres
112 679
dernier inscrit
Yupanki