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. Muy buenas tardes comunidad. El día de hoy se me presento un problema con una base de datos que se encuentra en una carpeta compartida, se elimino la función indirecto de la columna "Estado" para la columna "Situación". Realizando la esta función en otro archivo me funciona pero no puedo subir este porque ya se encuentra compartida y tiene ciertas restricciones que no me permiten el cambio del archivo. Quería comentarles que esta base tiene un macro donde al cambiar el dato de la columna "estado" la información de esta fila se remite directamente a la hoja de "inhabilitados". MuchasGracias por su ayuda. BASE DE DATOS PARA 2013.zip

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 830 visitas
  2. Hola,Actualmente tengo una macro que me hace una comprobación de si un fichero está abierto o no.Al pasar estos archivos a una carpeta compartida via web he tenido que actualizar la ruta del archivoAl actualizar la ubicación del archivo y el nombre del archivo con la propia, funciona toda la macro excepto la funcion isfileopen." If IsFileOpen(UbicacionNombre) Then' Display a message stating the file in use.MsgBox "El fichero " & NombreFicheroEmpleados & "está en uso. Lo tienen que cerrar para poder continuar", vbCritical, "MENSAJE DE ERROR"Application.ScreenUpdating = TrueExit SubEnd If"UbicacionFicheroEmpleados = "https://bsi1870ext-my.sharepoint.co...1870_net/Do…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 760 visitas
    • 1 seguidor
  3. Started by peperoni,

    Buenas tardes, Ante todo, muchas gracias por vuestra página Web, que me ha permitido avanzar bastante en el fascinante mundo de la programación VBA, pero no lo suficiente, ya que no fui capaz de resolverla esta duda que les envío a continuación: Tengo una serie de datos de diferentes respuestas, agrupados por columnas (a partir de la D) y quisiera obtener sus modas, es decir el valor que más se repite, en función de que la clase a la que pertenecen, la cual la tengo definida en la columna D. [TABLE] [TR] [TD]Columna [/TD] [TD] D [/TD] [TD]E [/TD] [TD]F [/TD] [TD]G [/TD] [TD]H [/TD] [TD]I [/TD] [TD]J [/TD] [TD]K [/TD] [TD]L [/TD] [/TR] [TR]…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 3.7k visitas
  4. Started by JuanP,

    Hola, me podéis ayudar con una macro para que muestre el numero de semana de una fecha, lo que he encontrado ha sido para sacar el número de semana en una hoja de Excel, para hacerlo desde una macro, el resultado que me está dando no es el correcto. Lo estoy aplicando a un gráfico, pero cuando pongo la primera semana (el resultado no es el correcto), no saca la segunda semana. Os dejo el archivo de ejemplo. Gracias. Semana numero.xlsm

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.3k visitas
    • 1 seguidor
  5. Hola, alguien no tendra alguna funcion o macro que al seleccionar una celda uno tenga la opcion de colocarle una unidad por ejemplo m2, m3, kg, o cualquier otra unidades de medida digo esto por que es engorroso hacer click derecho ir a formato de celdas, numero, personalizado y colocar # etc, lo mejor seria buscar la funcion creada tal vez por el usuario y seleccionar la celda y en otro box colocar la unidad supongo, esto sirve para realizar computos metricos de forma rapida. Gracias de antemano

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.1k visitas
  6. Hola! Tengo un excel para el manejo de préstamos, y con el tiempo lo he ido mejorando porque me divierte y me gusta intentar automatizarlo tanto como se pueda. Si bien la hoja tiene varias columnas, para el tema en cuestión sólo es necesario mencionar 2. En la columna A pongo la referencia (con este dato hago la mayoría de fórmulas), y en la F se pone el saldo que queda por pagar. Ahora bien, llevo varios días intentando lograr "predecir" la referencia que sigue al añadir otra fila. Mi mejor éxito es esta fórmula (que corresponde a la celda A9): =INDICE(DESREF(BUSCARX($A8,$A$2:DESREF($A8,-1,0),$A$2:DESREF($A8,-1,0),,0,-1),1,0):$A8,COINCIDIR(VERDADERO,DESR…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 698 visitas
    • 1 seguidor
  7. Necesito crear una funcion que me obtenga el total de una columna en un listbox. Pero que yo le pueda pasar como parametros el formulario, el nombre del listbox y el numero de columna y me devuelva como resultado el total del listbox. No se si los parametros se deben pasar como texto y de que forma. Mas o menos con esta estructura. Les agradezco de antemano su ayuda. Public Function totalcol(ByVal columna As Integer, ByVal formulario As TextBox, ByVal control As TextBox) end function

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.6k visitas
  8. Hola, siento volver a preguntar, tenia que haber preguntado esto primero, pero he tentado buscar una solución de porque con cada cambio que realizo tiene que pasar por esta función, pero sigo sin contrar una solución. Os cuento, he puesto una función personalizada para que realice una búsqueda por determinadas hojas y muestre su resultado, aunque tengo que refinarla un poco más porque me está mostrando unos resultados diferentes, como al pasar las horas que no sé por qué tiene que cambiar los valores. El caso es que, si se pone un punto de interrupción en la función, cada vez que se realice un cambio, vemos que pasa por esta función, pero ya no solo en la celda que…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.8k visitas
  9. Started by zepeda87,

    Buen día..., tengo un gran problema..., o tal vez..., pequeño para otros... Algunas fórmulas del Libro1 marcan #¡VALOR!..., pero al momento de abrir el Libro2..., funcionan correctamente...! Quiero saber si hay una manera de trabajar con esas formulas y que funcionen correctamente sin necesidad de abrir el Lirbro2. Adjunto archivos e imágenes...! Saludos...! Libro1.xls Libro2.xls

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 535 visitas
  10. Hola a todos, Me gustaría preguntar si alguien tiene desarrollada una función tal que cuando el usuario introduzca un número cualquiera, entonces la función devuelva la referencia de la columna asociada a ese número. Algo así, por ejemplo: Function ReferenciarColumnas(numero As Integer) As String Application.ScreenUpdating = False ' Limpiamos los errores anteriores (por si acaso)... Err.Clear ' Tratamos los errores de la función... On Error Resume Next ' Si el número introducido no es válido, entonces... If numero <= 0 Or numero > 16384 Then ' Notificamos al usuario con un mensaje de error... MsgBox "El nú…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 750 visitas
  11. Started by Pajoco,

    Hola. Añadí una funcion a un libro de excel que ya tenía bastantes macros. La funcion me permite estandarizar el formato de la informacion en una columna de una hoja en particular del libro. El caso es que cada vez que corro una macro, la rutina pasa siempre por la funcion y asumo que la funcion va a repasar todas las celdas para la que fue creada (casi un millón de filas). Eso me relentiza muchisimo el proceso. Existe alguna manera de hacer que la macro evite ejecutar la funcion o saltarla de algun modo?.

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 505 visitas
  12. Started by manus,

    Hola compañeros, Queria hacer una consulta sobre una función que necesito, pero no he podido encontrar como generarla. ¿Cómo puedo hacer que una función retorne especificamente la dirección de la celda donde esta fefinida esa misma función? Resumiendo solo a lo que necesito, pense que era solamente Function direccion_celda() As String direccion_celda = ActiveCell.Address End Function Pero me di cuenta que como voy a estar ejectutando y moviendome entre celdas, la función no me retorna necesariamente la celda de la función. Quedo atento a su valiosa colaboración. Saludos.

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.5k visitas
    • 1 seguidor
  13. Started by LeandroA,

    Hola como puedo hacer para que mi funcion se actualice sola en la celda como lo hacen las funciones propias de excel, me explico si pongo en una celda =ahora() esta se auto refresca cuando cambio algún valor de la celda, pero si yo creo una funcion como esta Public Function Mifuncion() As String Mifuncion = Now End Function y luego en la celda pongo =Mifuncion() esta no se auto refresca cuando cambio un valor en cualquier celda. Gracias

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.4k visitas
  14. Started by JDaniel,

    Buenas, tengo un programa ligeramente complejo bastante rematado, pero me falta un tema. Tengo una función que se encarga de contar las celdas de tal color, desde una fecha hasta otra. Esto funciona bien. El problema es que esta funcion actua sobre 100 hojas, todas iguales, creadas a partir de una como plantilla. El problema es que si por ejemplo, actualizo (ya sea de manera automatica, o a mano) el libro completo estan sobre la hoja1 (teniendola activa), todas las funciones del libro se actualizan teniendo en cuenta las casillas de la hoja activa. Es posible decirle a la macro, usa F2 de TU HOJA? Adjunto el archivo de excel. La funcion problematica se encuentra en e…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 644 visitas
  15. Started by Mauricio_ODN,

    Hola a todos Primero que nada deseo agradecer el tiempo en leer este post, Muchas Gracias. Me acerco a ustedes para pedir su ayuda para lo siguiente: Tengo una UDF, la cual tiene dos escenarios: 1.- Si Tiempo Promedio y Duración del Video son diferentes de 0, hacer el calculo 2.- Si lo anterior es igual a 0, se realiza el otro calculo por cuartiles. El detalle es que son muchas celdas a seleccionar, lo cual creo puede ser engorroso, entonces, pensando en simplificar la función, me pregunte si fuera posible: a.- Colocar 1 al principio de la función y después solo seleccionar 2 celdas correspondientes (Rango continuo o discontinuo) b.…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 498 visitas
  16. Started by andresko,

    If Mid(ComboBox1.Value, 1, 1) = "B" Or Mid(ComboBox1.Value, 9, 1) = "B" ThenTipo = 2ElseTipo = 1End IfAncho = Mid(ListBox1.Value, 1, 3)If Mid(ListBox1, 18, 1) = "u" ThenEspesor = Mid(ListBox1.Value, 16, 2)ElseEspesor = Mid(ListBox1.Value, 16, 3)End IfDim importacion As Variant, Proveedorproducto As Variantimportacion = Application.VLookup(TextBox7.Value, Worksheets("Estructura COD. Lotes Film").Range("A3:J102"), 3, False)Proveedorproducto = Application.VLookup(TextBox7.Value, Worksheets("Estructura COD. Lotes Film").Range("A3:F102"), 6, False)If IsError(importacion) = False ThenCells(n, 7).SelectActiveCell.FormulaR1C1 = TextBox7.Value & importacion & Proveedorprod…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.6k visitas
  17. Started by axmug,

    Hola, Quiero hacer una macro que cada vez que escriba en una celda, al cambiar de celda me borre una de las celdas repetidas. Para ello utilizo el evento Worksheet_Change, que por lo que entiendo, se ejecuta cuando se cambia de celda. El problema que tengo es que no me ejecuta la macro. No me hace nada y tampoco hay ningún error. Este es el código: Public Sub Worksheet_Change(ByVal target As Range) Dim f_max, c_max As Long f_max = ActiveSheet.Cells.SpecialCells(xlLastCell).Row Range("E" & Rows.Count).End(xlUp).Row UltFila = Range("E" & UltFila + 1).Select If (target = UltFila) Then For f = 3 To f_max For ff = 4 To f_max If ActiveCell.Value = Acti…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 3.2k visitas
  18. Buenas tardes Vengo a pedir consejos de procedimientos sanos que eviten problemas cuando una tabla de transacciones vaya creciendo mucho. Alzo una carpeta en donde están dos libros muy básicos y en uno de ellos uso INDICE y COINCIDIR pero buscando en el otro libro. En el libro de compras están escritas mis dudas. Muchas gracias. Rubén 2023_0523 Compras00.xlsx 2023_0523 Proveedores00.xlsx

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 501 visitas
    • 1 seguidor
  19. Started by Rolex09,

    Buenas tardes, tengo el siguiente problema: Realice un Userform para que pase los datos a celdas de Excel, y en este userform en algunos TextBox utilice formulas manejando la funcion Change, el problema es que al colocar los datos en el userform todo lo hace bien y de hecho lo pasa a las celdas que corresponden pero detiene la macro al final, mandando error "Se ha produciod el error 13 en tiempo de ejecucion: No coinciden los tipos y me ilumina en amarillo la primer linea de la siguiente macro: Private Sub Gravamen_Change() TextBox2.Text = (Format((Ingr.Text) * (Gravamen.Text) / 100, "#,##0.00")) TextBox3.Text = (Format((Ingr.Text) + ((Ingr.Text) * (Gravamen…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.1k visitas
  20. Started by SALAVERRINO,

    Buenos días a los integrantes de este foro, en esta ocasión recurro a uds, para que brinde su apoyo en como mejorar la siguiente macro, lo que requiero es que me permita seleccionar la ruta donde se encuentra el archivo a utilizar, ya que esta macro ejecuta todos los archivos que se encuentran en dicha carpeta (previamente haber copiado todos los archivos a una carpeta determinada) y lo otro sería que si solo mostrara los archivos que empiecen con el nombre CONSOLIDADO xxxxxxxx.xlsm o CONSOLIDADO xxxxxxxx.xlsx, para lo cual adjunto archivos como ejemplos. archivo principal: MUESTRA FORMULARIO.xlsm Private Sub CommandButton2_Click() Dim ruta As String Dim …

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.5k visitas
  21. Buenos días a todos. Tengo un libro de Excel con varias hojas las cuales copio y pego a medida que me las van enviando por mail, por ejemplo la delegación de canarias me envia su excel y yo lo copio/pego en uno similar al que os adjunto. La idea es que necesito fusionar todas las hojas en la hoja matriz sin que se dupliquen y que ha medida que vaya actualizando las hojas se actualice a su vez en la matriz, los rangos que quiero copiar es de A11:N200. Necesito vuestra ayuda para poder crear una macro que realice esa acción. Espero se entienda mi consulta y os doy las gracias de antemano. Sois de gran ayuda!!! SEGUIMIENTO FIJA.rar

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 775 visitas
  22. Started by ccf22armdv,

    Tengo un archivo excel de genealogia y no se como podría hacer en otra hoja, un formulario que me devolviera con macros cada una de las relaciones (padre,abuelos,bisabuelos etc) pulsando en botones habilitados para ello.Teniendo en cuenta las relaciones entre todos saber quienes son los padres de un codigo introducido , (codigos que tengo asignado a cada uno) en fin se que es dificil pero haber que podeis hacer, gracias de antemano. El archivo que mando lo adapte de vuestro foro. ARBOLRESUMEN.rar

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 901 visitas
  23. Started by ccf22armdv,

    tengo un archivo bajado de la webb que podría adaptar a mis necesidades pero no se como insertar mas nombres(600) y que valgan las mismas macros, así como que el arbol no esté debajo de los nombres sino al lado y el boton de ejecutar se desplace y esté visible siempre estando en cualquier fila. arbol.rar

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 637 visitas
  24. Started by EMMA03,

    Buenas tardes soy nuevo en el foro necesito generar una Macro de EXCEL que se pase a .txt tengo el archivo de base y la estructura del txt. es para generar una poliza y suvirla a la contabilidad, en la estructura del .txt el cero son cargos y el 1 abonos. Saludos pólizas 701201.txt PRUEBA MACRO.xls

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 856 visitas
  25. Started by Mariett,

    Hola, tengo un problema con mi macro, tengo una lista de datos y por cada dato genero la copia de una hoja modelo, el problema es cuando necesito agregar mas datos y vuelvo a ejecutar la macro, me genera otra hoja pero no con el nombre del ultimo dato agregado, si me pueden ayudar lo agradezco. Saludos Sub Generarhoja() Dim HojaOrigen As Worksheet, HojaNueva As Worksheet Set HojaOrigen = Sheets("UF_Dolar") Dim ultfla As Long ultfila = Range("A" & Rows.Count).End(xlUp).Row u = ultfila - 1 'para recorrer los registros del listado For i = 1 To u 'desactivamos la actualización/refresco de pantalla Application.ScreenUpdating = False 'duplicamos la Hoja 'modelo'…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 690 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.