Compras parceladas ...
 
Notifications
Clear all

Compras parceladas lançadas na vertical

14 Posts
6 Usuários
0 Reactions
3,179 Visualizações
(@tonilanis)
Posts: 0
New Member
Topic starter
 

Preciso de uma grande ajuda. Encontrei em pesquisa pela web este modelo que lança valores de compra parceladas (já fiz algumas alterações - vide planilha adaptada).
Não entendo de VBA, estou tentando aprender. Não sei como fazer para que ela de fato venha me atender plenamente.
O que preciso (e a Plan1 originalmente não faz) é que toda vez que eu fizer um lançamento, este novo lançamento seja feito na primeira linha em branco logo após a última que esta preenchida, exatamente como esta preenchida manualmente a planilha "Adaptada" por mim. O UserForm da planilha adaptada eu redesenhei, mas programar... não dei conta.
Note que desejo que quando eu fizer um outro lançamento (uma outra compra parcelada) ela seja lançada na linha abaixo, repetindo tantas vezes quantas forem o número de parcelas, ou seja: o cartão a que se refere a compra (coluna b), a data da compra (coluna c), o credor (coluna d), o comprador (coluna e). Quem define quantas vezes se dará a repetição nestas colunas é a quantidade de parcelas.
Da forma como eu desejo, seria ideal porque na coluna "status", posso fazer a exclusão (ou remoção para uma outra planilha) à medida em que forem sendo pagas e manter atualizado os valores devidos em cada cartão mês a mês.
Alguém poderia me ajudar nisso?

 
Postado : 01/11/2015 12:43 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

toni, não cheguei a alterar o nomes dos controles, assim segue a rotina, veja se seria isto:

Acrescentei a instrução para preencher o Combobox referente aos Cartões, ajuste com os nomes que pretende:

Private Sub UserForm_Initialize()

    With ComboBox1
        .AddItem "Cartão 1"
        .AddItem "Cartão 2"
        .AddItem "Cartão 3"
        End With
End Sub

Na rotina referente ao Botão Lançar, troque pela a abaixo :

Private Sub btnLancar_Click()
    Dim Linha
    Dim Coluna

    Coluna = 2 'Coluna
    
    Dim Ultimalinha As Long
    Ultimalinha = Sheets("Adaptada").Range("B1048576").End(xlUp).Row + 1
    
    'O Menos 1 é para colocar o vencimento atual
    'Se tirar será colocado o proximo Vencimento
    sQdeParc = txtQdeParcelas - 1

    For x = 0 To sQdeParc

        If IsDate(Me.txtPrimVenc) And IsNumeric(x) Then
            
            Cells(Ultimalinha, Coluna) = ComboBox1.Value 'cartao col 2
            Cells(Ultimalinha, Coluna + 1) = DateAdd("m", x, Me.TextBox4) 'TextBox4 'Data Compra col 3
            Cells(Ultimalinha, Coluna + 2) = TextCredor.Value 'Credor col 4
            Cells(Ultimalinha, Coluna + 3) = TextComprador.Value 'Comprador col 5
            Cells(Ultimalinha, Coluna + 4) = x + 1 'Qde das parcelas col 6
            Cells(Ultimalinha, Coluna + 5) = DateAdd("m", x, Me.txtPrimVenc) 'Vencimentos col 7
            Cells(Ultimalinha, Coluna + 6) = Format(txtValorParc, "#,##0") 'Valor das Parcelas col 8
       
            Ultimalinha = Ultimalinha + 1
           
        End If
        
    Next x

End Sub

Façs os testes e qualquer duvida retorne.

 
Postado : 01/11/2015 4:34 pm
(@messiasmbm)
Posts: 0
New Member
 

Esse código seleciona a ultima linha de sua planilha.

  
 Dim ultimALINHA
   Sheets("Adaptada").Select
ultimALINHA = Sheets("Adaptada").Range("C1000000").End(xlUp).Row
 Sheets("Adaptada").Range("B" & ultimALINHA + 1).Select
 
