Notifications
Clear all

Looping, identificar, alimentar e imprimir

7 Posts
1 Usuários
0 Reactions
1,617 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Oi senhores, eu de novo no meu aprendizado Em VBA =)

Estou com uma planilha em que ela tem um pequeno banco de dados e uma mascara que tem que ser impressa.
cada linha tem os campos onde ela tem que jogar os dados na aba mascara. o primeiro campo é o dia do pagamento.
Eu preciso identificar o dia do pagamento e pegar os dados da linha jogar na mascara e imprimir somente daquele dia.

Como sou iniciante no VBA, não sei fazer esse looping de identificar linha por linha e se for a data pegar as informações da linha preencher a mascara e impimir.

Se puderem me ajudar. to mandando um arquivo com uma mascara parecida.

desde já agradeço a ajuda

 
Postado : 31/01/2012 12:45 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Gostaria de mais detalhes;
Minhas Dúvidas:
Onde é identificado o Dia do Pgto
Qual o evento que inicia a impressão ? Algum Botão
O que vai em cada campo DATA ?

Veja no anexo se os campos do BD estão nos locais (células) corretos na Mascará

 
Postado : 03/02/2012 9:13 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

O dia do pagamento é identificado na primeira coluna da aba banco de dados

o evento que faria o looping é apertar um botão "imprimir cartas" ou algo assim. Todos os dias.
exemplo "se hoje é dia 04/02, a macro verificaria a coluna dia do pagamento e imprimiria só o daquele dia"

o campo DATA na mascara "B7" é a data "HOJE()"

espero que eu tenha explicado direitinho ^^

 
Postado : 04/02/2012 7:24 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ficou um pouco confuso, mas a rotina abaixo Busca na aba "Banco de Dados" coluna "Dia do Pagamento" os dias Iguais a a celula B7, lembrando que da forma que está me basiei que acoluna esteja em ordem de dia.
É só adaptar para trazer os dados paraos campos e mandar imprimir, assim será impresso todos os dias que coincidirem.

Sub VerificaData()
    Dim MyDate, MyDay, sDia
    Dim LR
    Dim i
    Dim BD As Worksheet
    
    MyDate = [B7]
    MyDay = Day(MyDate)

    Set BD = Sheets("Banco de Dados")

            LR = BD.Cells(Rows.Count, 2).End(xlUp).Row
               
            For i = 3 To LR
                
                sDia = BD.Cells(i, 2).Value
                    
                    If MyDay = sDia Then
                        MsgBox "Dia Pagamento = a : " & sDia
                        'Coloque aqui as instruções para preencher as celulas
                        'e imprimir
                    Else
                        Exit Sub
                    End If
                    
            Next

End Sub

[]s

 
Postado : 04/02/2012 10:26 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Acho que sou muito burro, porque eu não consegui montar um jeito de alimentar a mascara com as variáveis =(

 
Postado : 06/02/2012 5:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Completando o codigo passado pelo Mauro:

Sub VerificaData()
    Dim MyDate As Date, MyDay As Long, sDia As Long
    Dim LR As Long
    Dim i As Long
    Dim BD As Worksheet
   
    MyDate = [B7]
    MyDay = Day(MyDate)

    Set BD = Sheets("Banco de Dados")

            LR = BD.Cells(Rows.Count, 2).End(xlUp).Row
               
            For i = 3 To LR
               
                sDia = BD.Cells(i, 2).Value
                   
                    If MyDay = sDia Then
                        'MsgBox "Dia Pagamento = a : " & sDia
                        Cells(4, 3) = BD.Cells(i, 3).Value
                        Cells(4, 6) = BD.Cells(i, 4).Value
                        Cells(9, 4) = BD.Cells(i, 10).Value
                        Cells(10, 4) = BD.Cells(i, 5).Value
                        Cells(10, 7) = BD.Cells(i, 6).Value
                        Cells(11, 4) = BD.Cells(i, 7).Value
                        Cells(12, 4) = BD.Cells(i, 8).Value
                        Cells(12, 7) = BD.Cells(i, 9).Value
                        Cells(14, 4) = BD.Cells(i, 11).Value
                        Cells(16, 4) = BD.Cells(i, 12).Value
                        Cells(18, 4) = BD.Cells(i, 13).Value

                        ActiveWindow.SelectedSheets.PrintOut copies:=1, _
                        ActivePrinter:=True, collate:=True, ignoreprintareas:=False
                    Else
                    'Exit Sub
                    End If
                                   
            Next

'Limpa os campos da mascara
                        Cells(4, 3) = ""
                        Cells(4, 6) = ""
                        Cells(9, 4) = ""
                        Cells(10, 4) = ""
                        Cells(10, 7) = ""
                        Cells(11, 4) = ""
                        Cells(12, 4) = ""
                        Cells(12, 7) = ""
                        Cells(14, 4) = ""
                        Cells(16, 4) = ""
                        Cells(18, 4) = ""

End Sub
 
Postado : 06/02/2012 2:14 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Funcionou valeu Mauro e Reinaldo! joinha pra vocês :D

 
Postado : 07/02/2012 4:40 pm