Visual Basic para Aplicaciones - aplicacion de rangos

Life is soft - evento anual de software empresarial
 
Vista:

aplicacion de rangos

Publicado por betty (1 intervención) el 07/02/2019 20:02:44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Alerta1()
 
Dim r_1 As Range
Dim FechaActual As Date
Dim mensaje As String
Set r_1 = Sheets("Hoja1").Range("A2:m" & Ultimafila)
FechaActual = Date
 
If Hoja1.Range("A2") <> "" Then
For Each r_1 In Hoja1.Range("A2", Hoja1.Range("A1").End(xlDown))
Next r_1
End If
 
If FechaActual = r_1.Offset(0, 4) Then
mensaje = mensaje & r_1 & r_1.Offset(0, 1) & vbNewLine
End If
 
If mensaje <> "" Then
MsgBox mensaje, vbCritical, "Vencimiento de plazo de Entrega de documentos"
End If
 
End Sub
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 MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

aplicacion de rangos

Publicado por MIGUEL (121 intervenciones) el 07/02/2019 23:49:41
Bien antes que nada respiro profundo y busco las palabras menos rasposas para comentar lo siguiente:
En primera Alerta1 es un nombre ambiguo para vba tienes que cambiar el nombre del procedimiento, en el set estas asignando una variable que no existe que es Ultimafila, el for esta mal redactado seria "for each celda in r_1" , lo demas esta mucho peor redactado

Segun Yo y mis calculos basados en los offset que pones, la columna que contiene la fecha que deseas comparar esta en la columna "D" la cual se asigna a la variable fecha, la columna que contiene el nombre de la empresa o persona o lo que sea que quieras mostrar es la "B" que es la que se asigna al mensaje,si no son las columnas que contienen los datos buscados se las puedes cambiar, si no pues nos dices y ya te ayudamos


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub VencimientoDocumentacion()
Dim FechaActual As String
Dim fecha As String
Dim Ultimafila As Long
Dim mensaje As String
Ultimafila = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
FechaActual = Date
For i = 2 To Ultimafila
    fecha = Sheets("Hoja1").Cells(i, 5)
    If DateValue(fecha) = DateValue(FechaActual) Then
        If i = 2 Then
            mensaje = Sheets("Hoja1").Cells(i, 2)
        Else
            mensaje = mensaje & vbNewLine & Sheets("Hoja1").Cells(i, 2)
        End If
    End If
Next i
      If mensaje <> "" Then
        MsgBox "Lista Que vence Hoy" & vbNewLine & mensaje, vbOKOnly + vbExclamation, "Vencimiento de plazo de Entrega de documentos"
      Else
        MsgBox "No Hay Vencimientos Hoy", vbOKOnly + vbInformation, "Vencimiento de plazo de Entrega de documentos"
      End If
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
0
Comentar