Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

"##/01/####" Lançar dados na coluna janeiro!

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Tolentino
Colaborador
Colaborador
Mensagens: 28
Registrado em: Sex Out 24, 2014 3:27 pm

"##/01/####" Lançar dados na coluna janeiro!

Mensagem por Tolentino » Sex Dez 12, 2014 10:28 am

Bom dia galera, estou aqui novamente precisando de mais uma mãozinha! É o seguinte, tenho um formulário de despesas, e quero que lance os dados na coluna do seu respectivo mês baseado na data da minha txtData. Por exemplo: minha txtData esta 01/01/2014, quero que os dados das demais txt´s vão para as colunas A:D. Fiz assim mas nada ocorreu:

Sub lancadados()
Dim mes As String
Dim Janeiro As Integer
Janeiro = "##/01/####"
mes = UserForm1.txtData.Text

c = 4
If mes = Janeiro Then
u = 1
While Plan4.Cells(u, 3) <> ""
u = u + 1
Wend



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1226
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: "##/01/####" Lançar dados na coluna janeiro!

Mensagem por Reinaldo » Sex Dez 12, 2014 1:01 pm

Não entendi.
os meses são planilhas distintas? Ou estão em areas distintas de mesma planilha.
Pode dispor o modelo/exemplo com a estrutura utilizada?


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

Tolentino
Colaborador
Colaborador
Mensagens: 28
Registrado em: Sex Out 24, 2014 3:27 pm

Re: "##/01/####" Lançar dados na coluna janeiro!

Mensagem por Tolentino » Sex Dez 12, 2014 1:43 pm

Os dados vão para a mesma planilha, cada mes ocupa uma quantidade de colunas. Por exemplo

Quando eu lanço dados do mes JANEIRO, ela lança assim:

DESCRIÇÃO, QTD, VALOR é lançado nas colunas A B e C respectivamente.

Quando eu lanço dados do mês FEVEREIRO;

DESCRIÇÃO, QTD, VALOR é lançado nas colunas D E e F respectivamente.
e assim sucessivamente até dezembro.

Até então uso uma combo para cada informação de data (uma para dia, uma para mês e outra para ano), ai coloquei:

If comboboxMes.text = Janeiro Then
.. aí os dados vão pra onde quero.


mas quero colocar a data em uma como apenas.
Conseguiu compreender?? a plan está bem complexa, mas se for o caso dou uma modificada aqui para te mandar..



Tolentino
Colaborador
Colaborador
Mensagens: 28
Registrado em: Sex Out 24, 2014 3:27 pm

Re: "##/01/####" Lançar dados na coluna janeiro!

Mensagem por Tolentino » Sex Dez 12, 2014 2:06 pm

Amigo... mandei um exemplo pra dar uma olhada... assim ela está hoje, mas quero da uma melhorada, repare que as 3 primeiras combos são apenas para a data (dia, mes, ano) ai criei um modulo para lançar nas colunas correspondentes de acordo com o text da respectiva combobox referente ao mês. Como disse quero colocar a data em apenas uma como (01/01/2015) e as informações irem para onde tem que ir.
Anexos
EXEMPLO2.rar
(49.36 KiB) Baixado 60 vezes



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1226
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: "##/01/####" Lançar dados na coluna janeiro!

Mensagem por Reinaldo » Sex Dez 12, 2014 4:59 pm

Assim talvez?

Código: Selecionar todos

Sub lancadados()
Dim mes As Integer, nCol As Integer
Dim NomeMes
Dim uLin As Long

mes = Month(Format((UserForm1.ComboBox6.Value), "dd/mm/yyyy")) - 1

NomeMes = Array("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", _
                "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro")
If Not IsError(Application.Match(NomeMes(0), Sheets("dados").Range("A1:DR1"), 0)) Then
    nCol = Application.Match(NomeMes(mes), Sheets("dados").Range("A1:DR1"), 0)
End If
uLin = 2
While Plan4.Cells(uLin, nCol) <> ""
 uLin = uLin + 1
Wend

If UserForm1.TextBox2.Value >= "a" Then
    MsgBox "Valor inválido"
    UserForm1.TextBox2.SetFocus
ElseIf UserForm1.TextBox2.Value <= "0" Then
    'MsgBox "Valor inválido"
    'UserForm1.TextBox2.SetFocus
ElseIf UserForm1.ComboBox5.Value <= "" Then
    MsgBox "Insira referência"
    UserForm1.ComboBox5.SetFocus
ElseIf UserForm1.TextBox3.Value <= "" Then
    MsgBox "Insira a quantidade"
    UserForm1.TextBox3.SetFocus
