Visual Basic para Aplicaciones - Depurar paso a paso diferente a Sub

Life is soft - evento anual de software empresarial
 
Vista:

Depurar paso a paso diferente a Sub

Publicado por Ismael (1 intervención) el 17/06/2018 22:37:03
Buenas, estoy haciendo un control de stock mediante Vb en una planilla de excel, la problematica viene cuando yo quiero ejecutar una macro desde su botón.
Cuando uno está en el editor de Vb, y ejecuta Paso a Paso, me da los valores correctos, pero cuando yo lo ejecuto desde un botón, no lo hace.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
strTitulo = "ExcelPregunta"
'
Continuar = MsgBox("Agregar productos nuevos?", vbYesNo + vbExclamation, strTitulo)
If Continuar = vbNo Then Exit Sub
'
Set RangoDatos = ThisWorkbook.Worksheets("Productos").Cells(1, 1).CurrentRegion
'
NuevaFila = RangoDatos.Rows.Count + 1
'
With ThisWorkbook.Worksheets("Productos")
    .Cells(NuevaFila, 3).Value = ThisWorkbook.Sheets("Movimientos").Range("g9")     'Familia
    .Cells(NuevaFila, 4).Value = ThisWorkbook.Sheets("Movimientos").Range("g10")    'Producto
    .Cells(NuevaFila, 5).Value = ThisWorkbook.Sheets("Movimientos").Range("g11")    'Descripción
    .Cells(NuevaFila, 8).Value = ThisWorkbook.Sheets("Movimientos").Range("g13")    '%
    .Cells(NuevaFila, 6).Value = ThisWorkbook.Sheets("Movimientos").Range("g12")    'precio Compra
    .Cells(NuevaFila, 9).Value = ThisWorkbook.Sheets("Movimientos").Range("g14")    'Cantidad
    Contar = Application.CountIf(Range(Cells(7, 3), Cells(NuevaFila, 3)), ThisWorkbook.Worksheets("Productos").Cells(NuevaFila, 3))
    .Cells(NuevaFila, 2).Value = ThisWorkbook.Worksheets("Productos").Cells(NuevaFila, 3).Value & "00" & Contar        'Código
End With

Eso hace para copiar datos y agregarlos a una planilla de control de stock, pero a la vez quiero que genere un nuevo código para tener un orden de los productos. Cuenta los productos de la misma familia y genera un código, ej. Sonido001, el siguiente, Sonido002. Pero al ejecutar con un botón desde la hoja, solo me escribe Sonido000 y el siguiente Sonido000.

Espero que se entienda mi problema. No encuentro el error y no doy con la solución.
Muchas gracias :)
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 Antoni Masana
Val: 1.101
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Depurar paso a paso diferente a Sub

Publicado por Antoni Masana (374 intervenciones) el 18/06/2018 14:01:18
Para depurar paso a paso ves a las primera linea ejecutable de la macro y pulsa F9, cuando la ejecutes desde el boton se detendrá en esa línea y podrás seguir paso a paso.

Por otro lado veo que en la línea 17 del código que hay una referencia a un rango y no se especifica la hoja, debe tomar la hoja activa y viendo el código debe ser la del botón, si que esta en una hoja y no en un formulario.

1
...CountIf(Range(Cells(7, 3), Cells(NuevaFila, 3)), ThisWorkbook....

Si este no es el problema con los datos que aportas es difícil ayudarte más.

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