Macro para pocisionar en celda vacía e insertar datos...

Hola tengo otro problema :C

Este código em funciona de maravilla

Private Sub Worksheet_SelectionChange(ByVal Target As Range)'x Elsamatilde'controla que se esté seleccionando celda en col AIf Intersect(Target, Columns("a")) Is Nothing Then Exit Sub'controla que se haya seleccionado 1 sola celdaIf Target.Count > 1 Then Exit SubDim respuesta As Variantcantidad = InputBox("Si estás seguro, captura la cantidad:", "Seleccionaste: " & Range("B" & Target.Row)) Range("B2").SelectIf cantidad = 0 Or cantidad = "" Then Exit Sub  Application.ScreenUpdating = False  Sheets("NUEVO SERVICIO A DOMICILIO").Select  'si la celda activa está fuera  del rango 18:24 no se ejecuta  If ActiveCell.Row < 18 Or ActiveCell.Row > 24 Then      MsgBox "Ya no hay filas para ingresar productos.", , "ERROR"      'EVALUA AQUÍ A QUÉ HOJA REGRESAR      Exit Sub  End If  'ya estará la celda destino seleccionada    'desprotejo    ActiveSheet.Unprotect "28021990"    'ActiveSheet.Range("D" & ActiveCell.Row) = Cells(Target.Row, "A")    'clave    ActiveSheet.Range("G" & ActiveCell.Row) = Cells(Target.Row, "B")                     'producto    ActiveSheet.Range("L" & ActiveCell.Row) = Cells(Target.Row, "C") 'precio      ActiveSheet.Range("F" & ActiveCell.Row) = cantidad    'se vuelve a proteger    ActiveSheet.Protect "28021990"    'pasar a la fila sgte para seguir agregando productos a hoja NOTA    ActiveCell.Offset(1, 0).Select    'vuelvo a la hoja VER PRODUCTO    Sheets("PRODUCTOS").SelectEnd Sub

el problema que tengo es que si no estoy situado en la celda F18 vacia este me arroja

 MsgBox "Ya no hay filas para ingresar productos.", , "ERROR"

Se pudiese que en

'en el rango F18:24 si esta alguna de esas celdas vacías este me permita continuar con el código y en caso de LLENAR el rango ahora si me salga:

 MsgBox "Ya no hay filas para ingresar productos.", , "ERROR"

1 respuesta

Respuesta
1

Te anexo la macro con los cambios

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Act.Por.Dante Amor
    If Intersect(Target, Columns("A")) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    cantidad = InputBox("Si estás seguro, captura la cantidad:", "Seleccionaste: " & Range("B" & Target.Row))
    If cantidad = 0 Or cantidad = "" Then Exit Sub
    Application.ScreenUpdating = False
    existe = False
    '
    Set h2 = Sheets("NUEVO SERVICIO A DOMICILIO")
    For I = 18 To 24
        If h2.Cells(I, "F") = "" Then
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        MsgBox "Ya no hay filas para ingresar productos.", vbCritical, "ERROR"
        Exit Sub
    End If
    'desprotejo
    h2.Unprotect "28021990"
    h2.Cells(I, "G") = Cells(Target.Row, "B") 'producto
    h2.Cells(I, "L") = Cells(Target.Row, "C") 'precio
    h2.Cells(I, "F") = cantidad
    h2.Protect "28021990"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas