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. 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
    • 980 visitas
    • 1 seguidor
  2. Started by xibanez,

    Buenas, Es la primera vez que participo en un foro y la verdad es que no tengo mucho conocimento de excel, pero NECESITO VUESTRA AYUDA PORFAVOR! Por temas de currelo necesitaria un excel en el que se pudieran indicar diferentes variables (precios, pesos, zonas geograficas) a diferentes proveedores de transporte. Y una vez introduzcamos el dato del paquete a enviar me facilite el mejor proveedor para esa ruta y tamaño de paquete. Se que es algo complejo (por lo menos para mi) pero se que se ha tratado este tema antes y realmente lo necesito. MUCHAS GRACIAS DE ANTEMANO!!!!!!!!!!!!!!!!!

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 917 visitas
  3. Hola, enhorabuena por la web y por compartir conocimientos. Tengo una hoja sencilla con dos columnas en la primera tengo una palabra rusa y en la segunda su significado, es para retener vocabulario. Lanzo el formulario en el que aparece aleatoriamente el primer término y cuando pulso el botón azul , veo el resultado en la segunda caja de texto debajo de la pregunta. Ahora pulso el botón verde si he acertado o rojo si he fallado. El primer problema que tengo es que da error una ficha antes de que termine con todas. El segundo es que no se como pasar el dato fallado, pregunta y respuesta a la hoja que me creo cuando fallo la primera que he llamado "arepetir". Mi inten…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 953 visitas
  4. Started by LUISETE,

    Hola de nuevo a todos los miembros del foro, en días pasados subí un archivo excel para resolver un problema relacionado con la gestión de imágenes en un pequeño programa de inventario. Macro Antonio solucionó mi problema asignando a cada imagen un nombre que consistía en la unión de la palabra "FOTO" con el número de la fila de la celda activa. El caso es que tengo que cambiar el nombre estas fotos, porque al cambiar el orden de las filas y eliminar una de ellas, no se borra la imagen de esa fila, sino la imagen de la fila de procedencia. Quiero entonces crear una macro que pase por cada una de las celdas con foto de mi inventario (todas en la columna seleccione la fo…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 7.2k visitas
  5. Started by Alehtse86,

    Buenas tardes a todos, y si me he equivocado de foro de antemano una disculpa, ocupo algo sencillo que no he podido encontrar, tal vez no he buscado como debo. Ahí voy... Quiero que en una celda (a través de una formula o macro) pueda llamar el numero de pagina y el total de páginas que he mandado imprimir, es decir, lo que Excel hace en encabezado y pie de pagina, cuando le das '&[Página] de &[Páginas]'. Pues lo ocupo para un libro que tiene 41 hojas, cada una contiene de 1 a 5 páginas, pero el formato de llenado no lo puedo cambiar, y lleva este dato en una celda, pues tener que poner a mano "Hoja 1 de 54", la que sigue "Hoja 2 de 54", etc., etc., es bastante e…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 16.7k visitas
  6. Started by gvictor,

    Buenas, soy nuevo en el foro y desde ya agradezco por el tiempo que se dan en leer mi pregunta…. Tengo el siguiente problema, llevo varios meses realizando un proyecto en Excel, donde e invertido varias horas de mi tiempo en la generación de macros y código vb en la misma planilla… El tema es que simplemente quiero proteger mi trabajo, para esto protegí las hojas…. Pero me encontré con que agregando una macro puedes desproteger la hoja… bueno agrega password al proyecto de vb y con eso no se puede ni ver el código, ni ver las macros ni agregar macros, perfecto dije…. Pero al buscar en Internet me di cuenta que de igual manera se pueden “Violar” los proyectos para sacar …

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.1k visitas
  7. Started by crengifo,

    Buenos días, quisiera que me ayudar para ver que le falta a mi macro para que omita las filas en blanco y siga a la siguiente fila para que extranga los datos de ela ultima fila. Adjunto la macro Set jhcrudo = Sheets("CRUDO") jhcrudo.Activate jhcrudo.Cells(1, 1).Select jhcrudo.Cells(1, 1).End(xlDown).Select Fila = ActiveCell.Row For v = 1 To 5 jhcrudo.Cells(Fila, 1).Select jhcrudo.Cells(Fila, 1).End(xlDown).Select Fila = ActiveCell.Row Next v jhcrudo.Cells(Fila, 1).Select jhcrudo.Cells(Fila, 1).End(xlUp).Select Fila = ActiveCell.Row Fila2 = Fila Target = 1 While Target = 1 jhcrudo.Activate If jhcrudo.Cells(Fila, "C") = "R1" Then…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 576 visitas
    • 2 seguidores
  8. Started by jhon fredy,

    algun codigo que arroje todos los colores de excel en una sola columna gracias

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.7k visitas
  9. Started by Milton Cordova,

    Saludos estimados Master tenha la gentileza de ayudarme con esta macro: tengo tres rangos A5:A20 C5:C20 E5:E20 lo que deseo es que al dar doble clic en el A5:A20 empiece la numeracion en cualquier celda empezando desde el numero 11 hasta llegar al 19 y luego no me permita mas, de la misma manera para el rango C5:C20 con la numeracion desde 21 hasta el 30 y para E5:E20 con la numeracion desde 31 al 40. finalmente si quiero eliminar algun numero puedo hacer clic derecho y borrar el numero de la celda, y cuando sigo con cl clic este numero se debe restaurar actualizado el conteo. Gracias DOBLE CLIC RANGOS NUMERADOR AUTOMATICO.xls

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.3k visitas
  10. Started by renato13,

    Buenas noches amigos Excelianos como están? espero muy bien. Necesito de su experiencia estoy trabajando para un proyecto de mi univesidad y la verdad he encontrado un proyecto casi a lo que necesito en este foro pero está incompleto el código del botón modificar tiene o comete algunos errores al ejecutarlo. Resulta que ingreso datos por un formulario y se grabará en un hoja de excel que me sirbe como Base de datos, alguien suguiere que se lo haga en Acces claro eso es mas para jugar con datos pero no todos pueden utilizarlo como yo. Es mas no quiero ingresar millones de datos por eso quiero acoplarme a excel y con un poco de ayuda de VBA se que puede funcionar. Bueno en …

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 4.6k visitas
  11. Started by ArmandoR,

    Buenas noches compañeros, adjunto fichero excel que he modificado en función de mis necesidades. En su momento fue colgado en este foro por Antoni (un grandísimo trabajo) y yo he intentado amoldarlo para que se adapte a lo que necesito dentro de la gestión de proyectos. Mi pregunta es si es posible que las barras que se generan puedan incluir además el estado de progreso que se representa en la columna I Muchas gracias TOR_PRUEBA_2.xlsm

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.5k visitas
  12. Started by Piul69,

    No se si me sabré explicar, pero aún así... voy al lío. Partiendo de la base que trabajo a turnos 06:00h-14:00h, 14:00h-22:00h y 22:00h-06:00h, lo que necesito es una macro/fórmula que me inserte la fecha en un celda automáticamente según el día en el que esté, pero teniendo en cuenta que para ello el día en vez de terminar a las 23:59h, termina a las 05:59h y el comienzo igual, en vez de empezar a las 00:00h, empieza a las 06:00h. No se si será posible lo que solicito, he estado buscando por el foro, ya que debido a mi trabajo ahora que me han puesto un PC quiero poner en práctica varias ideas que tengo para mejorar la productividad y que sea más cómodo en la medida de…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.1k visitas
  13. Started by xavima,

    Hola De nuevo solicito la colaboración de esta gran familia. Un nuevo reto en un pequeño programa está acabando con mi paciencia. He de desarrollar una entrada de datos temporal hasta que nos realicen el programa conectado al ERP. Me voy a explicar: a partir de una serie de datos que voy copiando a la hoja "HIS" necesito importar los datos a la hoja "RES" a partir de tres posibles opciones de búsqueda: fecha, OF y OF con fecha inicial y fecha final. Adjunto ejemplo con datos. Me podeis ayudar? Tengo fecha limite de entrega del proyecto a gerencia. Gracias Libro1.xlsx

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1k visitas
  14. Hola amigos de Ayuda Excel Quería consultar si hay alguna opción en VBA de bloquear la opción de "ELIMINAR" una hoja en particular de un libro. La opción de proteger el libro no me sirve pues necesito que otras opciones del menú de la hoja estén activas. Gracias

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.7k visitas
  15. Hola buenas. Tengo este código y quisiera simplificarlo, con un bucle que me cargase lo mismo en los Combobox2 a Combobox8. No encuentro como hacerlo o no se como hacer la pregunta para encontrarlo, porque no lo encuentro. ¿me podéis ayudar? No es urgente, es simplemente que así son demasiadas líneas de código. Gracias. For Each celda2 In rango2 ComboBox2.AddItem celda2.Value ComboBox3.AddItem celda2.Value ComboBox4.AddItem celda2.Value ComboBox5.AddItem celda2.Value ComboBox6.AddItem celda2.Value ComboBox7.AddItem celda2.Value ComboBox8.AddItem celda2.Value Next celda2

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.1k visitas
    • 1 seguidor
  16. Buenos días, expertos necesito una ayuda por el momento en la hoja llamado 1 que cuando pulso clic en cualquiera de los botones de opción de los platos u otros que se encuentran en la parte inferior se me agreguen en el cuadro de lista como por ejemplo la cantidad, plato, precio y otros, y si vuelvo a presionar clic en el mismo botón que agregue solo se aumenten la cantidad mas no debe agregarse un nuevo registro; por favor me pueden ayudar y espero lo pueden entender mi problema es un poco complicado para mi. Adjunto el archivo MEJORA-2.0.xlsm

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.4k visitas
    • 1 seguidor
  17. 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
  18. Started by nslgcl,

    Buenas tardes! Estoy trabajando en una macro que trabaja en base a una userform, el problema es que al cerrar el formulario el excel se bloquea (no se desplaza correctamente por las celdas y no deja cerrar el excel) todo esto hasta que cambio de hoja seleccionando abajo manualmente. todas las pruebas que he hecho me han llevado al problema, que esta en el siguiente codigo y al sacar la seleccion de la hoja2 (marcado en rojo) funciona correctamente, pero no puedo llenar los combobox. Private Sub UserForm_Initialize() Application.Visible = False Hoja2.Visible = xlSheetVisible Columns("ag:ag").Select Selection.EntireColumn.Hidden = False Sheets("Operaciones").Sele…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 4.6k visitas
  19. Buenas tengo creado un mapa coroplético y me gustaría refactorizar el código mediante el uso de clases. La idea es que al abrir el libro se ejecute un constructor y almacene todos los objetos provincia en una colección. Pongo una captura de lo que he hecho hasta ahora: https://i.postimg.cc/90MJvP2W/imagen-2021-03-20-200920.png Ya he creado la estructura de cada una de las clases (cProvincia y cProvincias) pero mi duda es: 1. ¿Sería posible declarar a modo global una colección que dure el tiempo de vida del libro? ¿Es posible declarar una colección de tipo static como variable global? Lo he intentado y marca error. Más que nada lo digo, porque si cambio…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.4k visitas
  20. Started by Comi,

    Saludos. Os dejo un archivo adjunto. Son dos hojas, una llamada CSV que es como a mi me llega la información de un pedido y la otra hoja que es donde me gustaría tener todos los pedidos juntos para poder controlarlos a la vez. No busco que me lo "arregléis sin más" solo que no se me ocurre como plantearlo. Obviamente lo único que se de programación es copiar y pegar algunos códigos que encuentro en mis hojas de excel. Gracias chicos. Ejemplo.xlsx

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.5k visitas
    • 1 seguidor
  21. Started by aprendiz,

    bueans tengo este codigo Private Sub BtnGrabarDatos_Click() On Error Resume Next intvalor = 1 For i = 1 To ReCantidad Step 1 Range("B6").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop Range("B5:V5").Copy Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormatsAndFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False ActiveCell = CDbl(ReCodigo) ActiveCell.Offset(0, 1) = ReCategoria If IsNumeric(ReNuFactura) Then ActiveCell.Offset(0, 2) = CDbl(ReNuFactura) Else ActiveCell.Offset(0, 2) = ReNuFactura End If If ReReferencia.Enabled = False Then ActiveCell.Offset(0, 5) = "" …

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.7k visitas
  22. Started by jesuspg,

    Hola, me gustaría ocultar la cinta de opciones tan sólo en mi libro activo. Se me ocurren las siguientes ideas, pero no me funcionan: Sub OcultarRibbon1() If ThisWorkbook.Activate = True Then Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", False)" End Sub Sub OcultarRibbon2() Application.ThisWorkbook.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", False)" End Sub Agradecería cualquier ayuda. Gracias.

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 3k visitas
    • 2 seguidores
  23. 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
    • 790 visitas
    • 2 seguidores
  24. Started by juanca23,

    Buen dia Amigos de Ayudaexcel.com Necesito de la ayuda de ustedes necesito crear una macro para que me abra un archivo txt que esta anexo y tambien anexo en excel el formato de como deberia quedar la macro yo utilizo la gabadora de macros pero no he podido tener el archivo como lo necesito ya que en el archivo txt hay informacion de venta pero esta por tienda y lo que necesito es que la tienda quede al frente de cada fila macro.zip

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.6k visitas
  25. Started by Pedro Maias,

    Buenos días, os hago una pregunta estoy limpiando unas macros y quisiera saber sin el Range se puede ejecutar con variable, aquí va una explicación If Range("s50") >= 1 Then Range("U50") = ("=U47+S50") zz=b2 : xx=s2 ' Variables que después toma el range en la sub Call Datos Else: Range("u50") = C:End IF If Range("S2") >= 1 Then 'Range("U2") = ("=U50+S51") xz=63 : zy=76 ' Variables que después toma el range en la sub Call Datos Else: Range("u51") = C: End IF Sub Datos() Worksheets("Hoja2").Unprotect Password:=PR Range("zz:xx") .Copy Sheets("H…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.2k 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.