Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problema com o código (e resposta) - O código não lê corretamente o que inseri na sigla do estado

Fiz o código e ele bateu com a resposta, porém na hora de executar ocorre o seguinte problema: Preencho com as informações corretas e, mesmo assim, o programa considera a sigla inválida e apaga a linha.

Deixo o meu código abaixo

Sub CriarCadastro()
    Dim SIGLA As String
    Range("a1048576").Select
    Range("a1048576").End(xlUp).Select
    ActiveCell.Offset(1, 0).Select
    ActiveCell = InputBox("Digite o nome do aluno")
    ActiveCell.Offset(0, 2).Select
    ActiveCell = InputBox("Informea sigla do Estado")
        SIGLA = UCase(ActiveCell.Offset(0, 2))
    If SIGLA = "RJ" Then
        ActiveCell.Offset(0, 1) = "Rio de Janeiro"
    ElseIf SIGLA = "SP" Then
        ActiveCell.Offset(0, 1) = "São Paulo"
    ElseIf SIGLA = "MG" Then
        ActiveCell.Offset(0, 1) = "Minas Gerais"
    ElseIf SIGLA = "TO" Then
        ActiveCell.Offset(0, 1) = "Tocantins"
    Else
        MsgBox "Estado inválido"
        ActiveCell.ClearContents
        ActiveCell.Offset(0, 2).ClearContents
        ActiveCell.Offset(0, -2).ClearContents
    End If

End Sub
2 respostas
solução!

Olá Conrado, bom dia !

Pelo o que eu entendi, acredito que o erro está na hora de você identificar a variável SIGLA.

Na hora de definir a sigla a célula ativa é onde está a informação e não no deslocamento para a direita.

Dessa forma acredito que o script ficaria dessa forma :

ActiveCell = InputBox("Digite o nome do aluno")
ActiveCell.Offset(0, 2).Select
ActiveCell = InputBox("Informea sigla do Estado")
SIGLA = UCase(ActiveCell) 'aqui seria a forma certa, já que o input box ja esta na célula ativa.

Teste ai e verifique se funcionou, e qualquer coisa respondi aqui !

Att,

Ariel Oliveira

Deu certo, muito obrigado!!!!!