Visual Basic para Aplicaciones - Como aplicar un código a las demás Celdas

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 6 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Como aplicar un código a las demás Celdas

Publicado por Julian David (1 intervención) el 28/11/2019 17:22:29
Cordial Saludo,

agradezco me puedan colaborar con lo siguiente,

Necesito en una tabla de excel que cuando un proceso lleva mas de 12 días sin tener ok, entonces que me envie un mensaje de alerta donde me indique que esta retrasado y ademas cual es el numero del paquete que esta retrasado. Mirando en muchas Web me encontré con este código

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub recordatorio()
    Dim fechaActual As Date
    Dim fechaReferencia As Date
    Dim diasAnticipados As Integer
    Dim diasDiferencia As Integer
    Dim mensaje1 As String
    Dim mensaje2 As String
 
    fechaActual = Date
    fechaReferencia = Sheets("Hoja1").Cells(2, 4)
    diasAnticipados = Sheets("Hoja1").Cells(2, 5)
    mensaje1 = Sheets("Hoja1").Cells(2, 6)
    mensaje2 = Sheets("Hoja1").Cells(2, 1)
 
    diasDiferencia = DateDiff("d", fechaActual, fechaReferencia)
 
    If diasDiferencia = diasAnticipados Then
    If Cells(2, 8) = ok Then
    MsgBox mensaje1, vbCritical
    MsgBox mensaje2, vbCritical
    End If
    End If
End Sub


en realidad este me sirve pero solamente para una celda, necesito aplicarlo aproximadamente para 10mil celdas hacia abajo, no se como hacerlo, les agradezco me puedan colaborar.

Mil Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Como aplicar un código a las demás Celdas

Publicado por Antoni Masana (498 intervenciones) el 29/11/2019 19:50:47
En realidad esta macro trabaja sobre 5 celdas y supongo que cuando hablas de 10mil celdas te refieres a 10,000 Filas mas o menos.

Parto de la suposición que todas las filas tienen texto en la columna A, de lo contrario cambia la columna del While

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub recordatorio()
    Dim fechaActual As Date
    Dim fechaReferencia As Date
    Dim diasAnticipados As Integer
    Dim diasDiferencia As Integer
    Dim mensaje1 As String
    Dim mensaje2 As String, Fila as Long
 
    fechaActual = Date
    Fila=2
    With Sheets("Hoja1")
        While .Cells(Fila,1) <> ""
            fechaReferencia = .Cells(Fila, 4)
            diasAnticipados = .Cells(Fila, 5)
            mensaje1 = .Cells(Fila, 6)
            mensaje2 = .Cells(Fila, 1)
 
            diasDiferencia = DateDiff("d", fechaActual, fechaReferencia)
 
            If diasDiferencia = diasAnticipados Then
                If .Cells(Fila, 8) = ok Then
                    MsgBox mensaje1, vbCritical
                    MsgBox mensaje2, vbCritical
                End If
            End If
            Fila = Fila + 1
        Wend
    End With
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar