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. Hola, a ver si alguien me puede ayudar, que llevo varios días intentando resolver un problema y no he sido capaz, y por más que he buscado en el foro no he conseguido hacerlo. Tengo dos libros de excel, en el primero (llamado 'datos') tengo una serie de datos con una macro que cada vez que la ejecuto me rellena en la Hoja1 de ese mismo libro 'datos' una serie de valores en la fila 2, de estos valores el de la celda A2 es la referencia. Ahora he creado otro libro (llamado 'almacen') en el que en la columna A tengo todos los números de referencia, y necesito realizar una macro que me copie los datos de la fila 2 de la hoja 'datos' cuando los valores de la columna A de…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 4.2k visitas
  2. Mi estimados programadores necesito que me ayuden con este tema: Lo que pasa es que tengo 2 archivos de Excel una de ellas para la base de datos y la otra para mostrar los datos, los agradecer bastante les adjunto la aplicaciones correspondientes, gracias de antemano. Importar.rar

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 2.1k visitas
  3. Started by icemoonlove,

    Hola, quiero pedir de su ayuda una vez más con el siguiente código, lo que sucede es que me marca error 91 en la 4ta linea "buscar.Activate", no tengo idea de como solucionarlo Private Sub BAgregar_Click() Dim buscar As Range Set buscar = Cells.Find(What:=TbPaciente) buscar.Activate b = ActiveCell.Row TbIMC.Text = Sheets("Pacientes_Cb").Range("Y" & .Text TbGrasaK.Text = Sheets("Pacientes_Cb").Range("AC" & .Text TbGrasaP.Text = Sheets("Pacientes_Cb").Range("AD" & .Text TbMusculoK.Text = Sheets("Pacientes_Cb").Range("AE" & .Text TbMusculoP.Text = Sheets("Pacientes_Cb").Range("AF" & .Text End Sub [/PHP] De antemano gracias

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.6k visitas
  4. Hola, Tengo una dificultad con un libro llamado Presupuesto de obras, el cual tiene barias hojas llamadas APU, donde se describen el Análisis de precios Unitarios de cada Item o Actividad, en este aparecen cantidades de materiales por unidad, la idea es que mediante una función o macro, calcule los valores de las celdas Cantidad/rend X cantidad del item y luego muestre el resultado total en la tabla Materiales, mas detalles en el Libro anexo en la actualidad, en la tabla materiales hace el proceso pero al verificar la operación manual no da coincide con el resultado del macro, si por favor me pueden ayudar a corregirlo. Gracias Presupuesto de Obra 2.zip

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.5k visitas
  5. Started by Predi,

    Buenos días Como se puede poner la ruta donde guardar el fichero pdf en la macro que tiene esta hoja factura Gracias Factura.xlsm

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 4.7k visitas
  6. Eliminar una carpeta cuyo nombre lo tengo en la celda A1 Gracias anticipadas por la ayuda

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 4.7k visitas
  7. Muy Buen Dia, agradesco su ayuda. El problema es que tengo un UserForm con 40 ListBox, en los cuales con el evento Exit deben de ir Armando un "Where" que quiero usar para SQL, los primeros 20 ListBox lo hacen perfectamente, pero los Siguientes 20, no hace nada cuando se cumple el evento. Estube revisando paso a paso y primero cierra el UserForm y al final se va al Exit del Listbox(21-40) correspondiente. Este es el Codigo de ListBox1, que funciona bien. Private Sub F_1__Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim F As New Collection For i = 0 To F_1_.ListCount - 1 If F_1_.Selected(i) = True Then F.Add ("Base.A1 = '" & F_1_.List(i) & "…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.3k visitas
  8. Started by JavierAdrian,

    Hola: Queria saber si es posible generar una macro que me ajuste los altos de fila según esta necesidad: a. autoajuste b. si el alto que resulta de lo anterior es menor a 50 autoajustar a 30 Bueno eso seria Gracias

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.3k visitas
  9. Started by jeanette27,

    Tengo el siguiente código: Private Sub CommandButton1_Click() Dim xCodigo As String, xApDcto As String Dim xFila As Integer, xDcto As Integer, xLargo As Integer Dim resp As Boolean On Error Resume Next xCodigo = frmConsulta.TextBox1.Value xLargo = Len(Trim(xCodigo)) If xLargo = 1 Then xCodigo = "000" & xCodigo: frmConsulta.TextBox1.Value = xCodigo If xLargo = 2 Then xCodigo = "00" & xCodigo: frmConsulta.TextBox1.Value = xCodigo If xLargo = 3 Then xCodigo = "0" & xCodigo: frmConsulta.TextBox1.Value = xCodigo Hoja1.Select Range("A2").Select resp = Cells.Find(What:=xCodigo, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.7k visitas
  10. Private Sub ListadeBusqueda_DblClick(ByVal Cancel As MSForms.ReturnBoolean) If Me.ListadeBusqueda.ListIndex <> -1 Then CIdAutomatico = ListadeBusqueda.Column(0) 'A CProvincia = ListadeBusqueda.Column(1) 'D CEspecie = ListadeBusqueda.Column(2) 'N CTipodeRegistro = ListadeBusqueda.Column(3) 'K CMotivo = ListadeBusqueda.Column(4) 'L CSitio = ListadeBusqueda.Column(5) 'E valor_buscado = Me.CIdAutomatico.Value ufila = Sheets("BDCapturasMuertos").Range("A" & Rows.Count).End(xlUp).row With Sheets("BDCapturasMuertos").Range("A2:A" & ufila) Set filaseleccionada = Range("A2:A" & ufila).Find(valor_buscado, LookAt:=…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1k visitas
  11. Started by jhonleonardo,

    Buenas tardes estoy creando un proyecto de stock de inventario , para ingresar piden usuario y contraseña , y se activa un menu automaticamente con varias formas , las idea es que son dos usuarios inicialemente , admin y ventas , quisiera general informes de todos los movimientos pero que solo los pueda ver el admin , estos botones los queria colocar en el menu , pero el usuario ventas tambien los puede ver y ejecutar , que manera hay de restringir el ingreso a un boton de estos al usuario ventas y no al admin , que puedo hacer , talvez antes de ejecutar pedir la contraseña pero como lo hago ? espero este claro y me puedan colaboral , no coloco archivo ya que me tocari…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.2k visitas
  12. Started by Teo1099,

    Hola a todos Necesito de su ayuda para lo siguiente: He estado trabajando con un Formulario en Excel el cual me será muy útil para hacer mis actividades mas rápido y se trata de un UserFom que por medio de una referencia me busque toda la información que pertenezca o sea de ella. Por ejemplo: de la Referencia: 00001, al momento de seleccionarla, me traiga y me muestre en el Userform su nombre, fecha de antigüedad y algunos datos mas. He hecho algo al respecto, pero, he buscado como hacerlo, pero, hasta este momento no he podido. subo mi ejemplo y en el archivo, viene con patallas e imagen de lo que necesito, para llamar el formulario presiona Ctrl+q …

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.1k visitas
  13. Que tal buenas tardes a todos!!! Para consultar y pedir apoyo si alguien me puede ayudar en este documento tengo una macro que se ejecuta con convinacion de teclas Ctrl+T dicha macro quiero eliminar la después de un cierto tiempo para que ya no se pueda ejecutar espero alguien me pueda ayudar y darme una propuesta Existencias_productos.xls.xlsm

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.6k visitas
    • 1 seguidor
  14. Started by Benito Bartolomé,

    Buenas tardes a todos; He creado una macro con la grabadora para copiar columnas no contiguas y pegar los valores en una tabla que se encuentra en la misma hoja. Al pulsar sobre el botón "Copiar" se ejecuta la macro y muestra el resultado que me gustaría obtener. Un saludo para todos. Adjunto macro. MCopiarColumnas.xlsm

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.7k visitas
    • 1 seguidor
  15. Muy buenas a todos, He estado leyendo y probando métodos que dais en otras dos consultas muy similares a esta, pero lo único que he conseguido es entrar en un bucle infinito que bloque todo. Os cuento, estoy realizando una pequeña aplicacion en vba y necesito que un determinado día de la semana a una hora que yo le fije, ejecute una macro. Esta macro lo que hace es , dependiendo del valor de una celda (0 o 1) , compara el día actual y si se corresponde el día con el fijado en otra celda, envia un e-mail y eso lo hace bien, si se abriera la hoja de excel todos los días, funcionaría, pero, en teoría el formulario va a quedar siempre abierto y al hacer uso de ont…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 2.4k visitas
    • 1 seguidor
  16. Started by jcjones,

    Buenas tardes A los foristas Quien sabe como usar EL to EXE, lo he probado pero me marca un error ya que tengo dos archivos y tienen un vinculo. El archivo se abre pero no reconoce el que tiene el vinculo para actualizar la información ademas de eso el archivo convetido el antivirus me lo marca como amenaza. Muchas gracias por su ayuda.

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.4k visitas
  17. Started by aprendiz,

    queria preguntar como se hace para que al ingresar un nuevo dato desde un formulario ingrese tambien el formato de celdas (borde, ancho, alineacion) y las formulas? intente grabando una macro con la grabadora de macros, pero se me hizo mucho codigo con solo el formato de celda... muchisimo... demasiado... exagerado... y no logro exagerar lo suficiente para acercarme a la exageracion... DEPRECIACION 3.rar

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.4k visitas
  18. Hola estimados amigos Espero que me puedan colaborar en este problema , por que no le encuento solucion, les explico, tengo unos texbox que quiero que cambien de color dependiendo del estado, LIBRE OCUPADA o RESERVADA, he conseguido que cambien de uno en uno, por lo que necesito mucho codigo y se hace muy pesado el programa, y necesito que con menos codigo se rellenen todos Muchas gracias Saludos Prueba

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.4k visitas
    • 1 seguidor
  19. Buenas por favor necesito de su ayuda. Tengo una hoaj en la cual estan mis datos, quiero crear con macros nuevas hojas que contengan las quince primeras filas en una hoja nueva, y las siguientes quince en otra hoja, y asi sucesivamente hasta terminar con el listado, aun asi la ultima hoja creada no tenga los las quince filas. Se podria hacer tambien para una cantidad variable de filas es decir 20 o 30 Gracias por su apoyo Medicos.xlsm

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 866 visitas
  20. Started by 96andres96,

    Buenas tardes, quisiera que cuando ejecuto una macro esta me escriba en una celda el nombre de una tabla para que la muestre en esa celda. Es decir, si tengo una tabla que va de "A1:B2" llamada TABLA. Si yo escribo de forma manual en la celda C5: "=TABLA", se me muestra la tabla. Pues bien, yo quiero poder hacer esto con VBA. Es decir, que la celda C5 esté vacía pero al ejecutar una macro se escriba en C5: "=TABLA" para que ahí se me muestre la tabla. El problema es que cuando intento hacerlo, en lugar de en C5 escribirse "=TABLA" se me escribe "@TABLA" y no sé cómo poder solucionarlo. Tengo esta línea de código: Sheets("Hoja").Range("C5") = "=TABLA" …

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1k visitas
    • 2 seguidores
  21. Started by Sergio,

    Hola: El otro día me hicieron una pregunta que no supe contestar: En una empresa tienen una macro que lee archivos de texto gigantes (unos 2 GB) para extraer una determinada información de ellos. La macro tarda en ejecutarse nada más y nada menos que unos 4 días enteros y la pregunta que me hicieron fue que si existía alguna posibilidad de dividir la ejecución de la macro en otros equipos conectados para que, a través de sus otros procesadores, tardara menos tiempo. Ahí queda eso. A quien sepa responder a eso, le doy un 10! Saludos

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.5k visitas
  22. Started by jose_luisc,

    Buenas tardes, el tema es el siguiente, tengo una tabla para llevar una cuenta corriente, quisiera que al ejecutar una macro con un botón, se copien ciertas funciones que hagan referencia a determinadas celdas, pero que en la próxima ejecución haga referencia a la celda de abajo. En el ejemplo adjunto lo hice, pero estático, osea que siempre hace referencia a la misma celda,¿como se haría para que tome los datos de la próxima inferior, en cada ejecución? Desde ya muchas gracias! ejemplo.xlsx

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 669 visitas
    • 1 seguidor
  23. Buenos días, Me gustaría saber si me podríais ayudar con este ejemplo que adjunto. En una tabla para añadir tiempos, no consigo que me queden fijos los valores en la celda (hora de llegada), según voy añadiendo mas filas me modifica todas celdas de las anteriores filas. Muchísimas gracias de antemano. ejp.xlsm

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 647 visitas
  24. Started by CamiloM,

    hola amigos, soy un poco novato en esto de los macros... y estoy intentado hacer un programa que facilite muy trabajo pero me encuentro con un error que me saca canas bueno... el error que me sale, lo he resumido en esto: Sub asd() Dim d, e As String d = "A5" e = "=sum(A2:" & d&")" End Sub[/CODE] me sale error de sintaxis en 4 linea... le quiero asignar a e=sum(A2:A5) .... y no me deja.... PD: A5 puede cambiar de valor por eso no lo pongo directo. PD: este no es toda la macro... pero resolviendo este puede corregirlo. De antemano gracias por su colaboracion

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.3k visitas
  25. Hola a todos, tengo esta macro la cual me dice si la fecha que introduzco es menor a la del sistema, lo que deseo es que no me me escriba esa fecha si es menor a la del sistema. Espero haberme explicado y espero vuestra ayuda Sub CheckDate() Dim Mes As String, Año As String, FechAs As Date, Hoy As Date, Sig As Long Hoy = Format(Now, "dd/mmmm/yyyy") Mes = ComboBox1 Año = ComboBox2 FechAs = Dia & "/" & Mes & "/" & Año If FechAs < Hoy Then MsgBox "La fecha asignada es menor a la de hoy" Sig = 1 Else MsgBox "Fecha asignada correctamente" End If End Sub fecha.txt

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 854 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.