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. Started by xandro,

    Buenas tardes, necesito, por favor, una macro para que cuando yo tenga una base de datos con muchas fechas e introduzca una nueva fecha que esté repetida, aparezca un mensaje que diga "esa fecha ya está usada" Muchas gracias!!!

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 674 visitas
    • 1 seguidor
  2. Hola Amigos y Amigas, necesito que me ayuden con este planteamiento. Necesito cargar desde una Hoja de Excel a tres ListBox todos los registros de la Cuenta que la Hoja Resumen Crat-Cli encuentre en la Hoja CartolaCli (Cuenta, Razón Social, Vencimiento, Monto o Importe), El evento debe suceder al dar Enter “ONKEY” en la celda de la columna A donde está la cuenta en la Hoja Resumen Cart-Cli. La Cuenta y Razon Social encontrada debe cargar en el encabezado del Form1, el vencimiento y el importe de debe estar distribuido en tres ListBox según condición de Clase de Documento: Factura (DF) Nota Crédito (DN) Transacción (DZ) En el caso de Factura están separado la suma de s…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 712 visitas
    • 1 seguidor
  3. Started by Benito Bartolomé,

    Hola a todos; -¿Es posible trabajar con símbolos usando formularios? En la macro que adjunto cargo el símbolo en un TextBox al pulsar un botón, esto sucede porque previamente lo he insertado. Lo que quiero conseguir es que al pulsar ese mismo botón yo inserte dicho símbolo que tenga almacenado en una "variable o Label" sin necesidad de tener que cargarlo de dicha hoja. Adjunto macro con detalles. Saludos a todos MCaracteres.xlsm

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 854 visitas
    • 1 seguidor
  4. Started by xandro,

    Buenas tardes, Necesito un libro de excel en la que con una macro, copie una hoja las veces que sean y que lo nombre del 01 de enero hasta el 31 de diciembre. Es posible??? os adjunto archivo en el que tengo la macro pero nombra a las hojas con números. muchas gracias prueba.xlsm

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 613 visitas
  5. Started by pinoji,

    Hola nueva,ente colegas. Profesor JSD, como le explicaba, ayer en la noche estuve haciendo algunas validaciones en el sistema, pero en la revisión me di cuenta que en el TxtPrecio me está multiplicando el valor por 1000. Cuando te remites a la Hoja Tarifario, en la Fila 160 vas a encontrar el precio de este servicio (Factura 21 - Playa Paraiso) Servicio Mtto Impresora Laser que es a $ 420.00, sin embargo el precio lo pone a $ 42 000.00. Adjunto archivo. Profesor, disculpe tantas molestias, en verdad me siento apenado. Un saludo cordial profesor. Mis respetos. Pino Facturación BM v6.0.0 JSD.xlsm

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 708 visitas
    • 2 seguidores
  6. Started by cblancop_cl,

    Tengo un archivo de Excel con macros para una gestión de biblioteca en la cual he agregado un ListBox para buscar usuarios en una tabla "Usuarios", necesito que después de realizar la búsqueda, al hacer un doble click en un registro desplegado en la lista, posicione el cursor en la tabla y en la celda de la primera columna del registro seleccionado con el doble click, esto es lo que tengo: Private Sub TXTBusqUsuario_Change() NumeroDatosUsuarios = Hoja2.Range("B" & Rows.Count).End(xlUp).Row Hoja2.AutoFilterMode = False Me.LBXUsuarios = Clear Me.LBXUsuarios.RowSource = Clear y = 0 For fila = 8 To NumeroDatosUsuarios Descripcion = Hoja2. Cells(fi…

    • 0

      Reacciones de usuarios

    • 10 respuestas
    • 1.2k visitas
    • 1 seguidor
  7. Started by karrakilla,

    Hola a todos Intento que esta macro me proteja todas las hojas y me active el autofiltro en todas las hojas, pero solo me activa el autofiltro en la hoja activa, en el resto no. ¿Me podeis ayudar? estoy bloqueado... Sub Proteger_libro() On Error GoTo fin Dim sht As Worksheet Application.ScreenUpdating = False ActiveWorkbook.Protect ("contraseña") For Each sht In ActiveWorkbook.Worksheets If sht.Visible = True Then sht.Protect ("contraseña") ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFiltering:=True End If …

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 637 visitas
    • 1 seguidor
  8. Buenos días a todos de nuevo. Busco ayuda en este asunto porque voy muy perdido. Tengo un archivo con dos hojas, "Principal" y "CargaWeb". En la hoja Principal quiero traerme las filas de CargaWeb donde los datos no se repitan en Principal. Pero el primer problema es que la hoja CargaWeb no siempre tiene las columnas en el mismo orden. Aunque es cierto que los títulos que necesito en Principal están en CargaWeb. He creado un fichero de muestra y veréis que en Principal hay muchas columnas, las que está coloreadas son las que necesito rellenar. Es decir tengo dos problemas, uno que los datos no se han de repetir (en este caso por ejemplo PROVEEDOR y NUMERO DE DOC…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1k visitas
    • 1 seguidor
  9. Started by sam017,

    Hola... podría alguien ayudarme a extraer el valor seleccionado en una segmentación de datos y obtenerla en una celda de excel? Muchas gracias

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 5.9k visitas
    • 2 seguidores
  10. Started by pinoji,

    Buenos días colegas. Espero se encuentren bien de salud. En el Sistema de Facturación que he estado trabajando y que el profesor JSD me ha estado ayudando necesito hacer algo que realmente no encuentro cómo hacerlo. Yo Guardo las Facturas en PDF en un a carpeta (D:\Facturación\Facturas), pero cuando necesito hacerle una modificación (FrmModificarFactura) a una Factura "X", necesito que me sobre escriba el archivo ya existente pero con los cambios que se le haya hecho a dicha factura. Intenté hacerlo con el condicional IF, pero parece que algo no estoy haciendo correctamente y necesito resolver este problema. Ejemplo: Yo confeccioné la Factura Nº 16 Fincimex…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 920 visitas
    • 2 seguidores
  11. Hola a todos, he puesto un control de errores en un procedimiento y se duplica el mensaje de error dos veces y no se porqué lo hace. El procedimiento es este: Sub InsertarTabla() On Error GoTo Etiqueta Dim nTabla As String nTabla = ActiveSheet.ListObjects(1).Name ActiveSheet.Range(nTabla & "[#All]").Select Selection.Copy Etiqueta: If Err.Number = 0 Then 'Correcto ElseIf Err.Number = 9 Then 'No sé porque repite dos veces el mensaje, si no hay ninguna tabla debe destildar el check MsgBox "No hay ninguna tabla, operación cancelada", vbCritical, "Mensaje" UserForm1.CheckBox1.Value = False '---> Si comen…

    • 0

      Reacciones de usuarios

    • 12 respuestas
    • 531 visitas
    • 1 seguidor
  12. hola ingrese esta formula en vba y por alguna razon si utilizas la misma formula en una celda, si tienes el resultado en toda la columna, osea si se aplica sin problema; pero cuando lo hago en codigo se aplica en algunas celdas de la columna y en otras arroja un 0, como si no existiera resultado... no se que sucede que hice mal... alguien me puede explicar. Private Sub Worksheet_SelectionChange(ByVal Target As Range) uf = Range("A" & Rows.Count).End(xlUp).Row With Range("B2:B" & uf) .Value = _ "=XLOOKUP(1,(espejo[Orden Number]=A2)*(espejo[role aprobador]=""capataz""),espejo[nombre approbador])" …

    • 0

      Reacciones de usuarios

    • 20 respuestas
    • 898 visitas
    • 1 seguidor
  13. Hola, me gustaría hacer un excel en el que las casillas de verificación se colocaran en una fila y en la fila inferior mostrara el resultado TRUE o FALSE. Arrastrando las casillas no es posible hacerlo y he encontrado buscando un módulo pero es para hacerlo en columna. ¿Se podría hacer lo mismo pero como yo lo quiero? Decir que no tengo mucha idea de VBA. Esto es lo que he encontrado. Sub LinkChecks() 'Update by Extendoffice Dim xCB Dim xCChar i = 2 xCChar = "B" For Each xCB In ActiveSheet.CheckBoxes If xCB.Value = 1 Then Cells(i, xCChar).Value = True Else Cells(i, xCChar).Value = False End If xCB.LinkedCell = Cells(i, xCChar).Address i = i + 1 Next x…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.2k visitas
    • 1 seguidor
  14. Started by mariasanz,

    Combinar celdas iguales en fila - macro Hola, tengo una necesidad, que llevo varios días buscando solución pero no he logrado encontrar en la web ninguna macro que me pueda ayudar. Ya estoy algo desesperado, ojalá me podáis ayudar. Tengo una Carta GANTT con los días en una fila, las semanas en otra fila y el mes en otra fila. Para poder automatizarlo he puesto en cada celda de la semana o mes, una fórmula. Lo que necesito es que cuando clique en un botón se unan todas las celdas, tanto de la fila semana como de la fila mes, que estén seguidas y sean iguales (es posible que haya semana 23 de distintos años, por eso necesito que una solamente las celdas que están s…

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 776 visitas
    • 1 seguidor
  15. Started by Victoriabap,

    Hola, tengo la siguiente duda, necesito pasar de columna a fila de manera masiva, ejemplo: Lo que tengo: 4321; A04 4321; A03 4321; A04 8765; A01 8765; A02 8765; A03 Y lo que necesito es: 4321; A03; A03; A04 8765: A01; A02; A03 Son varios códigos distintos (4321, 8765q), con distintos datos que cambiar de columna a fila, ocupar la función trasponer me ocupara mucho tiempo.

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.1k visitas
    • 1 seguidor
  16. Started by david45245,

    Hola, ¿hay alguna macro o forma de automatizar este proceso? Estoy usando esta extensión gratuita de Email Extractor para conseguir correos electrónicos de los sitios web: https://chrome.google.com/webstore/detail/email-extractor/jdianbbpnakhcmfkcckaboohfgnngfcc El problema es que para hacer el scrape (en este caso copiar y pegar esos E-Mail ID's) tengo que visitar cada pestaña...¿hay alguna manera de configurar una macro para que visite cada pestaña/url de sitio web y copie y pegue los emails de cada pestaña/sitio web para no tener que hacerlo manualmente?

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 401 visitas
    • 1 seguidor
  17. Started by Benito Bartolomé,

    Hola a todos al final hay parte dos. En esta segunda parte necesito saber el nombre de las imágenes y almacenarlo en los textBoxs que he creado, evidentemene en el evento Click. -¿Como?: Primero evaluamos que estén todos vacíos y si es así al hacer Click en la primera imagen se pondrá en el textBox1 el nombre de la imagen y siguiendo este hasta completar los cinco textBoxes. -¿Qué pasa si cambiamos de imagen?: Pues borramos el nombre de la imagen en el textBox correspondiente y almacenamos en él el nombre de la nueva imagen seleccionada. He probado con el ciclo For Each pero no sé cómo hacerlo cuando tengo que hacer los cambios. He gra…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 676 visitas
  18. Started by JuliusAndre,

    Hola a todos, necesito ayuda. Estoy probando una macro que se ejecute a determinada hora, pero no logro que funcione. Este es el codigo de prueba: Sub hola() MsgBox ("hola") End Sub ------------------------------ Sub programada() Application.OnTime TimeValue("13:59:00"), "hola" End Sub Llega la hora indicada y la macro "hola" no se ejecuta Debo activar algo en algun lado o considerar alguna zona horaria? El archivo es de Excel for Microsoft 365 y están en el onedrive. Mil gracias!!!

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.1k visitas
    • 1 seguidor
  19. Started by Josep,

    Saludos a todos. Muy brevemente me presento como una persona ya jubilada que me entretiene y distrae programar macros en VBA para Excel. El problema que trato de consultar en este post es el siguiente: En una macro dentro de un formulario intento acceder a una tabla en una hoja de su correspondiente libro , y no tengo problema alguno. El problema aparece cuando ejecuto la misma macro pero el libro activo -que no contiene ninguna hoja con la tabla que se intenta accesar- es otro diferente. Entonces obtengo el error siguiente : "Error en el metodo 'Select' del objeto 'Worsheet'. Creo que se produce porque el libro activoal ser otro, y no ppoder encontrar la Hoja …

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 714 visitas
    • 1 seguidor
  20. Started by rafael_,

    Muy buenas a tod@s,Estoy intentando automatizar un dashboard conectado a una ruta de SharePoint que contiene varias carpetas por mes y año. Por cada año 12 carpetas, y un libro por cada día del mes. Necesito añadir una columna a cada libro con su fecha en formato MM/DD/AAAA. Cada libro contiene la fecha en el formato requerido en la celda E1 > " Viewing Range=[1/31/22 - 1/31/22] ", ¿hay una macro para extraer solo la fecha y copiarla en la columna A hasta donde terminan los datos? Y esto mismo poder ejecutarlo para todos los libros dentro de la ruta.Saludos y gracias de antemano

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 446 visitas
    • 1 seguidor
  21. Started by Miguelpf75,

    GUSTO SALUDARLES COMUNIDAD, Necesito de su ayuda, necesito hacer en macro de la funcion indice y coincidir donde me dé el valor(precio) de la intercepcion de producto y sucursal o el valor de la intercepcion de textbox1 y textbox2 me ayudan por favor, agradezco de antemano su valiosa ayuda INDICE Y COINCIDIR.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.2k visitas
  22. Started by Benito Bartolomé,

    Hola a todos; Corregirme si me equivoco o se puede mejorar la macro que adjunto. La idea es que yo solo pueda seleccionar un número limitado de imágenes. Para ello he añadido (aparte de las imágenes) dos TextBox, uno funciona como contador y otro como límite de imágenes a seleccionar. -Cuando llego al límite marcado ya no me deja seleccionar más (el límite para la prueba he puesto 5 pero se puede cambiar) -¿Qué pasa si quiero cambiar la imagen seleccionada porque no me gusta?. Pues hacemos clic derecho con el mouse y la nos la descuenta y así podemos seleccionar otra /s siempre y cuando no pasemos el límite establecido. Para este caso he us…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 795 visitas
    • 1 seguidor
  23. Started by seba64,

    Quisiera saber si es posible enviar teclas después de abrir una página desde VBA. También quería preguntar si es posible interactuar con javascript, esto porque una de las páginas que abro tiene listas anidadas y por mucho que cambie el item selecto desde vba, no ocurre el evento para que cambie la segunda lista. Así abro la página: Dim ie As Object Dim pagina As HTMLDocument Set ie = CreateObject("InternetExplorer.Application") ie.Navigate Url ' "https://www.google.com.pe" ie.Visible = True Do Until ie.ReadyState = READYSTATE_COMPLETE DoEvents Loop y así cambio el índice del select Set pagina = ie.Document pagi…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 945 visitas
    • 1 seguidor
  24. Buenos días, Necesito una macro que me busque en toda la columna K el valor 0, y si las celdas de abajo estan vacias lo rellene con el mismo valor, o sea 0. Tengo esta macro que no funciona bien, porque me copia en todas las celdas el valor 0, sobreescribiendo en celdas que tienen otro valor distinto a cero y admás da un error. Sub prueba() Dim Celda As Range Dim Primeradir As String Set Celda = Range("K:K").Find(what:=Range(0).Value, _ After:=Range("K1"), _ Lookat:=xlWhole) If Not Celda Is Nothing Then Primer…

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 913 visitas
    • 1 seguidor
  25. Started by rujason,

    Buenas tardes y saludos a todos/as. Soy nuevo en esto de las macros y estoy teniendo un problema con una macro. Necesito que al abrir el libro de excel, se ejecute una macro para reemplazar unas fórmulas en el libro. Esta parte la tengo resuelta, la macro me funciona perfecto cuando abro el libro. El problema viene cuando se abren varios libros que contienen esa macro, porque entonces deja de funcionar. He probado estos comandos tratando de que la macro aplique en ese libro en específico sin importar si hay varios abiertos y no me funcionan: 1. ThisWorkbook.Activate 2. Dim wb As Workbook Set wb = ThisWorkbook wb.Activate 3. Dim wb As Workbook …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 548 visitas
    • 1 seguidor

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.