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). p>
3 Réponses :
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
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.
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").
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
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) code> se référera à la plage stockée sous forme de texte dansA1 code>J'ai mis ce que j'ai dans mon post.
Changer
plage (cellule) .Value code> àCell.value code>.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.