Else
    UserForm1.TextBox5.Text = Val(UserForm1.TextBox2.Text) * Val(UserForm1.TextBox3.Text)
    
    Plan4.Cells(uLin, nCol) = CDate(Format(UserForm1.ComboBox6.Value, "dd/mm/yyyy"))
    Plan4.Cells(uLin, nCol + 1) = UserForm1.ComboBox5.Value
    Plan4.Cells(uLin, nCol + 2) = UserForm1.TextBox4.Value
    Plan4.Cells(uLin, nCol + 3) = UserForm1.TextBox1.Caption
    Plan4.Cells(uLin, nCol + 4) = UserForm1.TextBox2.Value
    Plan4.Cells(uLin, nCol + 5) = UserForm1.TextBox3.Value
    Plan4.Cells(uLin, nCol + 6) = UserForm1.ComboBox2.Value
    Plan4.Cells(uLin, nCol + 7) = UserForm1.ComboBox3.Value
    Plan4.Cells(uLin, nCol + 8) = UserForm1.TextBox5.Value
    Plan4.Cells(uLin, nCol + 9) = UserForm1.TextBox6.Value

    MsgBox "Produção inserida com sucesso", 6, "Produção"
    Resposta = MsgBox("Deseja inserir uma nova produção", 36, "Produção")

    If Resposta = vbYes Then
        UserForm1.TextBox1.Caption = ""
        UserForm1.TextBox2.Text = ""
        UserForm1.TextBox3.Text = ""
        UserForm1.TextBox4.Text = ""
        UserForm1.ComboBox5.Text = ""
        UserForm1.TextBox5.Text = ""
        UserForm1.TextBox6.Text = ""
        UserForm1.ComboBox5.SetFocus
    ElseIf Resposta = vbNo Then
        Unload UserForm1
    End If
End If
End Sub


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

Tolentino
Colaborador
Colaborador
Mensagens: 28
Registrado em: Sex Out 24, 2014 3:27 pm

Re: "##/01/####" Lançar dados na coluna janeiro!

Mensagem por Tolentino » Sex Dez 12, 2014 6:44 pm

Cara.. era isso mesmo.. deu certinho!!! muito obrigado!! mas só pra eu sacar qual foi... o que fez a rotina achar o coluna certa???



Tolentino
Colaborador
Colaborador
Mensagens: 28
Registrado em: Sex Out 24, 2014 3:27 pm

Re: "##/01/####" Lançar dados na coluna janeiro!

Mensagem por Tolentino » Sex Dez 12, 2014 8:31 pm

Cara.. ja saquei... agora aproveitando .. se caso puder dar uma olhadinha aí... estou tentando colocar esse calendário nessa combobox da data, pra facilitar, mas quando faço isso dá erro..
Anexos
DateAndTimePickerControl.zip
(42.9 KiB) Baixado 61 vezes



Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1226
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: "##/01/####" Lançar dados na coluna janeiro!

Mensagem por Reinaldo » Sáb Dez 13, 2014 4:27 pm

Para utilização desse calendário, é preciso em seu formulário:
Cópiar para o seu projeto, o modulo de classe chamado -->DateTimePicker,
Copiar ou transcrever o trecho de código do evento --> Private Sub UserForm_Initialize() e adapta-lo ao nome de seu combobox.
A variável DTP4 está declarada como Private no modulo do formulário, assim poderá ser utilizada em qualquer em qualquer rotina dentro desse modulo.
Para utiliza-la em outros módulos (como no seu projeto), pode-se mudar essa declaração para um modulo no local de módulos gerais e declara-la como publica; ou
como fiz no seu exemplo, declarar nos módulos gerais uma variável global (ou publica), e atribuir-lhe o valor na rotina que utiliza para lançar os dados.

Veja no seu modelo
Anexos
EXEMPLO2.zip
(74.65 KiB) Baixado 68 vezes


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

Tolentino
Colaborador
Colaborador
Mensagens: 28
Registrado em: Sex Out 24, 2014 3:27 pm

Re: "##/01/####" Lançar dados na coluna janeiro!

Mensagem por Tolentino » Dom Dez 14, 2014 10:26 am

Obrigado cara... consegui fazer aqui... em breve disponibilizo o modelo



Tolentino
Colaborador
Colaborador
Mensagens: 28
Registrado em: Sex Out 24, 2014 3:27 pm

Re: "##/01/####" Lançar dados na coluna janeiro!

Mensagem por Tolentino » Dom Dez 14, 2014 12:51 pm

Será que seria muita função colocar controles para eu conseguir editar e apagar esses dados lançados??



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder