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 Benito Bartolomé,

    Hola a todos, he estado últimamente trabajando en un nuevo complemento. Es una idea que se me ocurrió viendo videos de este tipo. Aunque tiene un porcentaje mío también cabe destacar que algunas cosas las he adaptado de ideas de otros programadores. -Este complemento es para enviar mails desde excel sin necesidad de abrir el outlook y además se puede configurar los smtp, puerto y ssl. Os dejo enlace al vídeo que he grabado y también os adjunto el archivo. Video mail configurable Seguramente tiene errores los cuales me podéis indicar. No ser muy crueles aun tengo la "L" de novato. Si está muy mal que Sergio quiete el post.…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 621 visitas
  2. Started by petercien1,

    Estimados Buen Día Pongo la consulta acá, en la anterior me equivoque de foro. Favor su ayuda con lo siguiente, he buscado soluciones, adaptando códigos de consultas anteriores, pero no logro dar con un camino. La web es la siguiente: https://www.patentechile.com/ Usar la siguiente patente "HKHW10" Hay tres opciones para consultar datos (Buscar vehículos, Buscar Motos, buscar rut) , los resultados los entrega en dos tablas (Información propietario y información vehicular). Ideal seria conseguir ambas tablas. No tengo libro pues no he tenido resultados positivos. De antemano muchas gracias …

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.2k visitas
    • 1 seguidor
  3. 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
    • 757 visitas
    • 1 seguidor
  4. Tengo este codigo el cual me recorre las filas evaluando la columna "E", en este caso evalua si en la columna tiene estos datos "Pajaritos No. 1" o "Pajaritos No. 2", y si es asi, que elimine la fila completa, pero al ejecturala se alenta mucho el proceos tarda como 1 min o aveces mas. Como puedo mejorar esto. Saludos Sub borrarFilas() Dim ultimaFila As Long Dim fila As Long ultimaFila = Hoja1.Cells(Rows.Count, "E").End(xlUp).Row For fila = 5 To ultimaFila If Hoja1.Cells(fila, 5) = "Pajaritos No. 1" Or Hoja1.Cells(fila, 5) = "Pajaritos No. 2" Then …

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 801 visitas
    • 1 seguidor
  5. Started by lsmaniahotmail.com,

    me surge la siguiente cuention que no logro resolver , al querer dar nombre a un Textbox del formulario se surge de que es ambiguo por ej: quiero poner txtFecha revisando c/u de los Text del folmulario no existe el txtFecha pero si voy a la pestaña orden de tabulacion si aparece, como asi tambien muchos otros que no estan , como borro estos nombres o cual seria la solucion.Desde ya mucha s gracias

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1k visitas
    • 1 seguidor
  6. Tengo el siguiente codigo que me extrae datos del listbox a una hoja de excel. pero al pasar los datos que traen fecha me los coloca como mm/dd/aa y lo requiero como dd/mm/aa, cabe recalcar que los datos de las fechas estan en una fila especifica "solo en una fila". Como podria modifcar mi codigo para poder realizar el cambio. Set r = Sheets("RESUMEN") uf = r.Range("B" & Rows.Count).End(xlUp).Row + 1 'Worksheets("RESUMEN").Range("A4:M" & uf).ClearContents Dim Fcc As Date 'Declaracion de variable de tipo fecha Fcc = FormatDateTime(Now, vbShortDate) 'asiganos la fecha a la variable r.Cells(1, 1) = "REPORTE REGISTRO DE COMIDAS…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 2k visitas
  7. Buenas Foro. En un rango de celdas variable en columna A tengo rutas y nombres de archivos para adjuntar a un correo. Con .Attachments.Add adjunto un archivo y mi pregunta es como podria adjuntar los que tengo en el rango A con algun bucle o algo?

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 743 visitas
    • 2 seguidores
  8. Started by pinoji,

    Buenos días colegas. Espero se encuentren bien de salud. Buenos días colegas Haplox, nuevamente molestándolo, aunque cualquier miembro de este Foro puede ayudar. Sigo teniendo problemas con la inserción de consecutivos. Usted en anterior consulta me dio una respuesta muy acertada, la cual yo analicé y me di cuenta de los errores que usted detectó, pero ahora, cuando voy a escribir el código para el consecutivo de Cliente (FrmCliente) me imprime el primer registro, pero en el segundo ya no lo señala en el LblCodigo y por consiguiente no lo imprime en la Hoja. He buscado en el código de arriba hacia abajo y no me doy cuenta donde puede estar el error. Otra…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 571 visitas
    • 2 seguidores
  9. Hola etimados miembros del foro , tengo el siguiente problema , parece **maravilloso** pero no logro darme cuenta del error, cuando quiero registra un nuevo cliente a traves del fomulario este lo hace pero fila por medio , no lo hace como deberia uno debajo del ultimo el cod es : Option Explicit Dim CelEncontrada As Range Dim CodigoAux As Variant Private Sub Bot_Limpiar_Click() Call ModClientes.LimpiarFormulario End Sub Private Sub Bot_Registrar_Click() With frmClientes If .TxtIdCliente.Value = "" Then MsgBox "Digite el n° de documento del cliente" .TxtIdCliente.SetFocus Exit Sub End If If .TxtNombr…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 482 visitas
    • 1 seguidor
  10. Started by jeaa,

    Buenos dias, expertos por favor me ayudan tengo un formulario con tres combobox que me filtra de la hoja filtros normal filtra con 10 columnas cuando lo aumento las 19 columnos me sale error a partir de la columna 10, ademas de ellos los combobox deben filtrar algo relacionado que significa esto si en el primer combo filtre entonces en base ese filtrado deben de filtrar elsegundo combo y asi para el ultimo combo; por favor me puede ayudar el solucionar dicho problema. Ajunto el archivo matrixx.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 465 visitas
  11. Estimados, buen día. Trabajo con libros muy pesados (con muchos registros, muchas formulas tipo "sumar.si.conjunto", tablas dinámicas, gráficos y con formatos condicionales en tablas, etc.) y el simple guardado preventivo normal demora bastante tiempo, cerca del minuto y junto con el auto guardado son muy molestos. Y eso que el libro está en modo de cálculo manual y la pc lleva unos 16G y y un Ryzen 5. Se podrá con un código VBA sencillo guardar, pero sin que el libro se calcule previo al guardado? Muchas gracias!!

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.6k visitas
  12. Cordial saludo, acudo hoy a este foro para dar solución a un dilema: Tengo en un userform VBA un texbox que se llena con las selecciones de un listbox que dependen a su vez de un filtro con combobox; el dilema es que al realizar cambio en el combobox, el listbox se limpia pero antes, almacena la selección en un textbox. Ahora bien, ¿Cómo puedo hacer para que al realizar nuevas selecciones, estas se "sumen" a las anteriores en el textbox, y no que los actuales registros reemplacen a los anteriores. Espero haber sido suficioentemente clara, agradezco toda la asesoria posible, ya que este proyecto se me ha estado retrasando por el inconveniente expuesto anteriormente. …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 730 visitas
  13. Buenas a todos, luego de haber googleado mucho me he rendido y vengo a molestarlos pidiendo ayuda de sus conocimientos. Viendo videos y adaptando lo visto a mi trabajo he logrado crear el formulario tal como lo deseo, pero en los videos que he visto se les ha pasado programar que los botones de siguiente y anterior funcionen luego de usar el boton buscar. Me explico, si se esta en el primer registro y le da al boton siguiente no hay problema, o en el ultimo yluego darle hacia atrás, el problema esta cuando uno busca una referencia y luego quiere usar estos botones, ahí no funcionan y el de siguiente tira el 2do registro y el anterior igual, no continuan de la f…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 863 visitas
  14. Started by pinoji,

    Buenas noches, Colegas. Espero se encuentren bien de salud. Antes que todo disculparme por estar ausente todo este tiempo, pero a mi amigo, el cual uso su ordenador, se volvió a romper y todo parece indicar que es un problema con la Board y eso por acá está a un precio de alrededor de $ 50 000.00 pesos cubanos, o sea, inalcanzable y un vecino que comenzó un negocio me pidió que le ayudara con algo para llevar sus inventarios y cuentas y me prestó su LapTop (muy vieja, lenta y con teclas que no funcionan) y en eso estoy. También los apagones por acá son de más de 12 horas al día todos los días y se hace muy difícil de trabajar, entre otras cosas. Voy al tema; en …

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 969 visitas
    • 1 seguidor
  15. Invitado CSI1981
    Started by Invitado CSI1981 ,

    Buenas tardes, espero poder contar con su ayuda. Estoy trabajando con dos libros, mi objetivo es pasar un rango de datos a otro libro sin abrirlo. Estoy usando esta MACRO, que me ha generado cierto error, y quisiera saber si ustedes me pueden ayudar a resolver. Sub CopiarCeldas() 'Se definen objetos a utilizar Dim wbDestino As Workbook, _ wsOrigen As Excel.Worksheet, _ wsDestino As Excel.Worksheet, _ rngOrigen As Excel.Range, _ rngDestino As Excel.Range 'Libro Excel destino Set wbDestino = Workbooks.Open("ruta del libro destino") 'Activarlo ThisWorkbook.Activate 'Se indican las hojas de origen y destino Set wsOrigen = Workshee…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 922 visitas
  16. Started by riverts,

    Hola a todos; quiero saber si me pueden ayudar con un formulado me perdi un poco con esto: DIA: generar un numero aleatoreo tomando en cuenta la distribucion de los dias por mes y años bisiesto Dia:=ALEATORIO.ENTRE(1;31) Mes:=ALEATORIO.ENTRE(1;12) Año:=SI(D11=$B$5;ALEATORIO.ENTRE(2004;2022);SI(D11=$B$6;ALEATORIO.ENTRE(2004;2022);ALEATORIO.ENTRE(1980;2022))) IMAGEN DEL LIBRO Me puede poner en el camino correcto Gracias de Antemano. Saludos..

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.3k visitas
    • 1 seguidor
  17. Invitado CSI1981
    Started by Invitado CSI1981 ,

    Buenos días Tengo esta macro que cumple con el resultado que estoy buscando, pero necesito hacerle una modificación y no se cómo Sub UltimaFila_3() On Error Resume Next MsgBox ActiveSheet.Columns("A").Find("*", _ searchorder:=xlByRows, searchdirection:=xlPrevious).Row End Sub Lo que busco es que el valor obtenido no sea en un botón sino que el resultado obtenido pueda verse en una celda específica Desde ya muchas gracias al que pueda ayudarme Slds

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.4k visitas
  18. Hola a toda la comunidad, gusto en saludarles. Estoy tratando de generar un archivo Word desde una pestaña (3 - crear word) que contiene los datos en Excel, para ello tengo las siguientes pestañas 1.- "Dimensiones": aquí son están los maestros de cada una de las dimensiones. 2.- " 1 - Base de datos": Aquí tiene 3 partes: 2.1 grilla de los datos: esta esta toda la información de los pacientes de acuerdo a la combinaciones posibles de las dimensiones (se ingresa manual y asi esta bien)... obs: si existen un datos en la columna B, en la columna A debe ir un botón "agregar" cuya funcion es copiar los datos de esa fila a la hoja "2 - resumen"…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.3k visitas
    • 1 seguidor
  19. Started by gabbs0310,

    Hola Ojala alguien ojala pueda ayudarme y de antemano agradezco la ayuda para detectar donde esta el error en mi Macro estoy creando una base de datos y en un Form trae la información a un ListBox , hasta acá todo bien pero quiero que al dar Clic en alguna linea de la información del listbox me traiga un valor a aun texbox y esto es lo que no logro estoy usando WorksheetFunction.VLookup pero por más que veo no hace nada al hacer clic en el listBox Private Sub ListBox1_Click() On Error GoTo ErrorHandler cuenta = FormNuevoProducto.ListBox1.ListCount For i = 0 To cuenta - 1 If FormNuevoProducto.ListBox1.Selected…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 593 visitas
    • 1 seguidor
  20. Invitado CSI1981
    Started by Invitado CSI1981 ,

    Buenas tardes Agradeceré nuevamente de su ayuda Tengo un rango de valores que van cambiando, ya que están vinculado a una serie de operaciones. He confeccionado una fila auxiliar para que los errores de la fila anterior se conviertan en FALSO Lo que estoy buscando es: 1- una macro para borrar los datos de las celdas que dan error o 2-una macro para forrar los datos de la fila auxiliar con el texto FALSO Desde ya muchas gracias todos

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 2k visitas
    • 1 seguidor
  21. Started by chiquitinx,

    Buenas tardes estimados(as): Tengo una duda, al aplicar código fuente para que de acuerdo a parámetros se pueda realizar una búsqueda dentro de un rango de celdas, en las cuales los encabezados de columnas representan fechas, y las filas códigos de grupos. Se requiere realizar una búsqueda por fecha y código para introducir en la intersección un valor que se tiene en un textbox. el código que se utiliza es el siguiente: Sub busqueda() Dim fecha As Date Dim columnas, filas As Range Dim a, b As Integer fecha = dia & "/" & mes & "/" & año Set columnas = Range("af3:ds3") Set filas = Range("c4:c94") a = filas.Find(codigo, , xlValues, xlW…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 540 visitas
    • 1 seguidor
  22. Buenas noches. Existe alguna forma o Macro que permita guardar un libro individual por cada hoja que contenga un libro general y que a su vez el nombre sea el mismo nombre de la hoja??? Ejemplo: Tenemos un libro general con 3 hojas las cuales se llaman: Hoja 1, Hoja 2 , Hoja 3..... Se requiere que ese libro general pueda convertirse en 3 libros distintos que se llamen: Hoja 1, Hoja 2, Hoja 3 ( Tal como se llaman las hojas del libro general). Muchisimas gracias por su ayuda. Saludos.

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 574 visitas
    • 1 seguidor
  23. Started by dc8,

    Buenos días Foro, Necesito vuestra ayuda y conocimiento para un error con VBA. Hace un mes que lleva dándome problema una línea de código (no había pasado en más de un año) y tras mirar en mil páginas no encuentro solución, por si pudierais echarme una mano. Os adjunto la línea de código: El error se encuentra en el "end if" del final. No sabéis lo importante que me es solucionarlo y no encuentro la solución... Mil gracias Sub ImportarModelos() Dim strSource As String Dim dbs As DAO.Database Dim rst As DAO.Recordset Dim consulta As String Dim archivoAbrir As Excel.Workbook Dim RUTAExcel As String Dim strRespu…

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 803 visitas
    • 1 seguidor
  24. Buenos días. Tengo una base de datos con personas vigentes y aquellas que ya no están. dentro de los datos que manejo, está el campo correo electronico que, en algunos casos está vacío. Así las cosas, tengo una hoja donde filtro (usando la función FILTRAR) todas las personas vigentes. Lo que quiero hacer es, por medio de botones, los usuarios puedan seleccionar si desean sólo los vigentes, o los vigentes con correo electrónico. Para el primer caso, lo que tengo es: Para el segundo caso, lo que tengo es: Al ejecutar la macro, en la casilla B3 me coloca un "@" (arroba) después del igual, de manera que queda de la siguiente manera: P…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.6k visitas
    • 1 seguidor
  25. Hola a todos; Con el procedimiento que adjunto guardo el libro en una ruta temporal con la hoja activa, después copio esa ruta en un textbox que tengo en un formulario e envío el mail. Hasta aquí todo bien. La consulta es si es factible que se guarde todo el libro con " todas las hojas que tenga". Saludos y muchas gracias como siempre por su colaboración. Sub adjuntarLibro() Dim RutaTemporal As String, vArchivo As Workbook, vArchivoTemp As String Application.ScreenUpdating = False With ActiveWorkbook .ActiveSheet.Copy End With Set vArchivo = ActiveWorkbook vArchivoTemp = vbNullString RutaTemporal = Environ$("…

    • 0

      Reacciones de usuarios

    • 12 respuestas
    • 1.3k 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.