Página 1 de 1

Mensagem de erro no VBA Excel

Enviado: 29 Nov 2020 às 20:48
por riberex00
Boa tarde pessoal, nesse meu programa sobre montagem de uma agenda de contatos quando eu acesso o menu e tento a opção “1” para incluir contato eu recebo a seguinte mensagem:
"Erro de compilação: Somente tipos definidos pelo usuário em módulos de objeto público podem ser convertidos para ou a partir de uma variante ou passados para funções late-bound."
No Access funciona normalmente. Será que esse tipo de programa não pode ser feito no Excel? Ou o erro é por outro motivo? Obrigado.

Option Explicit

Type typContato

nomeCompleto As String * 30

dataNascimento As Date

fone As String * 12

email As String * 30

End Type

Public arrContato(1 To 100) As typContato

Public intUltimoContato As Integer

Sub menuAgenda()

Dim varOpcao As Variant

Do

varOpcao = InputBox("Informe a opção desejada: " & vbCrLf & _

vbLf & _

"[1] incluir novo contato" & vbCrLf & _

"[2] exibir contato" & vbCrLf & _

"[3] editar contato" & vbCrLf & _

"[4] excluir contato" & vbCrLf & _

"[5] salvar contato" & vbCrLf & _

vbLf & _

"[6] sair & vbCrLf &" _

, "Agenda de Conttos")

Select Case varOpcao

Case 1

Call incluirContato

Case 2

Call exibirContato

Case 3

Call editarContato

Case 4

Call exluirContato

Case 5

Call salvarContato

End Select

Loop Until varOpcao = 6

End Sub

Sub incluirContato()

intUltimoContato = intUltimoContato + 1

arrContato(intUltimoContato) = novoContato

End Sub

Function novoContato()

novoContato.nomeCompleto = InputBox("Informe o nome do contato (*):", " Incluir Contato")

novoContato.dataNasc = CDate(InputBox("Informe a data de nascimento (*):" & _

vbCrLf & vbLf & _

"Foramto: dd/mm/aaaa", "Incluir Contato"))

novoContato.fone = InputBox("Informe o telefone:" & vbCrLf & vbLf & _

"Formato: 00 00000-0000", "Incluir Contato")

novoContato.email = InputBox("Informe o e-mail:" & vbCrLf & vbLf & _

"Foramto: endereco@dominio.com", "Incluir email")

End Function

Sub exibirContato()

MsgBox listaContatos(True), vbInformation, "Lista de Contatos"

End Sub

Function listaContatos(Optional argCompleto As Boolean = False) As String

Dim i As Integer

For i = 1 To intUltimoContato

listaContatos = listaContatos & _

i & " " & arrContato(i).nomeCompleto

If argCompleto Then

listaContato = listaContato & " " & _

arrContato(i).dataNasc & " " & _

arrContato(i).fone & " " & _

arrContato(i).email & vbCrLf

Else

listaContatos = listaContatos & vbCrLf

End If

Next i

End Function


Sub editarContato()

End Sub


Sub exluirContato()

End Sub


Sub salvarContato()

End Sub

Re: Mensagem de erro no VBA Excel

Enviado: 02 Dez 2020 às 09:59
por AfonsoMira
Resposta da mesma pergunta em outro fórum: https://www.clubedohardware.com.br/topi ... nt=8025271