Excel - simplificar macro

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

simplificar macro

Publicado por RAUL (2 intervenciones) el 16/10/2018 20:16:17
muy buen día tengan expertos

Me presento, me llamo Raúl Velázquez Fuentes y actualmente me encuentro trabajando en una empresa de mensajería y paquetería, por lo cual necesito generar varios oficios y guardar los datos que necesito de las diferentes cuentas que voy a cobrar a cada país, me encuentro aun en aprendizaje para macros en Excel, y se que aun me falta mucho por aprender, pero quisiera saber si alguien puede ayudar a simplificar mi macro, ya que me encuentro parado hasta cierto punto por un inconveniente que no he podido solucionar (este punto lo tratare mas adelante).

Esta macro que diseñe es algo rudimentaria y algo burda, pero realiza las funciones que requiero para agilizar mi trabajo.

Bien empecemos.

La primer hoja denominada CAPTURA, permite señalar el país que requiero generar una cuenta, la cual puedo buscar en una lista desplegable o introducir el código del país asignado, ya que cada uno tiene una dirección diferente al que va dirigido el oficio, este se llena en automático en la hoja FORMATO.

"Los números de referencia son generados por el personal de recibir o generar una respuesta (por lo regular son el numero de oficio consecutivo que asignan las secretarias o el personal encargado de llenar los datos)".

Las claves que se ocupan para la realización de cuentas se encuentra en la pestaña CLAVES (todas las matrices y códigos que se ocupan en este archivo se encuentran ocultos, pero se pueden visualizar en visual basic), las cuales determinan el nombre de la cuenta, el asunto, el sub asunto, el periodo y el año del cual se generara la cuenta. Se pueden generar hasta cuatro cuentas diferentes en un mismo oficio para cada país (puede disminuir el numero de cuentas generadas dependiendo si aplican o no).

Una vez ingresados todos los datos, diseñe tres botones con sus respectivos nombres e imágenes, el primer paso antes de grabar es imprimir el oficio, cuando presionamos la imagen de la impresora, realiza una impresión del oficio de la pestaña FORMATO, que contiene la información que descargamos en la pestaña de CAPTURA y a su vez copia la dirección del destinatario en la hoja de ETIQ. PAISES, para que al final después de generar tantas cuentas sean requeridas se imprima solo las que fueron trabajadas.

La macro asignada en la imagen del disco de 3 1/2 denominada grabar registro, sirve para guardar mis datos (solo los que tienen información) en mi hoja DATOS, esta hoja nutrirá de información la hoja de CONSULTA, la cual muestra la información generada por cada país para que sea ubicada mas rápidamente la información grabada y todas las cuentas que se han generado durante el periodo determinado.

Al igual que genero cuentas a diferentes países, recibo cuentas cobrándome a mi sus envíos, los cuales ingreso de la misma manera con el anterior poseso.

Cuando me regresan los oficios de contestación aceptándome o no el cargo o importe que genere anteriormente, asigne una macro en la pestaña MODIFICAR, la cual dependiendo el numero de ID que se asigna al vaciar la información en mi hoja de DATOS, puedo jalar la información del país que requiero modificar, y llenando la casilla del importe aceptado sin borrarme el importe con el que se genero mi cuenta, ya que esta información se requiere para estadística del área.

Todos estos pasos si los realizan las macros que asigne de acuerdo a las necesidades que tengo, en donde tengo el problema es en lo siguiente.

Cuando termino mi proceso de modificación y tengo que generar una nueva cuenta, me realiza un paso muy extenso como de depuración de filas, y me alenta mi macro hasta que llega a los datos de mis cuentas borrándome solo las casillas que no tienen datos, esto lo hace solo cuando voy a realizar la primer cuenta después de una modificación,

he buscado y preguntado que se puede realizar para simplificar las macros que ya tiene el archivo y que no parpadee a la hora de grabar los registros y que al generar una nueva cuenta después de ser modificado algún oficio de respuesta que no me realice el paso extenso que mencione.

