...
Private col as Range
...
Sub ChooseRange()
...
Set r = Application.InputBox("Выбери заголовок нужного столбца и нажми ОК", , Default:="A1", Type:=8)
Set col = r.EntireColumn
...
End Sub
Sub ColorAllShapes2()
...
ws.Shapes(wc.Range("A" & i).Value).Fill.ForeColor.RGB = col.Cells(i).Interior.Color
...
End Sub
Выбор цвета из столца, выбранного ранее
При этом эти коды нельзя объединять. Они должны действовать по-отдельности.
Благодарю!
Public k As Range
Public r As Range
Sub ChooseRange()
Sheets("Explication").Activate
Sheets("Color").Columns(2).Clear
Set r = Application.InputBox("Выбери заголовок нужного столбца и нажми ОК", , Default:="A1", Type:=8)
Set r = r.Cells(1, 1)
If r.Cells(1, 1).Row <> 1 Then Exit Sub
Set k = Range(r, Cells(Rows.Count, r.Column).End(xlUp))
k.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("Color").Cells(1, 2), Unique:=True
Set r = Range(Sheets("Color").Cells(2, 2), Sheets("Color").Cells(Sheets("Color").Rows.Count, 2).End(xlUp))
End Sub
Sub ColorAllShapes2()
Dim i As Integer, ws As Worksheet, wc As Worksheet
Set ws = Sheets("Plan"): Set wc = Sheets("Explication")
For i = 2 To ws.Shapes.Count
ws.Shapes(wc.Range("A" & i).Value).Fill.ForeColor.RGB = wc.Range("M" & i).Interior.Color
Next i
End Sub
Что мешает сохранить выбранное значение в переменной модуля и использовать потом это значение в ColorAllShapes2?
Можете ли Вы написать, как это будет выглядеть?
Спасибо!
пробовал так. не выходит.
Цитата: serega575757
пробовал так. не выходит.
Что имено не выходит?
Код какой?
Спасибо Вам!