Necesito anotar una canatidad en un userform luego que me salga un msgbox

para dante...

Hola tengo este código que me sirve para seleccionar celdas y me arroje lo que hay escrita en ellas en otras celdas de otra hoja diferente...

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 Variantrespuesta = MsgBox("Seleccionaste " & Range("B" & Target.Row) & " ¿Este producto necesitas?", vbYesNo + vbExclamation, "ADVERTENCIA")'si la respuesta es NO cancela aquíIf respuesta <> vbYes 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    '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

yo necesito que al preguntarme:

respuesta = MsgBox("Seleccionaste " &amp; Range("B" &amp; Target.Row) &amp; " ¿Este producto necesitas?", vbYesNo + vbExclamation, "ADVERTENCIA")

Entonces me salga algo donde pueda anotar la cantidad del producto y me lo arroje EN OTRA hoja

En estas filas:

'si la celda activa está fuera del rango 18:24 no se ejecuta
If ActiveCell.Row < 18 Or ActiveCell.Row > 24 Then

pero sobre la columna D...

Gracias

1 respuesta

Respuesta
1

La macro pasa 2 datos de la hoja "productos" a la hoja "nuevo servicio a domicilio"

Duda: ¿Ya no quieres que haga eso la macro?

¿O además de eso quieres que te pida una cantidad?

La macro pone lo de B en G, lo de C en L, ¿En qué columna quieres que se ponga la cantidad?

SI además de eso quiero que me pida la cantidad...

en la colomna F...

Hace rato que me estoy matando en eso je je te agradecería tu ayuda...

por cada que seleccione al decir que SI me pregunte la cantidad y esta me coincida con lo que dije que si

Te regreso la macro actualizada

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Act.Por.Dante Amor
    If Intersect(Target, Columns("A")) Is Nothing Then Exit Sub
    'controla que se haya seleccionado 1 sola celda
    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
    '
    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")
    ActiveSheet.Range("F" & ActiveCell.Row) = cantidad
    'precio
    '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").Select
End Sub

Saludos.Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas