(Continuación) clic a celda de una hoja y me acomode los datos en otra hoja

Dan recietemente me brindaste tu ayuda..

Quisiera ver si se puede adaptar el código antes proporcionado..

tengo 5 columnas en mi hoja A,C,D,E,F

Quisiera que el código que me proporcionaste se active al poner algún NUMERO en las filas 7:900 de esas columnas en especifico

Esto quiere decir que:

Si yo pongo en A500 algún numero este me llame el código y en el imputbox de cantidad me ponga el numero que yo puse en A500,

Suponiendo que continuo (capturando)

Pongo 25 en la celda A256 entonces el código se activa sale el imputbox en la caja de texto aparece 25 y solo agrego la fecha...

Continuo... Y en F500 pongo otra cantidad y se repite el mismo procedimiento antes mencionado..

Así así hasta que me salga:

If existe = False Then
MsgBox "Ya no hay filas para ingresar productos.", vbCritical, "ERROR"
Exit Sub

Solo en esas columnas

Solo si pongo números se active

1 Respuesta

Respuesta
2

Te anexo la macro actualizada

Private Sub Worksheet_Change(ByVal Target As Range)
'Act.Por.Dante Amor
    'ActiveWindow.DisplayVerticalScrollBar = False
    'ActiveWindow.DisplayHorizontalScrollBar = False
    'ExecuteExcel4Macro ("show.toolbar(""ribbon"",1)")
    If Intersect(Target, Range("A7:A900,C7:F900")) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    If Not IsNumeric(Target) Then Exit Sub
    '
    Set h1 = Sheets("REP X TURNO")
    existe = False
    For i = 10 To 23
        If h1.Cells(i, "I") = "" 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
    cantidad = Application.InputBox("Cantidad: ", "Ingresar", Target)
    If cantidad = 0 Or cantidad = "" Then Exit Sub
    '
    fecha = InputBox("Ingresa fecha: ")
    If fecha = 0 Or fecha = "" Then Exit Sub
    '
    h1.Unprotect "28021990"
    h1.Cells(i, "I") = cantidad & " " & Cells(Target.Row, "B") 'Cantidad y producto
    h1.Cells(i, "L") = fecha                                   'Fecha
    h1.Cells(i, "F") = Cells(Target.Row, "C") * cantidad       'Cantidad * precio
    h1.Protect "28021990"
End Sub

S a l u d o s .

Hola dan..

Si me funciono :D

Solo cuando le doy a la tecla BORRAR (osea la flechita hacia atrás) se ejecuta el código... aunque ya haya borrado la cantidad...

¿Hay alguna manera que el imputbox de fecha agarre el valor dependiendo de la columna que me encuentra situado?

Por ejemplo:

Si estoy en A100 se ejecuta el código y el imputbox de fecha agarra el valor de A1 (aquí hay valor de fecha)

Si estoy en C500 el imputbox de fecha agarra el valor de C1 (aquí hay valor de fecha)

De todo lo demás esta EXCELENTE eres un genio!

La macro se ejecuta siempre que modifiques una celda de las columnas A, y C a la F, ya sea que la borres o la modifiques o la agregues.

Macro actualizada:

Private Sub Worksheet_Change(ByVal Target As Range)
'Act.Por.Dante Amor
    'ActiveWindow.DisplayVerticalScrollBar = False
    'ActiveWindow.DisplayHorizontalScrollBar = False
    'ExecuteExcel4Macro ("show.toolbar(""ribbon"",1)")
    If Intersect(Target, Range("A7:A900,C7:F900")) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    If Not IsNumeric(Target) Then Exit Sub
    '
    Set h1 = Sheets("REP X TURNO")
    existe = False
    For i = 10 To 23
        If h1.Cells(i, "I") = "" 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
    cantidad = Application.InputBox("Cantidad: ", "Ingresar", Target)
    If cantidad = 0 Or cantidad = "" Then Exit Sub
    '
    fecha = Application.InputBox("Ingresa fecha: ", "INGRESAR", Cells(1, Target.Column))
    If fecha = 0 Or fecha = "" Then Exit Sub
    '
    h1.Unprotect "28021990"
    h1.Cells(i, "I") = cantidad & " " & Cells(Target.Row, "B") 'Cantidad y producto
    h1.Cells(i, "L") = fecha                                   'Fecha
    h1.Cells(i, "F") = Cells(Target.Row, "C") * cantidad       'Cantidad * precio
    h1.Protect "28021990"
End Sub

S a l u d o s

Cuando agarra el valor de la fecha este lo agarra formato números..

¿Cómo lo puedo transformar?

fecha = Application.InputBox("Ingresa fecha: ", "INGRESAR", Format(Cells(1, Target.Column), "dd/mm/yyyy"))

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas