Vídeo recomendado
https://youtu.be/diWPPPhW-9E

"##/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: 29
Registrado em: Sex Out 24, 2014 3:27 pm

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

Mensagem por Tolentino »

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: 1537
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 »

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?


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

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

Mensagem por Tolentino »

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: 29
Registrado em: Sex Out 24, 2014 3:27 pm

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

Mensagem por Tolentino »

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 264 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: 1537
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 »

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


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

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

Mensagem por Tolentino »

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: 29
Registrado em: Sex Out 24, 2014 3:27 pm

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

Mensagem por Tolentino »

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 252 vezes


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
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 »

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 279 vezes


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

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

Mensagem por Tolentino »

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


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

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

Mensagem por Tolentino »

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