0
votes

Se référant à la portée qui est la valeur d'une cellule

J'ai deux colonnes, une contient des adresses d'autres cellules ($ F $ par exemple par exemple), l'autre contient des nombres d'index de couleur (15, par exemple).

Je veux colorer la cellule renvoyée (qui est sur une autre feuille). xxx


8 commentaires

Semble assez simple. Qu'est-ce que tu as essayé jusque-là?


Je pense que je sais comment faire, le problème est que je ne sais pas comment se référer à la plage stockée comme valeur dans la première colonne.


S'il vous plaît Modifier Le message pour inclure le code que vous avez essayé et nous dis-nous où vous êtes coincé ou quelle erreur vous obtenez.


plage (plage ("A1"). Valeur) se référera à la plage stockée sous forme de texte dans A1


J'ai mis ce que j'ai dans mon post.


Changer plage (cellule) .Value à Cell.value .


D'accord, j'ai mis la macro fonctionnel dans la modification; Merci beaucoup!


Veuillez mettre le code de travail en tant que réponse non comme édition dans votre message.


3 Réponses :


0
votes
Sub Colour_World()
Dim Cell As Range
For Each Cell In Range("p2:p10") 'column with cell values

Worksheets("World").Range(Cell.Value).Interior.ColorIndex = Cell.Offset(0, 5).Value


Next Cell
End Sub

1 commentaires

S'il vous plaît ne postez pas uniquement de code comme réponse, mais fournissez également une explication de votre code et de la manière dont il résout le problème de la question. Les réponses avec une explication sont généralement de meilleure qualité et sont plus susceptibles d'attirer des upvotes.



0
votes
Sub mySub()
    Dim colorCodeRange As Range 'Cell is a keyword so you don't want to try to use it as a variable name.
    Dim outputCell As String
    Dim colorCode As Byte

    Set colorCodeRange = Sheets(1).Range("P2:P10")

    For Each Cell In colorCodeRange.Cells 'either define the range and use it here or don't define the range object and type in a hard-coded range here.
                                          'you were defining the range then not using it, which is pointless.

        outputCell = Cell.Value2 'get the output cell from the color code sheet
        colorCode = Cell.Offset(0, 5).Value 'get the color code
        Sheets("World").Range(outputCell).Interior.ColorIndex = colorCode 'output the color to the "World" sheet

    Next Cell 'be sure to end the loop with "Next Cell" or at least "Next"
End Sub
This Sub will get output cells (F2, F3, etc.) from the range P2:P10. These values are in sheet 1. The color codes are in the same row, 5 columns over to the right (column U). The fill colors are output to the "World" sheet in the cell specified in the colorCodeRange variable ("P2:P10").

0 commentaires

0
votes

car la variable cellule code> dans pour chaque code> retournera la chaîne dans la plage ("P2: p3907") code> et quand on se réfère à la plage juste Utilisez uniquement la plage ("String Reportez-vous à la cellule") code>. Donc, supprimez une plage de votre code et ce sera comme vous en avez besoin. Voir le code ci-dessous.

Sub Colour_World()
Dim Cell As Range

For Each Cell In Range("p2:p3907") 'column with cell values
    Worksheets("World").Range(Cell).Interior.ColorIndex = Cell.Offset(0, 5).Value
Next
End Sub


0 commentaires