Logo Hardware.com.br
Tati Moniz
Tati Moniz Novo Membro Registrado
11 Mensagens 1 Curtida

[Resolvido] Excel - código VBA

#1 Por Tati Moniz 22/09/2016 - 10:27
Olá gente, é minha segunda vez no fórum e tô tentando entender esse mundo de VBA. Comecei a ver uns vídeos no youtube para aprender o basico e to tentando fazer um código funcionar sem sucesso frown.png lembrando a todos que sou apenas uma curiosa, não trabalho com isso, mas botei na cabeça que preciso aprender kkkkkkk (o que a necessidade não faz né?)
Vamos as minhas dúvidas:
1) Tentei fazer um formulário com 1 caixa de texto e 3 checkbox (para ser sincera, são 25 checkbox). A caixa de texto eu gostaria de retornar um valor de Data (no padrão normal sabe - dd/mm/yy). Não consigo de maneira alguma. Crio uma variável (as Date) mas quando envia para planilha a data fica doida, ora aparece invertida, ora aparece um número doido (exemplo coloco 08/10/16 (outubro) e vira 10/08/16 ou 10/04/2076 (de onde isso surgiu? não foi isso que digitei!!! Excel é doido). Já tentei formatar na planilha, já tentei formatar pelo VBA (consegui o código em pesquisa do google, por ai) e nada funciona. frown.pngfrown.pngfrown.pngfrown.pngfrown.png
2) Com as checkbox fiz como um cadastro, sabe, tipo cadastro de clientes. Consegui fazer pular as células direitinho (levei uns 6 dias pra fazer isso kkkkk - a lerda). Mas quando atribui o valor "0" ou "1" em vez de "falso" ou "verdadeiro", ele só preenche a primeira linha com 0 e 1, mas as restantes volta para o padrão falso/verdadeiro. Não sei onde estou errando!!!! Podem me ajudar? Por favor!!!!!
3) E depois que eu recolher os dados provenientes do tal formulário, devo fazer uma planilha dizendo: Dia tal teve X Hemogramas, Y Reticulócitos, Z Parasitológicos. Por isso queria usar 0 ou 1 como valor das checkbox, pq ai eu só somaria a parada, entendem? E jogaria em outra planilha bonitinha só com as somas de todos os dias que foram lançados pelo formulário!!! Mas quem disse que consigo fazer isso tudo? Eu não consigo sair do VBA!!! Eu não consigo!!! Chateada frown.pngfrown.pngfrown.pngfrown.pngfrown.pngfrown.png E eu preciso disso para semana que vem frown.pngfrown.pngfrown.pngfrown.pngfrown.png minha chefia vai me matar pq estarei atolada contando manualmente todos os mais de 2000 exames realizados em um mês (imaginem contar isso tooooodo mês, até eu me aposentar (ainda faltam uns 20 anos frown.pngfrown.pngfrown.png) - ninguem merece trabalho assim não!! Por isso queria algo para facilitar minha vidinha. frown.pngfrown.pngfrown.pngfrown.png

Segue meus códigos (não atribui variavel Date pq não adianta e to quase desistindo - data é muito chato) e ai embaixo ta resumido pq é coisa pra dedéu... Não riam de mim não kkkkk ainda to engatinhando, to tentando aprender. E vou mandar o arquivo tbm.

Um beijão a todos,
Tati.

Private Sub btSalvar_Click()

'Variáveis de Hemograma, Reticulócito e Parasitológico
Dim vHemo As Boolean
Dim vRet As Boolean
Dim vParas As Boolean

vHemo = frmFormulario.cboxHemo.Value
vRet = frmFormulario.cboxRet.Value
vParas = frmFormulario.cboxParas.Value
'--------------------------------------------------------------
'Ativar a primeira planilha
ThisWorkbook.Worksheets("Dados").Activate

'Ativar célula
A2 Rows(2).Select
'--------------------------------------------------------------
'Valor para Hemograma (quando este for clicado)
If vHemo Then
ActiveSheet.Range("b2").Value = "1"
Else
ActiveSheet.Range("b2").Value = "0"
End If
'--------------------------------------------------------------
'Valor para Reticulocito (quando este for clicado)
If vRet Then
ActiveSheet.Range("c2").Value = "1"
Else ActiveSheet.Range("c2").Value = "0"
End If
'--------------------------------------------------------------
'Valor para Parasitológico (quando este for clicado)
If vParas Then
ActiveSheet.Range("d2").Value = "1"
Else
ActiveSheet.Range("d2").Value = "0"
End If
‘----------------------------------------------------------------
'Procurar a primeira célula vazia
Do If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
'----------------------------------------------------------------
'Carregar os dados para a planilha
ActiveCell.Value = txtData.Value
ActiveCell.Offset(0, 1).Value = cboxHemo.Value
ActiveCell.Offset(0, 2).Value = cboxRet.Value
ActiveCell.Offset(0, 3).Value = cboxParas.Value
'-----------------------------------------------------------------
'Limpar a caixa de texto
txtData.Value = Empty

'Limpar os CheckBox
cboxHemo.Value = False
cboxRet.Value = False
cboxParas.Value = False

'Colocar o cursor na caixa de texto
txtData.SetFocus

End Sub

Anexos

Basole
Basole Geek Registrado
945 Mensagens 596 Curtidas
#2 Por Basole
22/09/2016 - 12:15
@Tati Moniz segue anexo com as alteracoes;

Para o problema da data usei a funcao Format e invertendo dia e mes: [code=vb] ActiveCell.Value = VBA.Format(VBA.CDate(txtData.Value), "mm/dd/yy")
ActiveCell.NumberFormat = "dd/mm/yy" ' formata a celula para personalizado [/code]
Quanto as checkBox utilizei a funcao IIF :https://support.office.com/en-us/article/IIf-Function-32436ecf-c629-48a3-9900-647539c764e3?CorrelationId=41697e4c-75bb-4d4e-85b9-b566f01bbd7c&ui=en-US&rs=en-US&ad=US&ocmsassetID=HA001228853
ex.:
[code=vb] ActiveCell.Offset(0, 1).Value = VBA.IIf(cboxHemo.Value = True, 1, 0) [/code]

Anexos

Click em Curtir se a resposta foi útil. boa.gif Dê retorno por favor. Se resolveu, atencao_regras.gif Altere o Titulo como [ Resolvido ] comemorando.gif
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal