Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

5 ejemplos de macros con With

| 1 comentario

With permite realizar una serie de instrucciones sobre un mismo objeto sin volver a especificar el mismo, la idea es reducir la línea de código al hacer referencia a un objeto y su propiedad.

Algunos ejemplos de su aplicación, podrían ser los siguientes:

1.- Se tiene una agencia de viajes y en un combobox1 se incluyen cada uno de los destinos que dispone dicha agencia, a continuación se muestra el código sin With y con With:

combobox1      combobox1

2.- Se desea agregar formato a un rango seleccionado: tipo de letra, tamaño, negrita, color, cursiva y subrayado.

combobox1

3.-Cuando queremos ordenar alfabéticamente un rango de datos también podemos utilizar WITH evitando repetir parte del código en todas las líneas.

combobox1

4.- En caso se tenga que modificar el tipo de gráfico de una Hoja e inclusive pasarla a otra hoja.

Sub Macro3()
With ActiveSheet
.ChartObjects(“2 Gráfico”).Activate
.Location Where:=xlLocationAsObject, Name:=”Hoja2″
.ChartObjects(“1 Gráfico”).Activate
.ChartObjects(“1 Gráfico”).Activate
.PlotArea.Select
.ChartObjects(“1 Gráfico”).Activate
.ChartArea.Select
.ChartType = xlPyramidColStacked100
End with
End Sub

5.- Cuando se tenga que ingresar los datos de un formulario a ciertas celdas del Excel:

With Worksheets(“FORMATO-ORDEN DE TRABAJO”)
.Range(“F3″).Value = dia
.Range(“G3″).Value = mes
.Range(“H3″).Value = año
.Range(“F4″).Value = dias
.Range(“G4″).Value = mess
.Range(“H4″).Value = años
End With

Como se pueden observar en los ejemplos anteriores, el uso de WITH nos permite redactar con mayor fluidez los códigos y evitar ser repetitivos en las sentencias definidas, por último se distingue que luego de definir el objeto, cada propiedad se redacta con un PUNTO previo, lo cual permite al programa identificar las acciones a realizar.

Un comentario

  1. Excelente tutorial!!!

Deja una respuesta

Los campos requeridos estan marcados con *.