Tu l'as lu ce règlement ?
Vous devez être
connecté pour voir les images.
Comme tu es une fille, et que tu sembles très gentille ( :kaola: à tous les autres ), je vais commencer à t'aider avant que tu ais mis ce message
Vous devez être
connecté pour voir les liens.
correctement en forme.
Tu veux colorier une case. D'accord. En fonction d'une autre. Encore d'accord.
Et ça, cinquante fois. Bien.
Donc il faut regarder la valeur d'une cellule, d'une feuille.
Relisons la phrase à l'envers pour faire un travelling avant :
feuille/cellule/valeur
Demandons la traduction de ces mots :
[fixed]Français | VBA/Excel
-------------------+-------------------
Feuille | Sheet
Feuilles | Sheets
Feuille de calcul | Worksheet
Feuilles de calcul | Worksheets
Cellule |
Cellules | Cells / Range
Valeur | Value[/fixed]
Donc plutôt que de considérer les feuilles, on ne va considérer que les feuilles de calcul.
Curieusement, UNE cellule, ça n'existe pas en VBA/Excel. Par contre, une plage de plusieurs cellules, ça existe.
Tu te souviens de tes cours de maths du collège ? Un ensemble de 1 élément, ça reste un ensemble. Pour nos besoins, nous
considérerons des plages (Range) de une cellule.
Or, donc. Regardons la valeur de la cellule B3 de la feuille de calcul Feuil1 :
Code:
Sub Toto()
Debug.Print WorkSheets("Feuil1").Range("B3").Value
Debug.Print WorkSheets("Feuil1").Cells(3, 2).Value
End Sub
Si tu ne vois rien, ouvre l'éditeur VB et appuye sur CTRL+G. Cela ouvre la fenêtre Exécution.
Debug.Print permet d'écrire dans cette fenêtre. Pratique pour la mise au point
Les fonctions Range et Cells, pour une cellule, sont équivalentes.
Maintenant, colorions une cellule :
Code:
Sub Toto()
WorkSheets("Feuil1").Range("B3").Interior.ColorIndex = 15
WorkSheets("Feuil1").Cells(3, 2).Interior.ColorIndex = 15
End Sub
Bon. Maintenant on revient à l'énoncé.
Lire la valeur dans Feuil1/B3. Nous y lisons 12, par exemple. Il faut donc colorier Feuil2/L3 :
Code:
Dim valeur As Integer
valeur = WorkSheets("Feuil1").Cells(3, 2).Value
WorkSheets("Feuil2").Cells(3, valeur).Interior.ColorIndex = 15
x 50
Code:
Dim valeur As Integer
Dim colonne As Integer
For colonne = 1 To 50
valeur = WorkSheets("Feuil1").Cells(3, colonne).Value
WorkSheets("Feuil2").Cells(3, valeur).Interior.ColorIndex = 15
Next
Bon, maintenant, on fait varier la ligne :
Code:
Dim valeur As Integer
Dim colonne As Integer
Dim ligne As Integer
For ligne = 2 To 196
For colonne = 1 To 50
valeur = WorkSheets("Feuil1").Cells(ligne, colonne).Value
WorkSheets("Feuil2").Cells(ligne, valeur).Interior.ColorIndex = 15
Next
Next
Et voilà !