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. Buenas tardes, Mi duda surgió cuando me panteé cómo saber si un archivo excel está abierto antes de abrirlo a través de código VBA. Encontré varias maneras de saberlo pero ninguna de ellas diferencia si el archivo en cuestión está abierto por el mismo usuario que pretende abrirlo o si por el contrario está abierto por otro usuario de la red. Sin embargo se me ocurrió que tal vez si encontraba una manera de saber qué usuarios tenían abierto dicho archivo, me ayudaría a discernirlo. Y para ello encontré el siguiente código: Sub Numero_Usuarios() Dim users As Variant users = ThisWorkbook.UserStatus MsgBox UBound(users, 1) End Sub[/CODE] Y aunque …

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 2.3k visitas
  2. Started by Incongruente,

    Tengo esta fórmula matricial en la que la orden se repite ocho veces: =SI.ERROR((COINCIDIR(1;E$1:E$5;0)>0)*(COINCIDIR(3;E$1:E$5;0)>0)*Hoja2!$B$1;0)+SI.ERROR((COINCIDIR(1;E$1:E$5;0)>0)*(COINCIDIR(4;E$1:E$5;0)>0)*Hoja2!$B$2;0)+SI.ERROR((COINCIDIR(1;E$1:E$5;0)>0)*(COINCIDIR(6;E$1:E$5;0)>0)*Hoja2!$B$3;0)+SI.ERROR((COINCIDIR(1;E$1:E$5;0)>0)*(COINCIDIR(9;E$1:E$5;0)>0)*Hoja2!$B$4;0)+SI.ERROR((COINCIDIR(1;E$1:E$5;0)>0)*(COINCIDIR(10;E$1:E$5;0)>0)*Hoja2!$B$5;0)+SI.ERROR((COINCIDIR(1;E$1:E$5;0)>0)*(COINCIDIR(11;E$1:E$5;0)>0)*Hoja2!$B$6;0)+SI.ERROR((COINCIDIR(1;E$1:E$5;0)>0)*(COINCIDIR(12;E$1:E$5;0)>0)*Hoja2!$B$7;0)+SI.ERROR((COINCIDIR(1;E$1…

    • 0

      Reacciones de usuarios

    • 18 respuestas
    • 1.5k visitas
  3. Started by EDUARD1580,

    Que tal amigos como estan en esta oportunidad deseo convertir esta planilla de control de horarios en un formulario cuando se ingrese la hora del trabajador quede en la hoja del nombre correspondiente teniendo encuenta que son horarios flexibles contando con horas extras diurnas y nocturnas y otro horario tambien es flexibre en horario nocturno que toma desde las 22:00 hasta las 6:00 am que son el horario normal teniendo encuenta el recargo de 8 horas nocturnas del turno y dejarlo que este turno tenga sus horas extras diurnas y nocturnas en horarios flexibles tambien si la persona trabaja dias dominicales y festivas incluir en el formulario, o si hay algo para mejorar e…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.1k visitas
  4. El problema que tengo es el siguiente: Tengo una hoja de calculo, la cual tiene datos desde la celda A1, hasta aproximadamente la celda L250, el echo es que tengo que, filtrar datos, por la columna "K",y columna"L", que tiene unos 10 valores distintos. (opcion1, opcion2, opcion3....) bueno mi solución, fue crear un userform, el cual posee varias casillas de verificación, y al chulear, dichas casillas, y pulsar un botón de búsqueda, me realiza el filtro. Y hay es donde viene mi problema, el filtro se me aplica, únicamente a una solo opción, es decir si chuleo la opcion1, y la opcion2 únicamente me aplicara el filtro a una de estas opciones, y lo que necesito, …

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 3.2k visitas
  5. Started by leorof,

    hola que tal lo que pasa es que tengo una plantilla de punto de venta y todo iva bien pero cuando registre muchos productos se descontavan pero no el producto con el codigo necesito una funcion o macro para descontar el producto esta es mi plantilla espero y me puedan ayudar esta es la funcion. Sub Guardar_ventas() Range("Información!C" & Range("R6")).Value = Range("Información!C" & Range("R6")) - Range("G7") Sheets("Resultados").Visible = True Sheets("Resultados").Select Range("A2").Select Do While ActiveCell.Value <> "" ActiveCell.Offset(1, 0).Select Loop ActiveCell.Offset(0, 0).Value = Range("Ventas!l1") ActiveCell.Offset(0, 1).Value = Range("Ve…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 978 visitas
  6. Started by JRGO,

    Buenas Amigos necesito ayuda con una macro, quiero hacer una donde me refleje al presionar un botón el libro mayor, mayor analítico, balance de comprobación y los estados financieros, pero primero quiero empezar con el mayor y entonces tengo un problema con la macro que no me permite avanzar los datos, es un tema interesante para las personas que les gusta la contabilidad, saludos PRUEBA.rar

    • 0

      Reacciones de usuarios

    • 12 respuestas
    • 1.6k visitas
  7. Estimados: Tengo una macro que rellena las celdas en blanco de una determinada selección a través de una fórmula. Sin embargo al trabajar con grandes bases sometidas a criterios de ordenación, esto se vuelve poco efectivo si no tengo la columna pegada como valor. Requerimiento: como debiera ser el código para incorporar a la macro de la selección de la columna a la cual aplico el rellenar celdas en blanco, independiente cual sea esta. P.D.: No hubo forma de que pudiera subir el archivo. Gracias!

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.3k visitas
  8. Hola a todos tengo un inconveniente con una formula. Private Sub cmdcantidad_exit(ByVal Cancel As MSForms.ReturnBoolean) On Error Resume Next cmdCostoTotal.Value = cmdcantidad.Value * cmdCostoUnidad.Value Aquí estoy hallando el valor de del costo total, multiplicando cantidad por el costo unitario lo que sucede es q al ingresar el dato de cantidad al multiplicarlo me arroja el valor con "," ejem 9,45 y en el Excel esto lo toma como texto y no suma todos los valores, e intentado que el valor sea con punto "." pero no hallo la formula para hacerlo, adjunto mi archivo espero m puedan ayudar. Gracias CRONOGRAMA DE ALMUERZOS, CENAS Y BOCADITOS ACTUALIZADO BAGDAD - NOV. F…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2k visitas
  9. Started by EDUARD1580,

    Buen dia amigos lo que sucede es que en este formato tengo problemas por que al consultar un numero de factura no se queda permanente para ingresar los items de la misma factura me explico;en la planilla de la base de datos esta marcado con amarillo una factura que tiene varios items y cuando voy a consultar me toca ingresar el numero de factura por items lo que pretendo es que me ayuden a que esta formato me deje ingresar los codigos de barras sin problemas de la misma factura que no toque ingresar el mismo numero para hacer la consulta,y ya terminado la consulta sigue con la factura siguiente .porfa alguien que me ayude se los agradecerian userfrom.rar

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 759 visitas
  10. Hola, en mi hoja de excel tengo una lista desplegable y al lado una imagen, me gustaria que clicando una opcion no me apareciera la imagen y clicando cualquiera de las otras opciones me apareciera, quisiera que me ayudaran a realizar una macro para poder realizar eso, con la mayor brevedad si es posible, gracias de antemano.

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 655 visitas
  11. Started by axmug,

    Hola. Tengo hecha una macro muy sencilla cuyo objetivo es mostrar en otra hoja aquellas celdas que están en blanco. Este es el código: Public Sub blancos() Dim f As Integer Dim f_max, c_max As Long ActiveWorkbook.Worksheets("Hoja1").Copy after:=Worksheets("Hoja2") 'Para saber cuantas filas y columnas hay como maximo rellenas f_max = ActiveSheet.Cells.SpecialCells(xlLastCell).Row c_max = ActiveSheet.Cells.SpecialCells(xlLastCell).Column 'Para situarse en la celda Range("AE").Select 'Cells(4, 10).Select 'Rows(4, 10).Select For f = 4 To f_max If ActiveCell.Value <> "" Then ActiveCell.EntireRow.Delete If ActiveCell.Value = "" Then ActiveCell.Offset(1,…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.6k visitas
  12. Started by gary rock,

    Buena tardes, soy nuevo espero y este bien redactada la duda: Tengo una base de datos donde tengo columnas con Titulos como por ejemplo RF, Año, Semana, dia, Equipo, Maquina Tiempo. Quisiera poder filtrar la informacion por semana y que me elimine o no ponga los tiempos que son mas cortos o mas chicos (Menores a 00:30 Miutos) no aparescan, pero si en el dia el equipo se reptite aunque sea menor a 00:30 minutos aparesca. lo quise hacer con autofiltro grabado pero elimina todo lo que se menor al tiemopor marcado. Adjunto archivo. Espero y me puedan ayudar. Reporte Semanal.zip

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1k visitas
  13. Started by artmandu,

    Hola que tal, un Saludo a todos Antes que nada una disculpa por preguntar algo que a lo mejor es muy sencillo pero yo lo ignoro Estoy tratando de modificar el formato del texto que aparece en la barra de titulo de un UserForm, pero no he podido hacerlo, alguien sabe como se puede hacer?, o esto no puede ser modificado. De antemano les agradezco mucho su ayuda Saludos!!!! Arturo

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.3k visitas
  14. Buenas, tengo un formulario en el que recojo datos de tiempo separados por un punto como coma (25.012). El mismo formulario me sirve para modificar los datos introducidos anteriormente. El tema es que cuando carga datos introducidos anteriormente, en vez de cargarlos con el punto los carga con la coma (25,012) El problema viene aquí, ya que al guardar los datos me los guarda con valor en los decimales de 25.000 en vez de 25.012 Los tres decimales los convierte en 000 Que puede ser? Esto es lo que tengo para que me cargue los datos en los textbox TextBox1 = Format(Range("I" & UltLinea + 1).Value, "00.000") TextBox2 = Format(Range("J" & UltLinea + 1).Value, …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 776 visitas
  15. Estimados amigos, una consulta, estoy bloqueado y no se como hacer un archivo, necesito sus consejos para hacer este archivo que distribuya: Tengo valores totales al nivel NIVEL 1.1 y al NIVEL 1.1.1.1, Necesito hacer una distribución a los otros niveles de acuerdo a porcentajes variables del nivel NIVEL 1.1.1, tomando en cuenta que la cantidad de items no es constante desde el NIVEL 1.1. CONSULTA: 1. Debo tener una tabla de porcentajes de distribución para todos los niveles? 2. Debo tener una tabla que indique cuantos items existen por cada nivel para hace la distribución total? 3. Se puede hacer una macro que indique cuantos items existen por niveles y que sea varia…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 946 visitas
  16. Started by 4lfr3d096,

    Hola a todos!!!! Espero puedan ayudarme a resolver este pequeño problema! Estoy creando una macro para que se cambien "dinamicamente" las etiquetas de datos de un grafico, el máximo de etiquetas que puede tener dicho gráfico son 8 . Y para lograrlo quiero insertar el siguiente codigo para que primero agregue las etiquetas de datos y después mediante la fucion If decida si la etiqueta de gráfico existe para asi asigarle el valor que se encuentra en una celda de la hoja. El codigo es algo asi: Private Sub CommandButton1_Click() ActiveSheet.ChartObjects("Gráfico 1").Activate With ActiveChart .FullSeriesCollection(1).Select .FullSeriesCollection(1).Appl…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 738 visitas
  17. Started by jroncalla,

    Necesito crear un programa para mostrar los números primos inferiores a un número siendo N un número entero positivo mayor que uno. Implementar el programa en un USERFORM que vaya colocando los resultados de los numeros primos en el excel en columna, a partir de una celda seleccionada por el usuario. Se debe colocar un boton en la hoja que llame a la .Por ejemplo, los números primos menores que 50 son: 2, 3, 5, 7, 19, 23, 29, 31, 37, 41, 43. Si N=50, el programa debería imprimirlos en columna a partir de la celda seleccionada. Un procedimiento clásico para hallar todos los números primos menores que un entero positivo es la llamada criba de Eratóstenes. Lo que se hace…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 5.4k visitas
  18. Started by SALAVERRINO,

    buenas noches, necesito de sus experiencias para este pequeño problema como podría hacer para que esta rutina me permita leer archivo pdf. Private Sub APELLIDOS_Y_NOMBRES_Click() Dim Fila As Long On Error Resume Next Fila = APELLIDOS_Y_NOMBRES.ListIndex + 4 Imagen.Picture = LoadPicture("") Imagen.Picture = LoadPicture(Sheets("Hoja3").Range("M" & Fila)) End Sub agradezco desde su gentil aporte.

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 862 visitas
  19. Hola a todos, tengo una lista gigante de modelos de productos en excel la cual quiero insertar a cada modelo su respectiva imagen mediante una macro, es decir, en la columna B tengo una infinidad de modelos de productos y en la columna A quiero que se inserte la imagen correspondiente de cada uno de esos modelos, ejemplo: [TABLE=width: 500] [TR] [TD=align: center]A[/TD] [TD=align: center]B[/TD] [TD][/TD] [/TR] [TR] [TD]imagen del modelo[/TD] [TD]modelo[/TD] [TD][/TD] [/TR] [TR] [TD][/TD] [TD]AA0001[/TD] [TD][/TD] [/TR] [TR] [TD][/TD] [TD]BB0002[/TD] [TD][/TD] [/TR] [TR] [TD][/TD] [TD]CC0003[/TD] [TD][/TD] [/TR] [TR] [TD][/TD] [TD]DD0004[/TD] …

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 2.4k visitas
  20. Started by olguita9222,

    hola espero esten bien acudo con ustedes por que son los mejores, tengo un problema con la siguiente macro, esta adjunta, me trae los datos que le pido pero, de la sucursal que solicito necesito que en un nuevo userform aparezcan sol el nombre de las tareas que necesito en el adjunto pongo un ejemplo espero me puedan ayudar de antemano muchas gracias busqueda de datos.rar

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 554 visitas
  21. Started by fantasma16,

    hola a todos en el foro. espero puedan ayudarme con un problema para saber dias habiles, dias de falta.... contar dias.xls

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 1k visitas
  22. Started by SALAVERRINO,

    nuevamente solicito de su atención, quisiera saber si mediante esta formula que indico: =HIPERVINCULO(IZQUIERDA(CELDA("nombrearchivo"),ENCONTRAR("[",CELDA("nombrearchivo"))-1)&"\Archivo"&$A38&".pdf",$A38&".pdf") también se pueden hacer a nivel de imágenes, por lo que donde se encuentra alojada en una usb o disco externo y por lo general varia la unidad de ubicación dentro de una pc.

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.4k visitas
  23. Started by jeladio,

    Hola amigos acudo austedes por el siguiente problema: tengo este codigo para poder acceder a MYSQL Set rs.ActiveConnection = cn rs.CursorLocation = adUseClient rs.CursorType = 3 rs.LockType = 3 dato = Sheets("Hoja1").Range("A1").Value rs.Source = "SELECT * FROM FOTOS " _ & "WHERE NOMBRE =" _ & Chr(34) & dato & Chr(34) & ";"[/CODE] mi problema es que donde dice sr.source es un string pero no puedo ponerlo como Dim rs.source as string porque me marca esa linea en rojo como puedo hacer para declararlo como un string. saludos

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 1.6k visitas
  24. Started by mupolitico,

    hola a todos los miembros de Ayuda Excel, soy un principiante en lo que se refiere a programacion del excel con VBA, y como todo aquel que comienza un pequeño proyecto tiene dudas. En mi caso, la duda es: ¿Se puede hacer la sumatoria de dos o mas matrices una vez definidas con metodos iterativos? en otras plalabras, quiero que a mi matriz inicial se le sume una segunda, luego una tercera y asi hasta donde yo desee, claro esta siempre y cuando mis matrices ya esten definidas en mi hoja de calculo y lo unico que querria hacer seria que una vez reconocida la primera con un determinado codigo yo le pueda añadir, con una segunda iteracion, la segunda matriz luego de que est…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 2.8k visitas
  25. Started by albersil,

    Buenas, me estoy devanando los sesos para conseguir lo que quiero hacer, pero mis entendederas no dan para tanto, así es que solicito humíldemente vuestra ayuda. La cuestión es que quiero quitar las flechas de los enlaces directos de windows, pero no tengo acceso al regedit, así es que la única solución que se me antoja es hacerlo desde VBA con EXCEL, ya que un fichero EXCEL con VBA que tengo con otro código sí ha conseguido modificar el registro, pero en otra rama. Bueno al grano, se que las flechas se eleminan cambiando la entrada IsShortcut por xsShortcut , en las ramas HKEY_CLASSES_ROOT\lnkfile y HKEY_CLASSES_ROOT\piffile, pero no se hacerlo con VBA. Mediante un fich…

    • 0

      Reacciones de usuarios

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