Saltar al contenido

Macros y programación VBA

Temas sobre la automatización de Excel utilizando macros y VBA. Errores de VBA. ¿No consigues que tus macros hagan lo que necesitas?

  1. Buenos días: Trabajo con dos libros uno Caja Jesús 2016 y otro Cuentas por cobrar, bueno en mi libro caja en la hoja BOLETOS en la celda F1 ingreso el nombre de una de las hojas de mi otro libro Cuentas por cobrar, para este ejemplo solo puse algunas hojas, pero la verdad tengo como 200 hojas que las utilizo. Mi consulta es de como ir a la hoja del libro Cuentas por cobrar según el valor de la celda F1 de mi libro Caja Jesús 2016. Muchas gracias por su atención, saludos cordiales Jesús Caja Jesus 2016.xlsx Cuentas por cobrar.xlsx

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 6.2k visitas
  2. Started by juesdaso,

    Necesito ayuda con este archivo: tengo esta macro para poder agrupar las filas de manera rápida pero no se como ponerla a funcionar cuando solo haya una fila para agrupar, agradezco a quien me pueda colaborar depurando el código para que me quede funcionando como lo necesito, gracias (adjunto el archivo) y este es el código que estoy utilizando: Selection.End(xlDown).Select Range(Selection, Selection.End(xlDown)).Select Selection.Rows.Group Selection.End(xlDown).Select Selection.Offset(1, 0).Select Agrupar.xls

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 6.1k visitas
  3. Buen día a todos; Estoy trabajando en un proyecto donde es necesario actualizar algunos datos sobre ciertas hojas de excel (cerca de 30 hojas), el libro en total contendrá unas 75 hojas. Existe cierta constante sobre el nombre de las hojas donde se debe de actualizar la información, por ejemplo: las hojas donde deseo ejecutar la macro comienzan con MEX0 y despues se les asignan otro tipo de digitos como MEX0A0023, MEX0A0023-1, MEX0A0023-1A, etc, entonces la constante en el nombre es MEX0 Estaba pensando en utilizar alguna función como: Dim Hoja As String For Each Hoja In Worksheets Aquí es donde me pierdo, quisiera agregar un Like o algo como contiene, …

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 6.1k visitas
  4. Started by Jhonsi,

    Hola a todos y gracias por vuestra ayuda de antemano. Quería comentaros que no tengo idea de como se realizan las macros, pero en el archivo adjunto he modificado una macro que funciona en otra hoja para realizar algo parecido y he conseguido que realize lo que quería, pero tarda mucho en ejecutarse. Os cuento...en la primera hoja "ALBARÁN", introduzco los datos y los paso con botón a la segunda hoja "ALBARANES", en la tercera hoja "FACTURA", al poner código de cliente, recupero todos los albaranes pendientes de facturar y así creo la factura. Ahora he creado un botón en "FACTURA", para pasar los datos en forma de listado de facturas a la cuarta hoja "LISTADO". Este pr…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 6.1k visitas
  5. Buenas noches, existe un tema igual pero está cerrado y no admite más respuestas. Tengo un fichero PDF que tiene hecho un formulario el cual puede rellenar a mano. Lo que yo quiero es que de un fichero excel donde tengo los campos: nombre, dni, direccion, etc esos datos se introduzcan en el campo destinado para ello en el formulario y me vaya creando diferentes ficheros. El fichero excel tiene unas 400 personas, por lo cual me tendría que generar esos 400 pdf rellenos con los datos que hay en excell. Dispongo de Office365 y de Acrobat Reader. Espero haberme explicado bien.

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 6.1k visitas
  6. Despues de mucha de la ayuda que me da esta página, creo que es hora de aportar algo. Buscando por la web encontre este codigo que espero que les sirva de mucho. Saludos Sub MoverArchivos() ' 'Antes de correr la macro, elije las celdas que tengan la ruta 'del nombre actual, es decir a partir de A2 Dim NombreNuevo As String Dim NombreAnterior As String ' 'Si no encuentra algún archivo, continuará con el siguiente ' On Error Resume Next For Each Celda In Selection NombreAnterior = Celda.Value 'El dato del nombre nuevo y la carpeta nueva será la columna G, especificado con 6 NombreNuevo = Celda.Offset(0, 6).Value Name NombreAnterior As NombreNuevo Next C…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 6.1k visitas
  7. Buenas tardes, Tengo el siguiente inconveniente, un archivo de varias líneas a partir del cual necesito que se generen varios archivos, en función del valor de una columna. Por lo que busqué en el foro, hay un tema relacionado con una macro que genera los archivos, pero que el criterio para separarlos es la cantidad de filas. https://www.ayudaexcel.com/foro/threads/dividir-gran-archivo-excel.27398/ Luego encontré otro que divide un archivo en varias hojas: https://www.ayudaexcel.com/foro/threads/macro-para-dividir-una-hoja-en-varias.31783/#post-150267, a partir del valor que aparece en una columna. Lo que necesitaría es que, siguiendo con el ejemplo del primer link (…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 6.1k visitas
  8. Started by Domingo,

    Hola a todos, encontré hace unos días un ejemplo de código que adapté para crear una imagen .jpg de un rango de celdas y funciona correctamente a excepción de que cuando visualizas la imagen creada se ven columnas y datos como si en la parte tras la imagen se ven columnas similares a un gráfico de excel y datos que no están en el rango de celdas del que se extrae la imagen, pongo el código para ver si me podéis echar una mano. Sub CrearImagenRango() Dim she As Worksheet Application.ScreenUpdating = False Application.DisplayAlerts = False On Error Resume Next Set a = Sheets("LisCOMPRAS") 'myfile = "C:\Users\conse\Desktop\Lista COMPRAS\…

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 6.1k visitas
  9. Started by germones,

    Buenos días amigos, necesito una gran ayuda. Debo crear un macro que haga lo siguiente: 1.- Desde un libro X, copie las hojas de un libro Y y cree un libro Z con solo esas hojas sin los macros que estas contengan en una carpeta A. 2.- También quería saber si era posible crear ese macro pero que las hojas que copiara sean del libro que escriba en una celda 1. 3.- Si es posible también que el título del libro que nuevo que se creará en la carpeta A y con las hojas del libro que escribi en una celda 1, se le pueda poner como título la fecha actual de la pc. Gracias por todo y espero me puedan ayudar con cualquiera de estos 3 puntos o si es posible con los 3.

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 6.1k visitas
  10. Started by alvaroballes,

    Buenas tardes a todos. Estoy buscando una macro que me calcule el porcentaje de similitud entre dos celdas. Buscando por internet he encontrado estas macros que calculan justo lo que estaba buscando ( http://miguelmaresmahurtado.com/index.php/2016/03/14/porcentaje-de-similitud-entre-dos-textos/) pero ambas me dan error y no sé arreglarlo. Si alguien pudiera ayudarme o sugerirme otra macro sería de gran utilidad. Adjunto mi ejemplo. Muchas gracias y espero que todos se encuentren sanos y en casa Ejemplo.xlsx

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 6k visitas
  11. Started by dff1403,

    Estimados, Buenas noches, Tengo el archivo adjunto al cual me gustaria generarle contraseña, pero a los solo a los ComandButton4, ComandButton6, ComandButton1, ComandButton2 que estan dentro del UserForm1, les seria posible apoyarme para saber como hacerlos? Muchisimas Gracias por su apoyo Saludos, Macro_Excel_Stocks.zip

    • 0

      Reacciones de usuarios

    • 15 respuestas
    • 6k visitas
  12. Hola a todos, mi nombre es Gema. Os expongo la situación: Tengo una lista desplegable ("Servicios") en varias filas de una misma columna (C24:C50) y otra ("Categorías") dependiente de la anterior (D24:D50). Cuando modifico un elemento de la lista dependiente "Categorías" necesitaría que se borrara el campo de la lista anterior "Servicios", para que no haya una incongruencia de datos en el caso de que se modifique. He probado incorporando la siguiente macro, pero da error: Private Sub Worksheet_Change(ByVal Target As Range) If Target = Range("C24:C50") Then Range("D24:D50").Value = "" End If End Sub ¿Sabríais decirme de qué forma po…

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 6k visitas
    • 1 seguidor
  13. Que tal Amigos de ayudaexcel. Alguien del foro sabe como registrar La biblioteca de objetos ? Tengo Windows 7 sistema operativo de 64 bits. He intentado lo siguiente pero sin conseguir registrarla: x64 --- cd C:\Windows\SysWOW64\ regtlib msdatsrc.tlb Gracias.

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 6k visitas
  14. Started by luquiluk,

    Buenas tardes, He googleado pero no llego a encontrar la solución, Primero quería utilizar la función INDIRECTO para importar datos, pero al ver que no funciona con libros cerrados he optado por una macro, pero no consigo realizarla. Antecedentes: 1.- Varios archivos, 20 aproximadamente, con la misma estructura de nombre, Ejemplo: CasaMalaga, CasaMadrid; CasaValencia 2.- Resultados en el mismo nombre de hoja: Ejemplo Alquiler 3.- En la Misma Celda R8 El problema que pueden ir aumentando el número de ficheros pero siempre van a tener la misma estructura y localización Había pensado utilizar una especie de BUSCARV o INDICE/COINCIDIR, pero…

    • 0

      Reacciones de usuarios

    • 19 respuestas
    • 6k visitas
  15. Hola, tengo un combobox dentro de un formulario. He programado el mismo para que la lista de opciones se despliegue automáticamente sin necesidad de hacer click con la flecha para desplegarla. El problema que tengo es que cuando selecciono con la tecla enter uno de los items de la lista, el control sigue dentro del combobox. Lo que quiero lograr es que al seleccionar un item de la lista el foco se transfiera al siguiente campo del formulario. De esta forma debo apretar solo una vez la tecla enter y no dos (una para la seleccion en la lista desplegable y otra para salir del combobox). No encuentro la forma de programar algún evento para que seleccionado el item de la l…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 6k visitas
  16. Estimados, como puedo crear una funcion en vba que me retorne un valor de tipo String; al agregar la palabra clave return este me arroja un error de compilación que dice "Se esperaba: fin de la instrucción"

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 6k visitas
  17. Started by uchipad,

    Bueno resulta que tengo hechas unas macros en Office 2003 y nos han traído nuevos ordenadores. En estos ordenadores nuevos solo está instalado el Office 2010. Estas macros contienen elementos ListView y Toolbar que no se pueden cargar con el nuevo office 2010, por lo que ya me he informado que los Common Controls no son compatibles con Windows 64 bits y office 2010. Necesito una alternativa, podríais ayudarme? hay algún elemento parecido que no sea un listbox?, algo como una tabla que pueda tener columnas?

    • 0

      Reacciones de usuarios

    • 13 respuestas
    • 6k visitas
  18. Started by akira468,

    Hola a todos. Necesito ayuda. El archivo adjunto lo que hace es guardar un archivo .TXT con un nombre asignado por celdas y se guarda en una carpeta designada. Pero yo quisiera poder seleccionar donde guardar manteniendo la creación de nombre. Saludos. Solicitud.rar

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 6k visitas
  19. Started by ArmandoR,

    Buenos compañer@s, a ver si me podéis ayudar con esta macro. En esencia se conecta al AS400 de mi empresa (previa vista generada) y me trae datos a través de una consulta SQL. La macro funciona bien y no tengo problemas. El tema es que no sé trabajar recorriendo el RECORDSET y me toca ingeniármelas con un bucle Do Loop para que me vaya generando los datos que quiero. Os detallo la macro y las celdas donde me trae los datos. Lo que me gustaría es poder establecer el rango("C5:C18") de alguna forma en el RECORDSET para que lo hiciese de golpe y no recorriendo celda a celda. Asimismo, si por ejemplo, quisiese ampliar el rango de la matriz de datos y meter, por ejemplo, en D…

    • 0

      Reacciones de usuarios

    • 10 respuestas
    • 6k visitas
    • 1 seguidor
  20. Hola, A ver si alguien me puede ayudar. ¿Esto que planteo es posible? Estoy intentando almacenar el último nombre de la hoja de un libro en una variable para que cuando cree una hoja nueva se me actualicen las fórmulas de mi hoja principal automáticamente a través de la función SUMA. Para ello: Almaceno el nombre de la última hoja en esta variable: Sub Variable() Dim Variable1 As String Variable1 = ActiveWorkbook.Worksheets(Worksheets.Count).Name ActiveWorkbook.Names.Add Name:="ultimahoja", RefersToR1C1:=Variable1 End Sub Y luego lo intento usar de esta manera: =SUMA('semana del 01-01-20:ultimahoja'!A1) Pero …

    • 0

      Reacciones de usuarios

    • 16 respuestas
    • 6k visitas
    • 1 seguidor
  21. Started by soniapam,

    tengo el siguiente codigo Sub limpiar2() Application.ScreenUpdating = False Sheets("PRODUCCION").Select Range("A7").Select ActiveCell.ClearContents Range("A7:A524,B7:B524,D7:CF524,CH7:CM524,EL7:EO524,FC7:FS524").Select Selection.ClearContents Application.ScreenUpdating = True Range("A7").Select End Sub como puedo hacer para recuperar los datos que ya fueron eliminados, osea que si al final me arrepnti de borrarlos cual seria el codigo para una macro que me ayude a recuperar los datos borrados. Gracias

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 6k visitas
  22. Started by jairo28,

    buenas tardes, espero se encuentren todos bien y disfruando una buena tarde, soy nuevo en la pagina y en los foros, me gusta excel pero lo que es cierto es que sufro con las macros ya que todavia no las puedo desarollar como yo quisiera. por ese motivo vengo ante ustedes espero y alguien me pueda ayudar a como formular una macro para extraer datos de un archivo archivo xml y que estos se vayan almacenando en otra hoja de excel

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 6k visitas
  23. Hola amigos, Tengo un problema y me gustaría contar con su ayuda y apoyo. Mi problema es que debo diseñar una caja de cartón master donde colocar en su interior productos que vienen en cajas mas pequeñas llamadas cajas inner. La dificultad esta en que son varios productos y cada uno tiene una caja inner distinta. Tengo las medidas (alto, ancho y largo) de cada caja inner, de cada producto y la cantidad de cajas asociadas a cada producto también. Para la caja master tengo dos restricciones el alto y la cantidad de cajas master a asociar al pedido. En realidad, el problema es como cubicar un pedido. Adjunto ejemplo en Excel. Desde ya…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 5.9k visitas
  24. Buen día, tengo un problema con un formulario la primera vez que lo ejecute lo hizo adecuadamente, pero lo volvi a utilizar y al cambiar el combobox ya no me copiaba las celdas a los textbox (lo he hecho con la ayuda de varios tutoriales), subo el archivo que consta de 2 combobox 1 para seleccionar al sujeto y en base a ello buscar la hoja en que se almacenan los datos y el segundo, el cual necesito para rellenar los txtbox. De ante mano gracias Copiar datos a un textbox.rar

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 5.9k visitas
  25. Started by verito_21m,

    Hola, buenos días!! ¿Es posible realizar un filtro avanzado utilizando como criterio el color de la celda? Agradezco respuesta! Saludos Verónica FiltroAvanzadoporcolor (1).zip

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 5.9k visitas

Información básica de protección de datos

  • Responsable: Sergio Andrés Celemín
  • Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.
  • Legitimación: Consentimiento del interesado.
  • Destinatarios : Hetzner Online GmbH.
  • Duración: Mientras se conserve este post o hilo en la comunidad, o decidas eliminar el comentario.
  • Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso, rectificación, supresión, oposición y demás derechos legalmente establecidos a través del email [email protected]

Información adicional: Encontrarás más información en la política de privacidad.