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 a todos, lo que voy a preguntar aunque para muchos sea fácil creanme que lo he intentado de muchas maneras y googleado y no logro dar con lo que quiero. Tengo que hacer un reporte diario donde necesito insertar la formula de suma (no el valor, sino la formula), donde el inicio del rango siempre es J5 pero el fin del rango varía como pueden ser solo 2 o 3 filas, pueden llegar a ser hasta 40 filas. La ayuda que solicito es para via VBA poner en la siguiente fila en blanco de la columna "J" la formula de suma donde el rango comience en J5 y que mediante código determine cual es la ultima fila con datos de la columna J. Espero de su valiosa ayuda, desde …

    • 0

      Reacciones de usuarios

    • 12 respuestas
    • 1.3k visitas
    • 2 seguidores
  2. parte del codigo y donde se produce el error es el siguiente, mas abajo se produe el error: FechaInicial_2013 = Workbooks(LibroActivo).Sheets(hojaactiva).Cells(1, 2).Value FechaFinal_2013 = Workbooks(LibroActivo).Sheets(hojaactiva).Cells(2, 2).Value FechaInicial_2014 = Workbooks(LibroActivo).Sheets(hojaactiva).Cells(3, 2).Value FechaFinal_2014 = Workbooks(LibroActivo).Sheets(hojaactiva).Cells(4, 2).Value Application.ScreenUpdating = False Set pt = ActiveSheet.PivotTables("Tabla din?mica1") Set pf = pt.PivotFields("Fecha") For Each pi In pt.PivotFields("Fecha").PivotItems FechaComparacion = VBA.Format(pi.Value, "dd/mm/yyyy") 'CDate(pi.Value) If FechaComparacion &…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 4.6k visitas
  3. Hola, he buscado algo similar pero solo encuentro para el valor "0" y al cambiarlo por un valor letra no lo hace. Creo que no necesito subir un ejemplo pq es comprensible lo que ocupo. Tengo un libro donde estoy depurando los datos, cada hoja empezaba con un emcabezado pero quiero dejar solo los datos puros. Y pues quiero eliminar las filas donde aparece por ejemplo en la columna A fila 1, Nombre y ese valor se repite en muchas otras, quiero un macro que busque en el libro y al encontrar el dato "nombre" me elimine esa fila. Espero me puedan ayudar con esto, ya andube buscando para no crear el tema pero como repito no encontré algo que me ayudara.

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 819 visitas
  4. Started by hernangimenez25,

    Hola, Tengo que crear Frame con OptionButton dentro, como no se la cantidad de Frame que tengo que crear, lo configure con el bucle For "i", el problema es que, al querer crearlos no me deja, me tira un error. este es el codigo: [FONT=Courier New]For n = 1 To i : t = t + 1 : g = g + 1 With Me.Controls.Add("Forms.Frame.1") .Name = "Name" & t: .Name = t .Top = 82.5 + ((n - 1) * 60): .Height = 49.5 .Left = 12: .Width = 246 .Add ("Forms.OptionButton.1") .Name = "Value" & g: .Value = False .Top = 18: .Height = 17.25 .Left = 12: .Width = 57 End With[/FONT] next[/CODE…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.1k visitas
  5. Started by jhon fredy,

    como puedo cambiarle la linea a este codigo que en vez de colorear me bordee la celda Sub Macro1() ' ' Macro1 Macro ' ' Sheets("hoja1").Select With ActiveWorkbook.Sheets("programa4cifras").Tab .color = 255 .TintAndShade = 0 End With Sheets("hoja2").Select With ActiveWorkbook.Sheets("hoja2").Tab .ThemeColor = xlThemeColorAccent6 .TintAndShade = -0.249977111117893 End With Sheets("hoja3").Select With ActiveWorkbook.Sheets("hoja3").Tab .ThemeColor = xlThemeColorAccent1 .TintAndShade = -0.249977435298762 End With Sheets("hoja4").Select With ActiveWorkbook.Sheets("hoja4").Tab …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 830 visitas
  6. Estimados, esta es una aplicación muy buena que el Sr Cacho ha dado en respuesta a un tema, mi pregunta es si se pueden extraer además otras informaciones de los archivos, principalmente la que sale cuando uno deja la carpeta mostrando los detalles, que muestre peso y fecha de modificación. De no ser posible la que más me interesa es la Fecha de última modificación. Estaré atento a sus comentarios y desde ya muy agradecido. Les saludo desde Chile, mi país hermoso. P.S. el adjunto no tiene modificaciones, me pregunto si además existe una forma de copiar los archivos y no cortarlos. Cambiar nombre de archivos.zip

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.5k visitas
  7. Started by falexramos,

    Buenas tardes Saldudos a todos los maestros de este foro, la presente consulta tiene lo siguiente. tebgo un archivo que se llama reporte ahi hay 4 hojas, la hoja de recibido y procesado el usuario es "alejo". la hoja de procesado es "Favian" y la hoja de enviado el usuario es "Julyp"., en el otro libro reporte tienda, solo basta que ejecuten la macro desproteger. La consulta es la siguiente como puedo mejorar el codigo para que las hojas no queden tan pesadas. (no se si son las formulas). La otra consulta es en libro reporte a tienda en la columna (I) deseo saber los dias habiles sin contar los sabados, domingos, y los dias que son festivos en el mes. (en la hoja2 los…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 800 visitas
  8. buenas noches, quisiera saber si puedo mejorar mi macros que se encuentra en el evento change de la hoja de calculo de Excel, son códigos de cálculos básicos, además si me pudieran ayudar a reducir el código o darme algún tip para reducirlo yo mismo estaría muy agradecido. de ante mano muchas gracias Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False Application.Calculation = xlManual Application.EnableEvents = False If Not Intersect(Target, Range("$L$5:$Y$9")) Is Nothing Then Sub todo() Range("E22") = WorksheetFunction.Sum(Range("E4:E21")) Range("E23") = Wo…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 427 visitas
  9. Started by pool12,

    Hola. Espero que me puedan ayudar con esta formula que tengo, la verdad es que corre muy lenta, o a veces se bloquea y no se que otra formula puedo utilizar, les agradecería cualquier sugerencia, gracias. Worksheets("CXC").Select Set ls = Hoja2 For j = 4 To 50000 If TextBox1 = ls.Cells(j, 8) Then ls.Cells(j, 9) = TextBox4.Value * 1 Exit For End If Next Worksheets("ABONOS").Select Set ls = Hoja1 For j = 4 To 50000 If TextBox1 = ls.Cells(j, 7) And ls.Cells(j, 10) = 0 Then ls.Cells(j, 10) = "CANCELADO" Exit For End If Next Worksheets("CXC").Select Set ls = Hoja2 For j = 4 To 50000 If TextBox1 = ls.Cells(j, 8) And ls.Cells(j, 9) <= 0 Then Selection.E…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 630 visitas
  10. Started by JRGO,

    Hola buenos días compañeros del foro, me gustaría saber si alguien me puede ayudar a mejorar esta macro con dos cosas, la primera es que a pesar de tener fecha de vencimiento cuando uno se mete al panel de "fecha y hora" y al modificar la fecha se puede seguir usando y no es la idea, dos si aparte de la clave de administrador se puede colocar otra y se siga usando todo con normalidad, es decir todo lo que he venido trabajando antes de la fecha de vencimiento pero que no me deje seguir guardando hasta cambiar la fecha con la clave del administrador, y si la persona no tiene ninguna de las dos claves se cierre el archivo como ya lo hace, Gracias de antemano, …

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1k visitas
    • 1 seguidor
  11. Started by LuisRojas,

    Hola a todos! Nuevamente publicando Verán no es tanto un problema el que tengo, sino quisiera solicitarles sugerencias de mejora, he creado un lector de captcha cogiendo código de por aquí y por allá https://drive.google.com/file/d/1JJ7H3bzVI_L_Ef0diSynJrB-8oW7r_pq/view?usp=sharing Y me resulta útil para saltarme algunos captchas, pero no mucho cuando la imagen, por ejemplo, tiene fondo negro o pequeñas ofuscaciones Espero comentarios

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 2.5k visitas
  12. Hola: Necesito eliminar las filas que contengan determinadas palabras en una columna concreta. Y quisiera poner en un rango (p.ej. A1:A5) las palabras a buscar. Las únicas condiciones son poder elegir la columna sobre la que buscar y que, con solo escribir una parte de la palabra (en A1:A5) -tanto en mayúscula como en minúscula- la macro funcione ¿Alguna idea? Adjunto ejemplo similar un 90%. Saludos Matriz de busqueda.rar

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 803 visitas
  13. 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
    • 802 visitas
    • 1 seguidor
  14. Hola. Gracias al gran trabajo realizado por el usuario JSD en otro hilo de este foro y mediante el cual ha facilitado acceso a un sistema muy efectivo para generar facturas en Excel, me han surgido algunas características que entiendo le dan más valor añadido, y que en mi caso particular necesito. - Posibilidad de elegir la serie de facturación además del número de la factura. - Añadir el código postal a los datos del cliente. - Añadir diferentes opciones de método de pago o número de cuenta en el que realizar el pago. Gracias anticipadas por su ayuda. Facturación 26082021JSD.xlsm

    • 0

      Reacciones de usuarios

    • 10 respuestas
    • 1.1k visitas
    • 1 seguidor
  15. Started by pinoji,

    Hola colegas, buenas tardes reiteradas. Vuelvo por acá, ahora para que me brinden ayuda con una alerta. Me explico: Este es el proyecto del que les comenté que mi Jefe me pidió hacer. En el FrmCombustible debo crear dos (2) alertas, UNA - Que un (1) mes antes de vencerse las tarjetas me envíe un MsgBox : "La Tarjeta " & " se vence en un mes" El Listado de tarjetas está en la Hoja5 (Auxiliares). Se debe tener en cuenta que puede estar en blanco o vacío (Empty) este campo. Yo comencé a trabajarlo, pero me "perdí", porque creo se debe generar un ciclo que recorra las tarjetas y las fechas de vencimientos y las compare con la fecha…

    • 0

      Reacciones de usuarios

    • 23 respuestas
    • 1.6k visitas
    • 2 seguidores
  16. HOLA. Me podrian colaborar en esta ocacion con una macro para lo siguiente: Quiero ejecutar el siguiente mensaje "Revierta las anteriores retenciones, y registre esta como la retencion mensual". Simpre que se cumpla para una misma cedula lo siguiente: 1- Que la cedula este dentro de la base de datos 2- Que la fecha de la factura (mes y año) esten tambien dentro de la base de datos 3- Que la retencion sea mayor a las anteriores que estan en la base de datos, ( esto es, mayor que 1, porque en la celda b3 trae el acumulado del mes). Adjunto un ejemplo. exitos!!!! retenciones acumuladas.xls

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 563 visitas
  17. Started by agl12,

    Hola!! Un favor, he creado un boton en excel para que se envie automaticamente un correo con un archivo en pdf. Lamentablemente, no he encontrado la manera de que me de un aviso cuando el correo haya sido enviado (uso outlook). Existe alguna manera de hacer esto con las macros? Gracias!!!

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 892 visitas
  18. Started by Eduado09,

    Hola espero me puedan ayudar me gustaria poder hacer una busqueda de la columna B una vez que encontro el dato revise si tiene informacion en la columna J y K si no tiene informacion en alguna de estas dos columnas mande un mensaje de que faltan datos y se posicione en la celda vacia . Gracias duda.xls

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 890 visitas
  19. Started by poi11,

    Hola tengo un código q busca un valor en una base de datos lo que quiero es que cuando no encuentre el valor me de un MsgBox que diga "Código no encontrado" se que ya hay preguntas similares pero no he podido adaptarlo a mi código, por cierto ya tiene un MsgBox que avisa cuando se a dejado el campo en blanco Gracias al que quiera ayudarme yo apenas estoy empezando con esto de las macros Private Sub CommandButton1_Click() If TextBox1 = Empty Then MsgBox "No ha escrito nada en el campo CODIGO" Else Cells.Find(What:=Val(TextBox1), After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False).Activate Acti…

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 5.5k visitas
  20. Muy buenas de nuevo foreros! De nuevo vuelvo a pedir consejo a vosotros, genios del excel! Os explico un poco lo que me sucede. Tengo un Useform (funciona perfectamente), que por medio de cinco textbox me pide diferentes datos: Textbox1 es de tipo numerico Textobox2 y 3 de tipo texto Textbox 5 y 5 de tipo fecha Y ademas tengo 5 optionbutton. Para completar el useform, tengo el boton de "aceptar", que lo valida todo y el de cancelar, que lo cancela (obvio, no?)jeje. Bueno, al grano. Todo me funciona a la perfeccion, pero, para mejoralo un poco, me gustaria que si se introdujese en un campo algo erroneo (por ejemplo, en el textbox1 texto), saliese un mensaje de error.…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.1k visitas
  21. Started by LILIANAPDAZA,

    Buenos dias: Tengo una base de datos y en mi codigo uso el vlookup para traer informacion de esa base a un userform, lo que necesito es incluirle un mensaje de alerta cuando se digite el codigo equivocado y por tanto no se encuentra en la base de datos, alctualemnte si se digita mal lo que hace es sacarme al codigo. Gracias por su colaboracion... el codigo es el siguiente Private Sub CommandButton1_Click() If Reclamacion = "" Then Numero_de_Factura = "": Exit Sub total_facturado_mdqx = "": Exit Sub total_reclamado_mdqx = "": Exit Sub Primer_apellido_de_la_victima = "": Exit Sub Segundo_apellido_de_la_vicitima = "": Exit Sub Primer_nombre_de_la_victima = "…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 712 visitas
  22. Started by Yushiro,

    Buenas tardes, el motivo de solicitar su ayuda es referente a este problema... tengo un archivo de excel con un macro, el cual lo cree en office 2010, dicho archivo ocupo abrirlo en otras computadoras con office 2007, pero tengo un problema ya que en una computadora me arroja un mensaje que dice "Advertencia de seguridad, Las macros se han deshabilitado", al seleccionar la parte de "Opciones" no me sale ninguna opción donde pueda activar la macro... me podrían asesora a que es el problema? Cabe mencionar que lo he probado en otra computadora con office 2007 Standard y si lo corre sin problemas (lo puedo saber por que me arroja un formulario al abrir el archivo)... y en a…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.1k visitas
  23. Started by marcosab,

    Hola a todos Requiero de su ayuda para completar el siguiente macro Private Sub UserForm_Initialize() Dim Cnn As New ADODB.Connection Dim Rs As New ADODB.Recordset, Sql As String Dim Hoja As Object ComboBox1.ColumnCount = 4 ComboBox1.ColumnWidths = "50;40;100;150" Set Cnn = New ADODB.Connection Cnn.Open "Driver={SQL Server}; Server=10.15.50.50; Database=pruebas; Uid=sa;Pwd=123456" Set Rs = New ADODB.Recordset Sql = "SELECT Usuario, Contraseña, Hojas_Activas, Nombre, Unidad FROM Usuarios" Rs.Open Sql, Cnn, 3, 3, adCmdText If Not Rs.EOF = True Then ComboBox1.Column = Rs.GetRows Cnn.Close Lo que requiero es lo siguiente 1 limitar a 10 segundo…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 871 visitas
  24. Started by ensacamo,

    Hola a tod@s. Me está saliendo un mensaje que he tratado de buscar la solución por los foros y no doy con ello. Tengo un programa en una unidad de red. El fichero solo puede abrirse en modo lectura si ya está abierto en otro ordenador, pero esto es otro problema. El problema me surge cuando el primero que lo ha abierto cierra, y es que si trata de salir del programa el segundo operador, aparece el siguiente mensaje: Ya existe un archivo con nombre "xxx" en esta ubicación. ¿Desea reemplazar el archivo existente? Si No o Cancelar Tengo que decir que esto ocurre cuando pasa por la instrucción: ActiveWorkbook.Save Si pulso Si sale del programa salvando, pero si puls…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 713 visitas
  25. Started by Carlos1986,

    Buenas Tardes, tengo el siguiente código, que lo que hace, es enviar la hoja activa de excel via outlook, pero por cuestiones de seguridad aparece una ventana emergente donde me pregunta si quiero permitir que un programa envie un correo por mi.No puedo desactivar la notificacion por seguridad de la empresa.La pregunta es: que puedo ingresar al codigo para que tambien pueda dar "click" en permitir y que se envie? la codigo funciona bien, si le doy click manualmente, el correo se envia con la info. Sub Enviar_Correo_HojaActiva()On Error Resume NextActiveSheet.CopyWith ActiveWorkbook.SendMail Recipients:="colocar email", Subject:="Inventario".Close …

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 921 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.