Página 1 de 1

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

Enviado: Sex Dez 12, 2014 10:28 am
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

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

Enviado: Sex Dez 12, 2014 1:01 pm
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?

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

Enviado: Sex Dez 12, 2014 1:43 pm
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..

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

Enviado: Sex Dez 12, 2014 2:06 pm
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.

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

Enviado: Sex Dez 12, 2014 4:59 pm
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

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

Enviado: Sex Dez 12, 2014 6:44 pm
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???

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

Enviado: Sex Dez 12, 2014 8:31 pm
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..

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

Enviado: Sáb Dez 13, 2014 4:27 pm
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

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

Enviado: Dom Dez 14, 2014 10:26 am
por Tolentino
Obrigado cara... consegui fazer aqui... em breve disponibilizo o modelo

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

Enviado: Dom Dez 14, 2014 12:51 pm
por Tolentino
Será que seria muita função colocar controles para eu conseguir editar e apagar esses dados lançados??