none
Repetição da Macro até a Proxima celula vazia RRS feed

  • Pergunta

  • Pessoal tenho mais uma dúvida,

    Estou criando uma macro que precisa fazer o seguinte:

    1º Verificar a diferença entre duas datas e se for menor que 15dias MsgBox(menor que 15)

    2º Se for menor que 10 MsgBox(menor que 10)

    3º Se for menor que 5 MsgBox(Menor que 5)

    porém ela precisa verificar linha a linha até a ultima celula preenchida.

    Alguma ideia?

    Desenhei algo assim, serve para uma linha só:

    Sub CobrarBuyer()

    Dim DataInicial As Date
    Dim DataFinal As Date

    DataInicial = Range("X10")
    DataFinal = Now()

    If DataInicial - DataFinal < 5 Then

    MsgBox ("Menor que 5")

    ElseIf DataInicial - DataFinal < 10 Then

    MsgBox ("Menor que 10")

    ElseIf DataInicial - DataFinal < 15 Then

    MsgBox ("Menor que 15")

    Else: MsgBox ("Maior que 15")


    End If

    End Sub

    Muito obrigado pessoal!!

    sexta-feira, 26 de julho de 2013 18:06

Respostas

  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum.

    ---

    Sobre sua dúvida, experimente o código abaixo:

    Sub CobrarBuyer()
        Dim dteDataInicial As Date
        Dim dteDataFinal As Date
        Dim lngLast As Long
        Dim lngRow As Long
        Dim strMensagem As String
        
        With ActiveSheet
            lngLast = .Cells(.Rows.Count, "X").End(xlUp).Row
            
            'Considerando que dados inicial da linha 10:
            For lngRow = 10 To lngLast
                dteDataInicial = .Cells(lngRow, "X")
                dteDataFinal = Now()
                
                If dteDataInicial - dteDataFinal < 5 Then
                    strMensagem = "Menor que 5."
                ElseIf dteDataInicial - dteDataFinal < 10 Then
                    strMensagem = "Menor que 10."
                ElseIf dteDataInicial - dteDataFinal < 15 Then
                    strMensagem = "Menor que 15."
                Else
                    strMensagem = "Maior que 15."
                End If
                
                MsgBox strMensagem, vbInformation
            Next lngRow
        End With
    
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    sexta-feira, 26 de julho de 2013 21:12
    Moderador