Excel permite programar macros para insertar cualquier información en cualquier celda, lo que resulta de utilidad para personalizar nuestras aplicaciones.
Insertar datos en celda de Excel con Vba.
Vamos a ver en esta entrega un código que nos servirá para insertar en una celda cualquier información. Vamos a utilizar el mismo archivo Excel con el que trabajamos en la entrega pasada donde diseñaremos en el mismo Módulo1 este nuevo Ejemplo:
Nos vamos a ubicar al final del Ejercicio 1 luego de la línea End Sub que marca el final de dicha macro e insertamos el siguiente código:
Sub Ejercicio2()
'Esta macro insertará un texto en la celda A2
Range(“A2”) = "Excel para contadores."
End Sub
Observemos que estamos en el mismo Módulo1 pero se trata de otra macro cuyo nombre es Ejercicio2 y se encuentra separada del Ejercicio1 por una línea negra.
- La primera línea Sub Ejercicio2(), indica el inicio y nombre de la macro Ejercicio2.
- La segunda línea Esta macro insertará un texto en la celda A2, es un comentario informativo para identificar más fácil lo que realizará la macro. Observemos que al inicio de esta línea tiene una comilla sencilla y en el Editor VB se marcará en color verde toda la línea
- La tercera línea es el código con el cual se insertará el texto "Excel para contadores." en la celda A2 (Range("A2"))
- La última línea marca el fin (End) de la Macro o Subrutina (Sub)
Ahora, al ejecutar esta macro se insertará el texto “Excel para contadores.” En la celda A2 de la hoja Activa:
Finalmente solo queda vincular la macro a cualquier objeto que podamos insertar en la hoja y listo.
septiembre 2nd, 2019 a las 8:37 am
Hola, agradecería su ayuda con la siguiente situación, necesito que mi “Plantilla.dotx” pueda seleccionarla a partir de una celda sin necesidad de cambiar la ruta desde el código. ¿es posible hacerlo?
Sub test()
Dim wd As Object
Dim doc As Object
Dim rng As Range
Set rng = Selection
Const myDoc = “C:\Users\acuar\Desktop\Kardex\Plantilla.dotx” ‘indica la ruta del formato
Set wd = CreateObject(“Word.application”)
wd.Visible = True
Set doc = wd.Documents.Open(myDoc)
With Selection.EntireRow
doc.Bookmarks(“CURP”).Range.Text = Range(“B” & rng.Row).Value
doc.Bookmarks(“PATERNO”).Range.Text = Range(“C” & rng.Row).Value
doc.Bookmarks(“MATERNO”).Range.Text = Range(“D” & rng.Row).Value
doc.Bookmarks(“NOMBRE”).Range.Text = Range(“E” & rng.Row).Value
doc.Bookmarks(“LUGAR_N”).Range.Text = Range(“F” & rng.Row).Value
doc.Bookmarks(“DIA_N”).Range.Text = Range(“G” & rng.Row).Value
doc.Bookmarks(“MES_N”).Range.Text = Range(“H” & rng.Row).Value
doc.Bookmarks(“ANIO_N”).Range.Text = Range(“I” & rng.Row).Value
doc.Bookmarks(“MEX”).Range.Text = Range(“J” & rng.Row).Value
doc.Bookmarks(“OTRA”).Range.Text = Range(“K” & rng.Row).Value
doc.Bookmarks(“MASC”).Range.Text = Range(“L” & rng.Row).Value
doc.Bookmarks(“FEM”).Range.Text = Range(“M” & rng.Row).Value
doc.Bookmarks(“DOMI_A”).Range.Text = Range(“N” & rng.Row).Value
doc.Bookmarks(“LOCA_A”).Range.Text = Range(“O” & rng.Row).Value
doc.Bookmarks(“CP_A”).Range.Text = Range(“P” & rng.Row).Value
doc.Bookmarks(“TEL_A”).Range.Text = Range(“Q” & rng.Row).Value
doc.Bookmarks(“NOMBRE_P”).Range.Text = Range(“R” & rng.Row).Value
doc.Bookmarks(“OCUPACION”).Range.Text = Range(“S” & rng.Row).Value
doc.Bookmarks(“PAREN_P”).Range.Text = Range(“T” & rng.Row).Value
doc.Bookmarks(“PAREN_M”).Range.Text = Range(“U” & rng.Row).Value
doc.Bookmarks(“PAREN_T”).Range.Text = Range(“V” & rng.Row).Value
doc.Bookmarks(“DOMI_P”).Range.Text = Range(“W” & rng.Row).Value
doc.Bookmarks(“LOCA_P”).Range.Text = Range(“X” & rng.Row).Value
doc.Bookmarks(“CP_p”).Range.Text = Range(“Y” & rng.Row).Value
doc.Bookmarks(“TEL_P”).Range.Text = Range(“Z” & rng.Row).Value
End With
doc.SaveAs ThisWorkbook.Path & “\” & “Kardex” & “-” & Format(Now, “MMM,d,yyyy”) & “.docx”
‘doc.Close False
‘wd.Quit
Set doc = Nothing
Set wd = Nothing
End Sub