Hola como hacer, al llegar a un rango y hasta no cambiar la fecha del mes, no permita seguir

Buenos días, Dam, tengo una hoja en Excel que cuando oprimo un botón para cambiar de mes me pone la ultima fila de mes anterior en la primera del mes actual, los rangos van desde la fila 4 hasta la fila 36, pero sucede que cuando ingreso datos desde el formulario, se pasa la fila 36 y me esta dañando los totales que tengo en la fila 36.
Lo que quiero hacer es que al grabar el ultimo registro de la ultima celda de cada mes, me mande un mensaje recordándome que debo oprimir el botón para crear el nuevo mes porque va a cambia la fecha, y hasta no crear el nuevo mes, no me permita continuar trabajando. Muchas gracias por su colaboración

1 Respuesta

Respuesta
1

Cambia el código del botón agregar registro (Private Sub CommandButton1_Click())

Por el siguiente código:

Private Sub CommandButton1_Click()
'Por.DAMxxxx
u1 = Range("B" & Rows.Count).End(xlUp).Row
u2 = Range("A" & Rows.Count).End(xlUp).Row
If u1 - 1 = u2 Then
    MsgBox "No puedes crear más registros, hasta crear el nuevo mes"
    ComboBox1.SetFocus
    Exit Sub
End If
If ComboBox1 = "" Then
    MsgBox "Elija de la lista un numero de placa", vbCritical, "REGISTRO DE PLACA"
    ComboBox1.SetFocus
    Exit Sub
End If
If TextBox2 = "" Then
    MsgBox "Digite el valor", vbCritical, "REGISTRO TARIFA DIARIA"
    TextBox2.SetFocus
    Exit Sub
End If
If ComboBox2 = "" Then
    MsgBox "Seccione el nombre del conductor", vbCritical, "REGISTRO NOMBRE CONDUCTOR"
    ComboBox2.SetFocus
    Exit Sub
End If
If TextBox4 = "" Then
    MsgBox "Digite el valor", vbCritical, "REGISTRO AHORRO DIARIO"
    TextBox4.SetFocus
    Exit Sub
End If
If TextBox5 = "" Then
    MsgBox "Digite el kilometraje para continuar", vbCritical, "REGISTRO KILOMETRAJE"
    TextBox5.SetFocus
    Exit Sub
End If
Set col = Rows(3).Find(ComboBox1)
uf = Sheets("Hoja2").Cells(Rows.Count, col.Column + 1).End(xlUp).Row + 1
Cells(uf, col.Column) = TextBox2
Cells(uf, col.Column + 1) = ComboBox2
Cells(uf, col.Column + 2) = TextBox4
Cells(uf, col.Column + 3) = TextBox5
If uf = 5 Then
    'para los 5,000
    valor = Cells(uf, col.Column + 3) - Cells(uf - 1, col.Column + 3)
    If valor >= 5000 Then
        MsgBox "5.000 KLM.Ya es tiempo de cambiar el aceite de motor de este vhiculo"
    End If
    Cells(uf, col.Column + 4) = valor
    'para los 50,000
    valor2 = Cells(uf, col.Column + 3) - Cells(uf - 1, col.Column + 3)
    If valor2 >= 50000 Then
        MsgBox "50.000 KLM.Ya es tiempo de cambiar la correa del tiempo de este vhiculo", vbCritical, "Realize el cambio de correa ahora"
    End If
    Cells(uf, col.Column + 5) = valor2
Else
    'para los 5,000
    If Cells(uf - 1, col.Column + 4) >= 5000 Then
        valor = Cells(uf, col.Column + 3) - Cells(uf - 1, col.Column + 3)
    Else
        valor = Cells(uf, col.Column + 3) _
            - Cells(uf - 1, col.Column + 3) _
            + Cells(uf - 1, col.Column + 4)
    End If
    If valor >= 5000 Then
        MsgBox "5.000 KLM.Ya es tiempo de cambiar el aceite de motor de este vhiculo"
    End If
    Cells(uf, col.Column + 4) = valor
    'para los 50,000
    If Cells(uf - 1, col.Column + 5) >= 50000 Then
        valor2 = Cells(uf, col.Column + 3) - Cells(uf - 1, col.Column + 3)
    Else
        valor2 = Cells(uf, col.Column + 3) _
            - Cells(uf - 1, col.Column + 3) _
            + Cells(uf - 1, col.Column + 5)
    End If
    If valor2 >= 50000 Then
        MsgBox "50.000 KLM.Ya es tiempo de cambiar la correa del tiempo de este vhiculo", vbCritical, "Realize el cambio de correa ahora"
    End If
    Cells(uf, col.Column + 5) = valor2
End If
'carga listbox
'Por.DAM
ListBox1.ColumnCount = 7
ListBox1.AddItem Date
ListBox1.List(ListBox1.ListCount - 1, 1) = TextBox2
ListBox1.List(ListBox1.ListCount - 1, 2) = ComboBox2
ListBox1.List(ListBox1.ListCount - 1, 3) = TextBox4
ListBox1.List(ListBox1.ListCount - 1, 4) = TextBox5
ListBox1.List(ListBox1.ListCount - 1, 5) = valor
ListBox1.List(ListBox1.ListCount - 1, 6) = valor2
Label20.Caption = "Control Cambio Aceite,Este Vehiculo:" & Format(ListBox1.List(ListBox1.ListCount - 1, 5), " #,##0.Km")
Label21.Caption = "Control Correa Tiempo,Este Vehiculo:" & Format(ListBox1.List(ListBox1.ListCount - 1, 6), " #,##0.Km")
'limpa el formulario
Me.ComboBox1.Value = ""
Me.TextBox2.Value = ""
Me.ComboBox2.Value = ""
Me.TextBox2.Value = ""
Me.TextBox4.Value = ""
Me.TextBox5.Value = ""
ComboBox1.SetFocus
u2 = Range("A" & Rows.Count).End(xlUp).Row
If u1 - 1 = u2 Then
    MsgBox "Recordatorio: debes oprimir el botón para crear el nuevo mes"
    ComboBox1.SetFocus
    Exit Sub
End If
End Sub

Saludos.DAM

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas