Notifications
Clear all

Excel VBA

3 Posts
3 Usuários
0 Reactions
768 Visualizações
(@ferrassi)
Posts: 0
New Member
Topic starter
 

Boa tarde,
Alguém poderia me ajudar a entender o que está acontecendo com a planilha?.
Ela tem 3 abas de um formulário, e só está salvando os dados no BD somente da aba 1, as outras informações estão em branco no BD.

‘Cadastro
Public Sub Cadastrar()
‘Call menu_acao_1
linha = 32

If shtCADASTRO.Range(“GuiaAba”) = 1 Then

‘Restrição – Código ou Nome em Branco’
If shtCADASTRO.Range(“CGes0″) = “” Then
MsgBox “Número Cadastro Faltando”, vbIformation, “Cadastro Negado”
Exit Sub
End If

If shtCADASTRO.Range(“CGes8″) = “” Then
MsgBox “Verifique o Nome”, vbIformation, “Cadastro Negado”
Exit Sub
End If

If shtCADASTRO.Range(“CGes9″) = “” Then
MsgBox “Verifique a Data de Nascimento”, vbIformation, “Cadastro Negado”
Exit Sub
End If

‘2ª Restrição – Código Já Cadastrado
Do Until shtBDCad.Cells(linha, “A”) = “”
If shtBDCad.Cells(linha, “A”) = shtCADASTRO.Range(“CGes0″) Then
MsgBox “Código do Cliente já está Cadastrado”, vbInformation, “Cadastro Negado”
Exit Sub
End If
linha = linha + 1
Loop

‘Sem restrição, Salvar
‘Call menu_acao_2

Do Until shtBDCad.Cells(linha, “A”) = “”
linha = linha + 1
Loop

For a = 0 To 36
shtBDCad.Cells(linha, “A”).Offset(0, a) = shtCADASTRO.Range(“CGes” & a).Value
Next
MsgBox “Dados Cadastrados com Sucesso”, vbInformation, “Cadastro de Gestantes”
Exit Sub

‘Cadastro de Antecedentes

ElseIf shtCADASTRO.Range(“Guia”) = 2 Then
Do Until shtBDCad.Cells(linha, “A”) = “”
If shtBDCad.Cells(linha, “A”) = shtCADASTRO.Range(“CGes0″) Then

For a = 37 To 56
shtBDCad.Cells(linha, “A”).Offset(0, a) = shtCADASTRO.Range(“CGes” & a).Value
Next
MsgBox “Dados Cadastrados com Sucesso”, vbInformation, “Cadastro de Gestantes”
Exit Sub

Else
MsgBox “Este ‘XXXXXX”, vbInformation, “Cadastro Negado”
Exit Sub

End If
linha = linha + 1
Loop

‘Cadastro Info Bancarias
Else
Do Until shtBDCad.Cells(linha, “A”) = “”
If shtBDCad.Cells(linha, “a”) = shtCADASTRO.Range(“CGes0″) Then

For a = 57 To 62
shtBDCad.Cells(linha, “A”).Offset(0, a) = shtCADASTRO.Range(“CGes” & a).Value
Next
MsgBox “Dados Cadastrados com Sucesso”, vbInformation, “Cadastro de Gestantes”
Exit Sub

Else
MsgBox “Este ‘XXXXXX”, vbInformation, “Cadastro Negado”
Exit Sub

End If
linha = linha + 1
Loop

End If
End Sub

Desde já agradeço.

 
Postado : 19/02/2016 1:19 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Ferrassi,

Boa tarde!

Compacte seu arquivo com ZIP e anexe o mesmo aqui no fórum. Assim ficará mais fácil de todos entenderem e ajudá-lo.

 
Postado : 19/02/2016 3:23 pm
(@edsonbr)
Posts: 0
New Member
 

Olá, Ferrasi

Assim, não tendo a totalidade de seu sistema prá analisar vamos por tentativa. Uma das hipóteses poderia ser a de que na estrutura de decisão principal desse código ora vc usa o valor de um intervalo nomeado chamado "GuiaAba" como decisão e mais adiante vc usa outro nome, "Guia", assim:

If shtCADASTRO.Range("GuiaAba") = 1 Then
...
...
ElseIf shtCADASTRO.Range("Guia") = 2 Then
...
...
Else
...
...
End If

Acredito que isso não tenha sido proposital e que pode ser uma das origens do erro.

 
Postado : 21/02/2016 4:47 pm