Saberexcel - site das macros
Essa macro do Aplicativo Microsoft Excel VBA(Visual Basic Application), retorna a letra da coluna, com auxílio de um entrada de dados InputBox,
quando usuário digitar o número da coluna, retornará a letra. Observe que atendo ao Pedido da Melina, usei o mesmo código no Evento_Change da Folha de Planilha ao 'digitar', na célula(E15), o procedimento da saida de dados para célula(G15)
Sub Coluna_Letra_Numero()
Dim vNumColuna As Integer, iValor As Integer, zSB As Integer
On Error Resume Next ' se nao digitar nada ou numero nao existente
vNumColuna = InputBox("Digite o valor da letra da coluna desejada", "Saberexcel - site das macros", "155")
'vNumColuna = ActiveCell.Column
If vNumColuna <= 26 Then
MsgBox Chr(vNumColuna + 64), vbInformation, "Saberexcel - site das macros"
Else
iValor = Application.RoundDown(vNumColuna / 26, 0)
If iValor = vNumColuna / 26 Then iValor = iValor - 1
zSB = (vNumColuna - (26 * iValor)) + 64
MsgBox "Coluna [ " & vNumColuna & " ] é a coluna [ " & Chr(iValor + 64) & Chr(zSB) & " ]", vbInformation, "Saberexcel - site das macros"
End If
End Sub
'USANDO O MESMO CÓDIGO NO EVENTO CHANGE DA FOLHA DE PLANILHA - COM SAIDA DADOS PARA UMA CÉLULA(G15).
Observe que usei o mesmo código para retornar os mesmos valores quando determinado valor for digitado na célula(E15).
veja que a linha de código: If Not Intersect(Target, Range("E15")) Is Nothing Then, rodará o procedimento se a condição for verdadeira,
isto é, se a célula ativa for a célula(E15), senão(Else) sai do procedimento(Exit Sub)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vNumColuna As Integer, iValor As Integer, zSB As Integer
On Error Resume Next ' se nao digitar nada ou numero nao existente
If Not Intersect(Target, Range("E15")) Is Nothing Then
vNumColuna = Range("E15").Value 'InputBox("Digite o valor da letra da coluna desejada")
'vNumColuna = ActiveCell.Column
' se a letra da coluna correspondente ao número for igual ou menor que 26
If vNumColuna <= 26 Then
MsgBox Chr(vNumColuna + 64)
[G15].Value = "Coluna [ " & vNumColuna & " ] é a coluna..: [ " & Chr(vNumColuna + 64) & " ]"
Else
iValor = Application.RoundDown(vNumColuna / 26, 0)
If iValor = vNumColuna / 26 Then iValor = iValor - 1
zSB = (vNumColuna - (26 * iValor)) + 64
[G15].Value = "Coluna [ " & vNumColuna & " ] é a coluna [ " & Chr(iValor + 64) & Chr(zSB) & " ]"
End If
Else
Exit Sub
End If
End Sub
Aprenda tudo sobre o Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos SaberExcel
Baixe o exemplo de planilha com o procedimento e macro acima
vba coluna numero inputbox retorna letra coluna (26.2 KB)