Pb : passer d'une référence verticale à horizontale ?

WorkHard

XLDnaute Nouveau
For i = 1 To 7
Range("a" & i)

C'est ce que j'utilise pour faire référence à des données placés verticalement :

A1 : 6
A2 : 5
A3 : 12
... : ...

Mais je voudrai faire référence à des données horizontales :

A1 - B1 - C1 - ...
6 5 12 ...

Connaissez-vous l'écriture adaptée ?

Merci d'avance
 

WorkHard

XLDnaute Nouveau
Re : Pb : passer d'une référence verticale à horizontale ?

Merci beaucoup à vous 2.

Je suis débutant c'est pour ça que mes questions sont faciles mais un jour viendra où je poserai des questions dures (quand je connaîtrai plus de choses), lol.

Encore merci.
 

Papou-net

XLDnaute Barbatruc
Re : Pb : passer d'une référence verticale à horizontale ?

Merci beaucoup à vous 2.

Je suis débutant c'est pour ça que mes questions sont faciles mais un jour viendra où je poserai des questions dures (quand je connaîtrai plus de choses), lol.

Encore merci.


Il n'y a de questions faciles que celles qui ne se posent pas !

Bon courage dans ton apprentissage, et à bientôt peut-être ?

Cordialement.
 

chris

XLDnaute Barbatruc
Re : Pb : passer d'une référence verticale à horizontale ?

Bonjour

J'ai oublié de préciser quelque chose tout à l'heure, je voulais faire commencer la ligne de données dans la case F21 et donc avec l'écriture "Cells (21,i)" ça ne fonctionne pas, ça marche que pour un départ en A21.
J'ai donc essayé tout un tas de chose mais je n'y arrive pas. J'imagine que ça vous paraît simple mais moi je suis bloqué parce que je suis un débutant, lol.

La discussion de tout à l'heure:
https://www.excel-downloads.com/threads/pb-passer-dune-reference-verticale-a-horizontale.132741/

Remplace
For i = 1 To .Range("IV" & 1).End(xlToLeft).Column

par

For i = 6 To .Range("IV" & 1).End(xlToLeft).Column
 

WorkHard

XLDnaute Nouveau
Re : Pb : passer d'une référence verticale à horizontale ?

Voilà où j'en suis :

Private Sub Worksheet_Change(ByVal Target As Range)

ChartObjects("Graphique 1").Activate

For i = 1 To 7
Select Case Cells(21, i)
Case 0 To 99
ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 0
Case 100 To 249
ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 43
Case 250 To 399
ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 44
Case 400 To 549
ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 45
Case 550 To 700
ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 3
End Select

Next i
ActiveCell.Select

End Sub
 

WorkHard

XLDnaute Nouveau
Re : Pb : passer d'une référence verticale à horizontale ?

J'ai essayé "For i = 6 to 12" mais ça ne fonctionne pas alors je met le fichier joint.
 

Pièces jointes

  • Classeur1 - Copie.xlsm
    21.2 KB · Affichages: 112
  • Classeur1 - Copie.xlsm
    21.2 KB · Affichages: 115
  • Classeur1 - Copie.xlsm
    21.2 KB · Affichages: 112

Papou-net

XLDnaute Barbatruc
Re : Pb : passer d'une référence verticale à horizontale ?

Tu utilises une seule variable (i) pour désigner la colonne de la feuille et la donnée correspondante dans ton graphique. Il faut donc en tenir compte dans ton code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

ChartObjects("Graphique 1").Activate

For i = 6 To 12
    Select Case Cells(21, i)
        Case 0 To 99
            ActiveChart.SeriesCollection(1).Points([COLOR="Red"][B]i - 5[/B][/COLOR]).Interior.ColorIndex = 0
        Case 100 To 249
            ActiveChart.SeriesCollection(1).Points([COLOR="Red"][B]i - 5[/B][/COLOR]).Interior.ColorIndex = 43
        Case 250 To 399
            ActiveChart.SeriesCollection(1).Points([COLOR="Red"][B]i - 5[/B][/COLOR]).Interior.ColorIndex = 44
        Case 400 To 549
            ActiveChart.SeriesCollection(1).Points([COLOR="Red"][B]i - 5[/B][/COLOR]).Interior.ColorIndex = 45
        Case 550 To 700
            ActiveChart.SeriesCollection(1).Points([COLOR="Red"][B]i - 5[/B][/COLOR]).Interior.ColorIndex = 3
    End Select

Next i
ActiveCell.Select

End Sub

Ou plus simplement :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

ChartObjects("Graphique 1").Activate

For i = 1 To 7
    Select Case Cells(21, [COLOR="Red"][B]i+5[/B][/COLOR])
        Case 0 To 99
            ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 0
        Case 100 To 249
            ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 43
        Case 250 To 399
            ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 44
        Case 400 To 549
            ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 45
        Case 550 To 700
            ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 3
    End Select

Next i
ActiveCell.Select

End Sub

Tes couleurs se mettent bien à jour, mais il faut également que tu prévoies la mise à jour des valeurs de tes barres.

Espérant t'avoir aidé.

Cordialement.
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Pb : passer d'une référence verticale à horizontale ?

Tu as résolu mais problème, merci. Je n'aurai jamais pensé à ça, d'ailleurs je t'avoues que je n'ai pas bien saisie la subtilité. Je suis vraiment novice.

Tu analyses les colonnes 6 (F) à 12 (L) avec l'indice i, mais dans ton graphique, les barres sont numérotées automatiquement de 1 à 7 : d'où l'obligation de retirer 5 à i pour la mise à jour du graphique. Ou bien d'ajouter 5 à i dans la 2ème proposition afin de déplacer l'analyse sur les colonnes F à L.

Me suis-je bien fait compris ?

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 411
Messages
2 088 167
Membres
103 752
dernier inscrit
FG2