Agradeceré me puedan ayudar, adjunto el archivo para que lo puedan observar.

Saludos

Att.: Raúl Velázquez Fuentes
su servidor y amigo
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: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

simplificar macro

Publicado por Antoni Masana (2555 intervenciones) el 17/10/2018 11:04:36
Estas son las macros que he visto en el libro

Sub NMOD()
Sub mostrar()
Sub GRABA()
Sub IMPRIME3()
Sub ETIQUETAS()

Las que veo más grandes y se podrían simplificar y optimizar son NMOD() y GRABAR()

Para ver que hace una macro paso paso ponte en la primera línea ejecutable de la macro y pulsa F9. La línea se resaltara y cuando ejecutes la macro se para en esta línea y puedes seguir pulsando F8 para ejecutar instrucción a instrucción y ver que hace o F5 para ejecutar rápido.

Estudia un poco de Visual Basic, conceptos básicos de programación y con esto podrás mejorar mucho las macros.
Le he dado un vistazo a la macro NMOD y la primera parte añades las nuevas líneas por arriba en lugar de por abajo como seria mas común de hacer porque la macro tal cual esta no te lo permite. Además usando un poco de código sería mucho más corta, simple y rápida.


El la macro ETIQUETAS hay una parte del código que no tiene una funcionalidad útil.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
' </> -------------------------------------------------------------------- </>
' </> ---&---  Modulo 4
' </> -------------------------------------------------------------------- </>
 
Sub ETIQUETAS()
    Sheets("ETIQ. PASISES").Visible = True
    Range("A14").Select
 
    Sheets("ETIQ. PASISES").Select
    ActiveWindow.ScrollRow = 1037
    ActiveWindow.ScrollRow = 986
    ActiveWindow.ScrollRow = 965
    ActiveWindow.ScrollRow = 943
    ActiveWindow.ScrollRow = 920
    ActiveWindow.ScrollRow = 888
    ActiveWindow.ScrollRow = 619
    ActiveWindow.ScrollRow = 567
    ActiveWindow.ScrollRow = 523
    ActiveWindow.ScrollRow = 483
    ActiveWindow.ScrollRow = 408
    ActiveWindow.ScrollRow = 364
    ActiveWindow.ScrollRow = 278
    ActiveWindow.ScrollRow = 125
    ActiveWindow.ScrollRow = 1
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, _
                                         Collate:=True, _
                                         IgnorePrintAreas:=False
    Rows("21:1500").Select
    Selection.ClearContents
    Range("A14").Select
    ActiveWindow.SmallScroll Down:=-57
 
    Sheets("ETIQ. PASISES").Select
    ActiveWindow.SelectedSheets.Visible = False
    Sheets("CAPTURA").Select
    Range("B3").Select
End Sub


Y esto dan el mismo resultado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
' </> -------------------------------------------------------------------- </>
' </> ---&---  Modulo 4
' </> -------------------------------------------------------------------- </>
 
Sub ETIQUETAS()
    With Sheets("ETIQ. PASISES")
        .Visible = True
        .Select
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, _
                                             Collate:=True, _
                                             IgnorePrintAreas:=False
        Rows("21:1500").Select:  Selection.ClearContents
        .Visible = False
    Wend With
    Sheets("CAPTURA").Select
    Range("B3").Select

Segundo punto mejorar la ejecución de las macros.

Revisa esta página:

https://www.todoexcel.com/14-formas-de-acelerar-y-optimizar-tus-macros-excel/

Te adjunto unos cuantos manuales de VB para Excel que te pueden ayudar mucho.

Saludos.
\\//
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
4
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

simplificar macro

Publicado por RAUL (2 intervenciones) el 17/10/2018 15:36:08
Sr. Antoni Masana

muchísimas gracias por tomarse su tiempo en contestar y aclarar mis dudas

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