Problema con MACRO de excel

Mi problema es que quiero hacer una macro y no se como pausarla para continurla más adelante.
Lo que quiero hacer es marcar una referencia relativa y luego otra para que cuando pique en la primera me haga ambas al mismo tiempo.Lo que me hace ahora es marcarme la primera como relativa y todas las demás como absolutas.
El botón pausar no le encuentro por ninguna parte, no se utilizar el visual basic.
Tengo unos apuntes en los que aparece un botón que pone grabar desde marca y no doy con el.
Mi version es la 2000.
Gracias
Respuesta
1
Por lo que comentas esa utilidad estaba disponible en versiones anteriores al Office 2000 a partir de esta version se pueden utilizar puntos de interrupción en el código, pero realmente se utiliza más para depurar código que para trabajar con la macro directamente. Para realizar lo que me comentas necesitaría tener más información para saber realmente que quieres hacer es decir si quieres ejecutar parcilamente una macro o que una llame a otra .. etc
Amplíame la información para ver si te puedo ayudar.
Mi problema es que quería pausar una macro para hacer otras operaciones y luego continuarla.
POR EJEMPLO QUIERO QUE cuando se me cumpla una condición se me elimine una fila por ejemplo.
¿Cómo se haría?
Por lo que me expones creo que lo que necesitas es que cuando se cumpla una condición la macro deje de funcionar o se pause.
En una hoja de calculo en la columna A inserta valores y letras indistintamente en distintas celdas, si las celdeas son números los multiplicara por 10 si son letras no hará nada a no ser que en ella este escrito destino entonces eliminara la fila, cuando se encuentre una celda en blanco automáticamente se parara.
Option Compare Text
Sub Pausar()
Tropo = "destino"
Set rango = Range("A1:A65536") 'Columna A:A
For Each Cell In rango
If Cell.Value = Tropo Then
Cell.EntireRow.Delete 'Cuando el valor de la celda es "destino" se elimina la fila
Else
If Cell.Value = "" Then
Cell.Select
Exit Sub 'Cuando la celda esta vacia se pausa la macro se sale de ella
Else
If IsNumeric(Cell.Value) = True Then
Cell.Value = Cell.Value * 10 ' Si el valor de la celda es numerico lo multiplica x10
End If
End If
End If
Next
End Sub

3 respuestas más de otros expertos

Respuesta
1
No entiendo bien lo que dices, pero te voy a dar algunos consejos para editar las macros a tu gusto:
Para modificar las macros le das a Alt+F11 y te iras al editor de visual basic. Un vez ahí, dentro del los módulos están las macros. Puedes editarlas a tu gusto (copiar lineas, borrarlas, etc)
Para hacer que pare en una linea determinada tienes que hacer clic en la parte izquierda de la fila (zona gris) y te aparecerá un punto rojo y la linea se marcará también
Una vez ejecutas la macro y llega a ese punto, se para y puedes continuar la ejecución paso a paso con la tecla F8 y con los botones de arriba puedes hacer play y stop para seguir hasta el final (o siguiente punto de paro) o parar definitivamente
Para hacer saltos en las macros puedes utilizar etiquetas. Me explico:
si en una linea pones un nombre terminado con dos puntos ":" eso es una etiqueta a la que puedes saltar con la instrucción
goto nombre_etiqueta
ejemplo:
Sub macro1()
msgbox "hola"
goto etiqueta
msgbox "esto no se ejecuta"
etiqueta:
msgbox "adios"
End Sub
Bueno, espero que estos 2 consejos te sirvan y si tienes más dudas ya sabes.
Respuesta
1
Haz una macro con el procedimiento que quieres que haga siempre [por ejemplo sub siempre()], y otra con el procedimiento que debe hacer a veces [ej sub ocasional()].
En la que hace a veces [ocasional()], en el momento en que debería hacer la otra, inserta el nombre si paréntesis [siempre] para que llame a la otra función desde esa misma.
Si no, mándame el archivo a [email protected] y explícame lo que quieres que haga.
Respuesta
Necesito algo más de información de lo que quieres hacer para centrame en una solución adecuada a tus necesidades, explicame el problema un poco más afondo y con un ejemplo de lo que quieres realizar para que te lo pueda desarrollar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas