Eu tenho um grupo de botões de opção com rótulos em células adjacentes. Como posso organizar o botão de opção com o rótulo correspondente a um valor de célula de destino para ativar?
Aqui está um exemplo equivalente ao que estou tentando alcançar:
Aqui você pode ver dois grupos de rádio: “comprador” e “destino”. Os rótulos estão na coluna A, os grupos de opções estão na coluna B e os valores alvo estão na coluna C. Os valores na coluna C são o que controlamos e queremos ativar o botão de opção correto procurando o valor do célula alvo na lista de rótulos na coluna A. Ou seja, se C2 mudou para "Interno", então queremos que o botão de opção na célula B4 seja ativado. Os botões de opção em B7 e B8 não serão afetados, pois estão em um grupo diferente.
Responder1
Você não precisa realmente ler o valor do rótulo. Você pode atribuir rótulos aos botões de opção e alterar o valor da opção selecionada dessa forma.
Você poderia chamar isso em Worksheet_SelectionChange
Sub reflectCell()
Dim targetedCell As String
targetedCell = Range("A1").Text
Select Case UCase(targetedCell)
Case "RED"
ActiveSheet.OptionButton1.Value = True
Case "BLUE"
ActiveSheet.OptionButton2.Value = True
Case "GREEN"
ActiveSheet.OptionButton3.Value = True
End Select
Finalizar sub
A menos que você queira dizer que o rótulo É um valor de célula adjacente ao OptionButton A célula de destino é um local de intervalo estático ou o ActiveCell atual?
Se a célula de destino estiver sempre no mesmo local, você poderá controlar a ortografia da entrada assim.
Aqui está outra abordagem mais simples
Uma solução não macro que funciona se você puder usar fórmulas na planilha é mostrada nesta captura de tela
Nomeie cada botão de opção da mesma forma que o rótulo na coluna A. Faça com que a célula vinculada seja outra célula (que pode ser exemplos ocultos em E são as fórmulas mostradas em F) nessa célula e compare a entrada fornecida a cada rótulo de célula. Apenas um deve acabar sendo VERDADEIRO (ver fórmulas de exemplo)
Assim a opção em B2 está vinculada a E2, B3 está vinculada a E3, B7 está vinculada a E7 etc. Se você tiver permissão para a coluna extra com fórmulas (e elas podem estar em qualquer lugar) isso é muito mais simples do que usar vba