Ayuda macros excel!
Hola! Generalmente no suelo molestar a la comunidad internetera con dudas, pero esta vez estuve horas tratando de descifrar qué es lo que causa el bendito error que me devuelve VB al ejecutar esta macro de Excel. La cuestión es la siguiente: Tengo 2 hojas de cálculo, 1) ListadoNuevo, que contiene una lista de precios que en la columna J (n°10) marca si ha habido un cambio de precio o es un producto nuevo (en ese caso otorga un número mayor que cero: 3 si cambió, 33 si es nuevo, 0 si se mantiene igual). 2) ListadoVariaciones, que es la hoja en la que supuestamente deberían mostrarse los resultados de esta macro. La cuestión es rastrear en Listado nuevo productos (filas) con una celda de columna J cuyo valor sea mayor a 0 (o sea, que haya habido un cambio de precio o ingreso de producto) y copiar esa línea en la hoja ListadoVariaciones. El problema surge al querer usar Cells(...,...) Me dice como si el contenido de la celda fuera nulo -provocando que el bucle IF nunca dé TRUE- cuando no es así (la celda está llena! ), y también, al usar el método Select con Cells, es decir Cells(...,...).Select da error 1004! Les estaría muy agradecido si lograran resolver mi problema. Aquí abajo les copio el código correspondiente. Muchas Gracias!
For N = 2 To 10
'Va a la hoja ListadoNuevo
Sheets("ListadoNuevo").Select
'se fija si la celda corresp a Var (columna J, o sea la col 10)
'de la fila actual es mayor a 0 (o sea, si cambió su precio/es nuevo)
If Cells(N, 10) > 0 Then
'si es así (cambió/es nuevo) selecciona la fila entera, la copia y la
'pega en el listado de variaciones
Worksheets("ListadoNuevo").Rows(N).Select
Selection.Copy
Sheets("ListadoVariaciones").Select
Cells(N, 10).Select
ActiveSheet.Paste
End If
Next N
Sheets("ListadoVariaciones").Select
For N = 2 To 10
'Va a la hoja ListadoNuevo
Sheets("ListadoNuevo").Select
'se fija si la celda corresp a Var (columna J, o sea la col 10)
'de la fila actual es mayor a 0 (o sea, si cambió su precio/es nuevo)
If Cells(N, 10) > 0 Then
'si es así (cambió/es nuevo) selecciona la fila entera, la copia y la
'pega en el listado de variaciones
Worksheets("ListadoNuevo").Rows(N).Select
Selection.Copy
Sheets("ListadoVariaciones").Select
Cells(N, 10).Select
ActiveSheet.Paste
End If
Next N
Sheets("ListadoVariaciones").Select
1 respuesta
Respuesta de Elsa Matilde
1