{"id":16250,"date":"2021-07-27T01:30:09","date_gmt":"2021-07-27T06:30:09","guid":{"rendered":"https:\/\/www.perucontable.com\/excelcontable\/?p=16250"},"modified":"2023-11-14T22:06:54","modified_gmt":"2023-11-15T03:06:54","slug":"como-obtener-el-valor-de-la-celda-activa-con-vba","status":"publish","type":"post","link":"https:\/\/www.perucontable.com\/excelcontable\/como-obtener-el-valor-de-la-celda-activa-con-vba\/","title":{"rendered":"\u00bfC\u00d3MO OBTENER EL VALOR DE LA CELDA ACTIVA CON VBA?"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"527\" height=\"259\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-153.png\" alt=\"\" class=\"wp-image-16251\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-153.png 527w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-153-300x147.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-153-324x160.png 324w\" sizes=\"(max-width: 527px) 100vw, 527px\" \/><\/figure><\/div>\n\n\n<p>Cuando comienzas a usar macros, una de las primeras cosas que haces, es recuperar el valor de una celda. De acuerdo, a los temas publicados sobre el tema y si tienes claro lo que son&nbsp;las macros en Excel. Lo primero que har\u00e1s, ser\u00e1 crear una funci\u00f3n y lo har\u00e1s directamente en el editor de VBA. El nombre de la funci\u00f3n podr\u00eda ser por ejemplo:&nbsp;<strong>obtenerValorCeldaActiva()<\/strong><\/p>\n\n\n\n<p>De los millones de celdas contenidas en una hoja de Excel, solamente una de ellas ser\u00e1 la celda activa en un momento determinado y estar\u00e1 identificada por un borde negro y su referencia aparecer\u00e1 en el cuadro de nombres ubicado junto a la barra de f\u00f3rmulas. En la siguiente imagen podremos ver que la celda activa es la celda B2:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"371\" height=\"172\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-154.png\" alt=\"\" class=\"wp-image-16253\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-154.png 371w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-154-300x139.png 300w\" sizes=\"(max-width: 371px) 100vw, 371px\" \/><\/figure><\/div>\n\n\n<p>Inclusive cuando seleccionamos un rango de celdas, solamente una de ellas ser\u00e1 la celda activa. Por ejemplo, si selecciono el rango B2:D5, solamente la celda B2 tendr\u00e1 el color blanco de fondo indicando que sigue siendo la celda activa, adem\u00e1s de que su referencia seguir\u00e1 apareciendo en el cuadro de nombres:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"479\" height=\"222\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-155.png\" alt=\"\" class=\"wp-image-16254\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-155.png 479w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-155-300x139.png 300w\" sizes=\"(max-width: 479px) 100vw, 479px\" \/><\/figure><\/div>\n\n\n<p>Si despu\u00e9s de seleccionar un rango de celdas ingresas cualquier valor y pulsas la tecla Entrar, dicho valor ser\u00e1 ingresado solamente en la celda activa. Si quisieras que un mismo valor fuera ingresado en todas las celdas del rango, entonces deber\u00e1s ingresar el valor en la celda activa y pulsar la combinaci\u00f3n de teclas Ctrl + Entrar.<\/p>\n\n\n\n<p>Ya que la celda activa juega un papel de mucha importancia en Excel, es importante aprender a trabajar con dicha celda desde nuestro c\u00f3digo VBA.<\/p>\n\n\n\n<h2><strong>LA CELDA ACTIVA EN VBA<\/strong><\/h2>\n\n\n\n<p>La celda activa es un objeto que ya est\u00e1 preparado para su uso, as\u00ed que no tendremos que hacer ning\u00fan paso previo. Para trabajar con este tipo de objetos, basta con que lo invoquemos, haciendo uso de su nombre. En este caso, el nombre del objeto Celda Activa es&nbsp;<strong>ActiveCell.<\/strong><\/p>\n\n\n\n<p>La celda activa en VBA est\u00e1 entonces representada por la propiedad&nbsp;<em>ActiveCell<\/em>&nbsp;del&nbsp;<strong>objeto Application<\/strong>&nbsp;y es a trav\u00e9s de dicha propiedad que podremos obtener mucha informaci\u00f3n sobre la celda activa de Excel. La propiedad&nbsp;<em>ActiveCell<\/em>&nbsp;nos devolver\u00e1 un objeto&nbsp;<em>Range<\/em>&nbsp;que tendr\u00e1 sus propias propiedades y m\u00e9todos con los que podremos trabajar.<\/p>\n\n\n\n<p>Por ejemplo, podemos utilizar la propiedad&nbsp;<em>Address<\/em>&nbsp;para obtener la direcci\u00f3n de la celda activa. Para nuestro primer ejemplo comenzar\u00e9 por hacer clic derecho sobre la etiqueta de la hoja y seleccionar\u00e9 la opci\u00f3n \u201cVer c\u00f3digo\u201d.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"361\" height=\"283\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-156.png\" alt=\"\" class=\"wp-image-16255\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-156.png 361w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-156-300x235.png 300w\" sizes=\"(max-width: 361px) 100vw, 361px\" \/><\/figure><\/div>\n\n\n<p>Posteriormente, de la lista desplegable de objetos, seleccionar\u00e9 el objeto&nbsp;<em>Worksheet<\/em>&nbsp;y de la lista de procedimientos elegir\u00e9 el evento&nbsp;<em>SelectionChange<\/em>&nbsp;e ingresar\u00e9 una sola l\u00ednea de c\u00f3digo donde utilizar\u00e9 la&nbsp;funci\u00f3n MsgBox&nbsp;y la propiedad&nbsp;<em>Address<\/em>&nbsp;del objeto&nbsp;<em>ActiveCell<\/em>&nbsp;de la siguiente manera:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"876\" height=\"171\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-157.png\" alt=\"\" class=\"wp-image-16256\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-157.png 876w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-157-300x59.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-157-768x150.png 768w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-157-696x136.png 696w\" sizes=\"(max-width: 876px) 100vw, 876px\" \/><\/figure><\/div>\n\n\n<p>El evento&nbsp;<em>SelectionChange<\/em>&nbsp;ser\u00e1 ejecutado cada vez que seleccionemos una celda diferente dentro de nuestra hoja y la funci\u00f3n MsgBox mostrar\u00e1 un mensaje con la direcci\u00f3n de la celda activa. Al seleccionar una nueva celda con el teclado o el rat\u00f3n obtendremos un mensaje como el siguiente:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"543\" height=\"297\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-158.png\" alt=\"\" class=\"wp-image-16257\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-158.png 543w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-158-300x164.png 300w\" sizes=\"(max-width: 543px) 100vw, 543px\" \/><\/figure><\/div>\n\n\n<h2><strong>FILA Y COLUMNA DE LA CELDA ACTIVA<\/strong><\/h2>\n\n\n\n<p>Si en lugar de obtener la referencia completa da la celda activa estamos interesados en obtener su fila o su columna, entonces podemos utilizar las propiedades&nbsp;<em>Row<\/em>&nbsp;y&nbsp;<em>Column<\/em>&nbsp;respectivamente. Para este ejemplo seguir\u00e9 los mismos pasos de la secci\u00f3n anterior y colocar\u00e9 el siguiente c\u00f3digo en el evento&nbsp;<em>SelectionChange<\/em>:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"824\" height=\"156\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-163.png\" alt=\"\" class=\"wp-image-16262\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-163.png 824w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-163-300x57.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-163-768x145.png 768w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-163-696x132.png 696w\" sizes=\"(max-width: 824px) 100vw, 824px\" \/><\/figure><\/div>\n\n\n<p>Al cambiar la selecci\u00f3n de celdas en nuestra hoja, obtendremos un mensaje que incluir\u00e1 la fila y columna de la celda activa.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"257\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-164.png\" alt=\"\" class=\"wp-image-16263\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-164.png 512w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-164-300x151.png 300w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure><\/div>\n\n\n<h2><strong>EL VALOR DE LA CELDA ACTIVA<\/strong><\/h2>\n\n\n\n<p>Para obtener el valor de la celda activa podemos utilizar la propiedad&nbsp;<em>Value<\/em>&nbsp;y para mostrarlo har\u00e9 un ejemplo similar a los anteriores utilizando el siguiente c\u00f3digo:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"840\" height=\"167\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-165.png\" alt=\"\" class=\"wp-image-16264\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-165.png 840w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-165-300x60.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-165-768x153.png 768w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-165-696x138.png 696w\" sizes=\"(max-width: 840px) 100vw, 840px\" \/><\/figure><\/div>\n\n\n<p>Al seleccionar una nueva celda, y convertirla en la celda activa, observaremos un mensaje que desplegar\u00e1 su valor:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"495\" height=\"287\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-166.png\" alt=\"\" class=\"wp-image-16265\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-166.png 495w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-166-300x174.png 300w\" sizes=\"(max-width: 495px) 100vw, 495px\" \/><\/figure><\/div>\n\n\n<p>Si quieres modificar el valor de la celda activa deber\u00e1s utilizar la misma propiedad pero haciendo una asignaci\u00f3n con el s\u00edmbolo igual. Por ejemplo, para hacer que la celda activa tenga la cadena de texto \u201cExcel Total\u201d debemos utilizar la siguiente l\u00ednea de c\u00f3digo:<\/p>\n\n\n\n<p><code><strong>ActiveCell.Value = \"PeruContable\"<\/strong><\/code><\/p>\n\n\n\n<h2><strong>CAMBIAR LA CELDA ACTIVA DESDE VBA<\/strong><\/h2>\n\n\n\n<p>Adem\u00e1s de obtener informaci\u00f3n sobre la celda activa en Excel es com\u00fan tener la necesidad de cambiar la celda activa desde c\u00f3digo VBA. Para realizar esta acci\u00f3n no podemos utilizar la propiedad&nbsp;<em>ActiveCell<\/em>&nbsp;sino que debemos utilizar el m\u00e9todo&nbsp;<em>Activate<\/em>&nbsp;de cualquier objeto&nbsp;<em>Range<\/em>. Por ejemplo, si queremos hacer que la celda B5 se convierta en la celda activa, podemos incluir la siguiente l\u00ednea de c\u00f3digo:<\/p>\n\n\n\n<p><code><strong>Range(\"B5\").Activate<\/strong><\/code><\/p>\n\n\n\n<p>Ya que siempre estamos interactuando con la celda activa en Excel es importante familiarizarnos con la propiedad&nbsp;<em>ActiveCell<\/em>&nbsp;de manera que podamos acceder a su valor y propiedades desde nuestro c\u00f3digo VBA. Una vez que te familiarices con el trabajo de la celda activa se recomienda ver el uso de otras propiedades del objeto&nbsp;<em>ActiveCell<\/em>.<\/p>\n\n\n\n<p><strong>Art\u00edculo que te recomendamos leer:<\/strong><br><strong><a href=\"https:\/\/www.perucontable.com\/excelcontable\/cambiar-numeros-grandes-en-excel\/\" data-type=\"URL\" data-id=\"https:\/\/www.perucontable.com\/excelcontable\/cambiar-numeros-grandes-en-excel\/\">CAMBIAR N\u00daMEROS GRANDES EN EXCEL<\/a><\/strong><\/p>\n\n\n\n<p><strong>\u00bfQu\u00e9 te pareci\u00f3 nuestra blog? Com\u00e9ntanos.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cuando comienzas a usar macros, una de las primeras cosas que haces, es recuperar el valor de una celda. De acuerdo, a los temas publicados sobre el tema y si tienes claro lo que son&nbsp;las macros en Excel. Lo primero que har\u00e1s, ser\u00e1 crear una funci\u00f3n y lo har\u00e1s directamente en el editor de VBA. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":16270,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[108,2,1,67,25],"tags":[],"yst_prominent_words":[],"_links":{"self":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/16250"}],"collection":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/comments?post=16250"}],"version-history":[{"count":10,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/16250\/revisions"}],"predecessor-version":[{"id":16832,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/16250\/revisions\/16832"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/media\/16270"}],"wp:attachment":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/media?parent=16250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/categories?post=16250"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/tags?post=16250"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/yst_prominent_words?post=16250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}