Postado : 01/11/2015 4:38 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

tonilanis,

Boa Noite!

Segue aqui mais uma sugestão.

Veja que criei um outro formulário somente para pesquisas, pois, do ponto de vista de design, não é padrão você ter no mesmo local onde fará os cadastros, a pesquisa junto.

Está tudo funcional. Veja se assim lhe atende.

 
Postado : 01/11/2015 5:03 pm
(@setti)
Posts: 0
New Member
 

ai vai

 
Postado : 02/11/2015 7:24 am
(@marciobin)
Posts: 0
New Member
 

ai vai

Muito bom

 
Postado : 04/11/2015 5:47 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Marcio bin

Em vez de postar comentário, clique na mãozinha das respostas que você considerou úteis, que o autor irá ver que você agradeceu, portanto, achou útil a resposta.

Sempre que considerar uma resposta útil, clique na mãozinha, para incentivar os colaboradores a continuarem colaborando, afinal, fazem isso gratuitamente.

[]s

 
Postado : 04/11/2015 1:58 pm
(@marciobin)
Posts: 0
New Member
 

Ok senhores ,

 
Postado : 05/11/2015 4:23 am
(@tonilanis)
Posts: 0
New Member
Topic starter
 

Wagner Morel, sua solução me parece a mais adequada, porém aqui apresentou erro em

Private Sub UserForm_Initialize()
'Exibe a data atual no campo Data da Compra
Txt_DataDaCompra.Text = Format(Date, "dd/mm/yyyy")
End Sub

Não carregou o formulário para eu testar. A mensagem de erro de compilação e diz: "É impossível localizar o projeto ou a biblioteca."

 
Postado : 05/11/2015 8:58 pm
(@tonilanis)
Posts: 0
New Member
Topic starter
 

Mauro Coutinho, agradeço a tua colaboração. Tentei aqui dar funcionalidade no campo do comprador seguindo sua colaboração dada para a ComboBox1, mas não funcionou. Alguma dica?

 
Postado : 05/11/2015 9:27 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Toni, quanto ao erro que mencionou no modelo do Wagner, na janela do VBA acesse o Menu "Ferramentas / Referências" e desabilite todas as caixas que estiverem com a indicação de "AUSENTE", salve o arquivo e execute novamente.

Quanto a "dar funcionalidade no campo do comprador seguindo sua colaboração dada para a ComboBox1", se entendi corretamente, o controle "Comprador" em seu modelo é um TextBox, mas se está querendo preenche-lo da forma que está sendo carregado o "ComboBox1 - Cartão", delete o TextBox (Comprador) e adicione um Combobox no lugar, supondo que o mesmo fique com o nome de "ComboBox2", troque a rotina que inicia o formulário pela a abaixo :

Private Sub UserForm_Initialize()
    
    'Combo Cartões
    With ComboBox1
        .AddItem "Cartão 1"
        .AddItem "Cartão 2"
        .AddItem "Cartão 3"
    End With
        
    'Combo Compradores
    With ComboBox2
        .AddItem "Comprador 1"
        .AddItem "Comprador 2"
        .AddItem "Comprador 3"
    End With
        
End Sub

[]s

 
Postado : 05/11/2015 9:55 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Aqui está funcionando muito bem!

Qual é a versão do Excel que você está utilizando?

 
Postado : 06/11/2015 10:27 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Wagner, eu utilizo o excel 2007 e da o mesmo erro, então tive de desabilitar nas Referências a opção "AUSENTE:Ref Edit Control", e o erro se da na linha incial do Txt_DataDaCompra.Text = Format(Date, "dd/mm/yyyy")

 
Postado : 06/11/2015 11:17 am
(@tonilanis)
Posts: 0
New Member
Topic starter
 

Mauro Coutinho, fiz o que indicou e deu certo agora. Só estou tentando agora fazer com que a combox1 habilite o botão ok no formulário de cadastro. Se eu não conseguir, vou ter que recorrer aos mestres deste fórum. Por hora grato a todos.

 
Postado : 08/11/2015 2:38 pm