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 milfaby,

    hola a todo(a)s. Mi inquietud es la siguiente: tengo una base de datos de la empresa donde trabajo donde estan relacionados todos los clientes(entidades) que nos deben facturas. Mi jefe me pide que en esa matriz en excel cree a una manera de que excel me avise con un mensaje o ventana emergente cada vez que llegue la fecha de vencimiento de una factura. hasta ahora he intentado con la formula: [TABLE] [TR] [TD]A[/TD] [TD=width: 80]B[/TD] [TD=width: 80][/TD] [TD=width: 80][/TD] [TD=width: 80][/TD] [/TR] [TR] [TD=class: xl64]1[/TD] [TD]Fecha vencidas [/TD] [TD][/TD] [TD][/TD] [TD][/TD] [/TR] [TR] [TD=colspan: 5]12/04/2011 =Si(DIA(A2-NOV())<10~"AVISO"~…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.1k visitas
  2. 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
  3. Hola, He creado un grupo en la cinta de menú y me gustaría que cuando inicie este libro, este seleccionado este grupo y no el de inicio. Tengo Excel 2007 y cree el grupo con el programa Custom UI Editor. Muchas gracias Javi

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 770 visitas
  4. hola tengo un macro y el problema que encuentro es que agregue una condicion a las celdas de la "fila A" "hoja2" CÓDIGO: SELECCIONAR TODO =SI(B8="";"";SUMA(B8*D8))[/CODE] que se repite en todas las filas ahora lo que pasa que el ejecutar el macro copia las celdas vacias,aunque en el macro especifica que copia las celdas que tienen valores si pongo [CODE]CÓDIGO: SELECCIONAR TODO =SI(B8="";"";SUMA(B8*D8))[/CODE] si lo saco me lo hace bien me pega las celdas que tiene datos nada mas Macro [CODE]Dim UltFila, Cant As Long UltFila = Hoja1.Range("A" & Rows.Count).End(xlUp).Row + 1 Cant = Hoja2.Range("A" & Rows.Count).End(xlUp).Row Hoja2.Range("A8:E"…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 899 visitas
  5. Buenos días, a partir de un disgrama de procesos que están encadenados entre sí (hasta que no acaban algunos no pueden empezar otros) utilizo la fórmula =max(rango1;rango2;rangoN) para fijar la fecha de inicio de un proceso a partir de las fechas finales de sus dependencias. Se va complicando a medida que el número de procesos aumenta considerablemente (20, 30, 40, etc). Tengo representado en la hoja excel el diagrama con cajas de texto conectadas con flechas pero no se si es posible tener una macro que haga lo siguiente: 1. al seleccionar la caja de texto que recibe una conexión 2. ejecutar MACRO para obtener información de las conexciones que recibe de otras cajas d…

    • 0

      Reacciones de usuarios

    • 14 respuestas
    • 1.5k visitas
  6. Started by josshelito,

    Buenas tardes, tengo un problema al buscar un dato en un textbox que hace referencia a otra hoja trabajando por worksheetfunction, estaba tratandolo contra error, pero no lo he logrado aún, el asunto es que si no encuentra el valor en el rango que le asigno que me muestre un msgbox y que de lo contrario si existe entonces que coloque los valores encontrados. Alguien me podría ayudar a saber en dónde se encuentra el fallo?, porque me dice que no se puede obtener la propiedad vlooup de la clase worksheetfunction, gracias por cualquier respuesta. Private Sub TextBox2_BeforeUpdate(ByVal cancel As MSForms.ReturnBoolean) 'Dim BUSCAVALOR As Double 'With Workshee…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.7k visitas
  7. hola a todos, soi nuevo espero que el tema valla aqui, tengo une exel que calcula la factura del agua, lo que hace es distribulle el agua consumida en 4 bloques, el primero que es asta 15, en elc aso de que lo consumido sea mas grande a 15 uns egundo que tambien es asta 15, si el valor es 30+ ai el 3 bloque en el cual llega asta 24, esto hace que si consumas 54 litro de agua 1,2 i 3 bloqeu se llenen, i el 4 bloque que es todo lode mas que gastes de agua, cada bloque multiplica la cantidad gastada pr su valor idenpendiente, el priemr bloque es mas varato i el 4 el ams caro.(para pasar a el sigueiente el 1 tien k llenarse). Lo que quiero es que si el primer bloque no se ll…

    • 0

      Reacciones de usuarios

    • 11 respuestas
    • 1.3k visitas
  8. Started by thierry1983,

    Estimado, espero que me ayuden. Tengo una tabla dinámica, en la cual tiene un filtro "FECHA" en la cual a travez de una macro, mas abajo se muestra, le cambio el periodo, dado el valor en una celda. Pero ahora necesito una macro para para seleccionar varios dias, una semana para ser mas preciso. Digamos que tengo 01/01/2012 al 07/01/2012 de A1:G1 SI me puede ayudar con el tema seria excelente. Gracias Sub PANELCONTROLCOMPRAS() ActiveSheet.PivotTables("TDCOMPRAS").PivotFields("DIAS"). _ ClearAllFilters Val = Sheets("CONFIG").Cells(1, "A").Value ActiveSheet.PivotTables("TDCOMPRAS").PivotFields("DIAS").CurrentPage = _ Val End sub[/CODE]

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 905 visitas
  9. Hola a todos, soy un nuevo integrante de este genial foro, he podido aprender algo de los aportes de los participantes y he podido mejorar mi trabajo, Pero ahora quisiera una ayuda en esta publicacion, adjunto una lista de codigos (lo sombreado de amarillo) en el ejemplo he puesto 14 codigos , pero en realidad yo en mi trabajo manejo mas de 4500 codigos de diferentes productos y todos los dias me piden que saque un reporte con 5 codigos, 10 codigos, 2 codigos etc...y lo que hago es copiarlos y pegarlos en otra hoja nueva y guardarlo para finalmente enviarlo por correo. el objetivo es buscar los codigos mediante un combox y con un boton comando agregarlos al listbox para …

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 2.1k visitas
  10. Started by gusisorozco,

    Bendiciones: Tengo un userform (formatomoneda) con dos textbox y un label, en el primer texbox se ingresa una cantidad que debe ser mostrada en el textbox2 y en el label1, en ambos casos son producto de un calculo, en el siguiente formato $ 1,245.56. Adjunto archivo, espero puedan ayudarme Formato a textbox.rar

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 2.3k visitas
  11. Started by manuelillo,

    Tengo una hoja que copie de este foro sobre contabilidad casera, la estoy adaptando para mi casa, pero el combobox no sale lo que quiero, cuándo le doy al botón asiento , sale el formulario, pero no se queda lo que escribo en las celdas que le digo,el caso es que si selecciona la celda pero no escribe. Supongo que viendo el archivo será mejor. Este es código : Private Sub UserForm_Click() Private Sub aceptar1_Click() If Not IsNumeric(TextBox2) Then MsgBox "EEEhhhh!!!!. En el apartado Cantidad debe indicar sólo números", vbOKOnly Or vbCritical Else Hide End If End Sub Private Sub Cancelar1_Click() Hide End Sub Private Sub gasto1_Initialize(…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.2k visitas
  12. Se puede accesar a una base de datos firebird desde una macro??

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 3.6k visitas
  13. Started by jazh83,

    Cómo puedo pasar una consulta realizado a una tabla de acces a una variable o a un array; el utilizar una u otra dependerá del tipo de consulta. Al día de hoy la puedo pegar en una hoja de excel pero no se cómo asignarla directamente la consulta a una variable. eje. Dim flotante as Variant Modifica = "SELECT Clave, Costo_P_A_3 FROM EXIST_06 WHERE Costo_P_A_3<0" rs.Open Modifica, cn ActiveSheet.Cells(17, 6).CopyFromRecordset rs flotante = range("F17:....).value[/CODE] Gracias...

    • 0

      Reacciones de usuarios

    • 12 respuestas
    • 8.7k visitas
  14. Started by javier enrique meza cota,

    Hola les envio esta utileria para generar un layout de horas extras para efectos de subirlo a un sistema de nominas me da un resultado satisfactorio para 30 gentes aqui mi problema es como puedo compactar el procedimiento que tengo de los primeros cuatro pasos y hacerlo para mas gentes aclaro soy un mortal que le gusta optimizar sus procesos mediante, la aplicacion de los codigos que ustedes ponen en este foro me han ayudado en grande , comparto esto , pero tiene esa limitante de que no puedo generarlo para mas gente por que me da el error de que el procedimiento es demasiado largo saludos LAYOUTEXTRAS.zip

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 952 visitas
  15. Started by solsitto08,

    Buenas tardes!! Mi nombre es Sol, soy nueva en el foro, asi que mil disculpas si me equivoco en la explicación. Tengo una macro con visual que saque de esta pagina (Puedo usarla no?) la cual me sirvio mucho para mi trabajo. El tema es que cambie algunas cosas y quedo bien, pero tengo un textbox donde necesito que cuando el usuario ingrese la fecha, solo le deje ingresar la fecha de hoy o la de ayer. Si quiere ingresar la fecha de antes d ayer o alguna fecha futura que salga un mensaje de error. La verdad que intente, mi idea era poner: Private Sub TextBox3_Change() If TextBox3.Text <> Date Or Yesterday Then MsgBox ("No") End If End Sub Pero directamente …

    • 0

      Reacciones de usuarios

    • 10 respuestas
    • 1.4k visitas
  16. Started by lolae,

    A ver si alguien me puede ayudar¡¡ De entrada gracias a todos y perdón por mi ignorancia... soy bastante nueva en estos temas... Después de mucho buscar no sé cómo solucionar el siguiente problema... He creado una macro... y he conseguido que funcione¡¡¡ es la siguiente Sub test() Dim i As Long, j As Long, rw As Long Dim rng As Range, cel As Range Dim arrWords Dim xlCalc As XlCalculation arrWords = Array("number", "media", "genotype", "user", "experiment", "box", "age", "scale", "root") ' edit the array as required xlCalc = Application.Calculation Set rng = Range("c1:c2000") For rw = rng.Rows(rng.Rows.Count).Row To rng.Rows(1).Row Step -1 …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.1k visitas
  17. Buen día, es mi primera publicación en el foro, espero hacerlo bien. Estoy diseñando un libro para control de pacientes de una clínica y tengo una tabla a la que contínuamente se le ingresan nombres, datos y laboratorios correspondientes; al ingresar un nuevo nombre en la tabla se reordena alfabéticamente según fórmula, pero sus registros (datos) no se desplazan hacia abajo según la ordenación alfabética y según el nombre correspondiente. Quisiera que me asesoraran si es posible a través de una macro VBA lograr esta acción automáticamente dejando en blanco los registros de la nueva persona que ingreso. Espero haber sido lo suficientemente explícito; adjunto documento…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.1k visitas
  18. Started by Frederick,

    Gente, Buenas noches, Primera vez que escribo, hace un tiempito que estoy registrado. Les comento a ver si pueden brindarme una ayuda, en mi trabajo somos 3personas que trabajamos con el mismo tipo de planilla de excel, mismascolumnas, etc, son tres libros excel. Vamos cargando los datos de cadaexportación que realizamos, cada persona en su planilla. La idea sería hacer una macro que busque cada fila del libro(por número de orden, factura, el que fuese mejor) y la compare con un libro general,si existen diferencias entre ellas que actualice y sino existe que agreguela fila al último. Lo que queremos lograr es que al terminar el día ejecutaresta macro y estos datos …

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 2.9k visitas
  19. Started by chochonet,

    ¿Como mostrar imagen en formulario? Hola. Deseo mostrar una imagen fija en un formulario, buscando encontre un codigo que no me funciona: Image1.Picture = LoadPicture("c:\imagen.jpg") Me da un error 481 que dice Imagen no valida, ¿estare haciendo algo mal? Saludos.

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 8.6k visitas
  20. Started by fecr86,

    tengo el siguiente problema quiero migrar una macro que tengo en 2003 a 2007, esta macro me busca un archivo pdf de acuerdo a los parametros que le paso, pero no encuentro la forma de hacerlo funcional en 2007 mi codigo es el siguiente la parte que esta en negrita es la que no me funciona en la version 2007 Sub Buscar_POs_PDF() A = 1 B = 1 Path_PDFs = UserForm1.TextBox2.Text & "\" FechaPDF = UserForm1.TextBox3.Value Campo_Fecha = Format(FechaPDF, "dd/mm/yyyy") Windows("Plantilla2.xls").Activate final = Cells(65536, "A").End(xlUp).Row Vector_Exclusion( = "" Vector_PDF(A) = "" Cells(2, 5).Select For i = 2 To final UserForm1.Label9.Caption = "PO: " & Ac…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 842 visitas
  21. Started by raul7733,

    Hola, Después de mira en este foro vi algo que se podría adaptar a lo que quiero hacer. Es un archivo del usuario logroastur que adjunto, es un problema parecido al que tengo yo y que él llamó "Creador". Este es el enlace del hilo https://www.ayudaexcel.com/foro/macros-programacion-vba-10/crear-carpeta-guardar-archivo-convertir-pdf-22186/#post110451 Mi problema es que tengo que guardar ese excel convertido en pdf en esta ruta. D:\RESULTADOS----------(Disco duro y el nombre de la carpeta que nunca varía) T2-----------------(Otra carpeta dentro de RESULTADOS que se llamará como pone en la celda T2) T3-----------------(Otra Carpeta dentro de T2 que se llamará como pone…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.1k visitas
  22. Hola amigos, soy nuevo en el foro y me gustaria mejorar mis tecnicas tengo el siguiente problema, me gustaria con una macro filtrar solo datos numericos contenidos en una columna, ejemplo que me filtre "123456" hasta el momento solo he podido filtrar caracteres eje: "12N", pero si solo lleva numeros no me los busca.. la contraseña para desbloquear el proyecto VBA es: " katped" aqui esta el enlace para descargar el archivo Control de Pedidos.xlsm - 4shared.com - online file sharing and storage - download espero que me puedan ayudar Este es mi correo: [email protected]

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.2k visitas
  23. Buenas Tardes Tengo un problema con una macro que cree para ejecutar una consulta desde excel y que traiga los resultados en una celda en particular. Hace meses la vengo usando y funcionaba perfecto, pero desde la semana pasada me tira este error: RUN TIMER ERROR 1004 Application defined or objet defined error y se tilda la siguiente sentencia .Refresh BackgroundQuery:=False Llevo toda una semana investigando que puede ser y no encuentro nada. Agradezco su ayuda *******!!!! Dim varSQL ' OBTIENE EL NUMERO SIGUIENTE DE BASE varSQL = Sheets("ArmadoQuery").Range("c23") Sheets("Resultado").Select Range("F15").Select Selection.ClearContents…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 2k visitas
  24. Started by OMAUCA,

    si me pueden ayudar por favor tengo el siguiente problema al aplicar esta formula: SI(Y(AK1>AJ1;AK1=SALIDA!I1);SALIDA!$G$5;FALSO) SI(AK2<>FALSO;SALIDA!$B$5;FALSO) SI(AK3<>FALSO;SALIDA!$B$3;FALSO) SI(NOMXXI<>FALSO;SI.ERROR(BUSCARV(COLXXI;SALIDA!$A$8:$I$27;9;0);"");"") si me busca lo que kiero y todo pero nomxxi depende de otras celdas y todo se hecha a perder cuando en mi hoja cambio el valor de SALIDA!I1 todo se me vuelve y los valores que había buscado con buscarv se me borran y se pasan a la siguiente columna que tiene las mismas formulas hay alguna forma de que los busque ahi me lo deje aunque lo demaqs se vuelva falso Dirección de correo: …

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 866 visitas
  25. Que tal, tengo la siguiente situación y no tengo idea de como resolverlo,la cuestión es esta, tengo 2 subrutinas y necesito que se aplique una u otra a partir de una desicion en este caso del usuario (ya sea moneda dolar ò moneda peso la macro insertara un valor), actualmente las tengo por separado pero no me es funcional. Igual y me complique yo solo en la forma que plante la solucion. opcion moneda.rar

    • 0

      Reacciones de usuarios

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