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?
8680 temas en este foro
-
Hola a todos y todas; -A ver si me podéis echar un cable. Estoy intentado pasar el nombre del formulario por parámetro a un procedimiento que tengo en un módulo y me genera error y no sé porque. Si la macro la ejecuto desde la subrutina del formulario va bien en cambio desde el módulo no va y no sé porque. Sub EnviarHojaActiva(vForm As UserForm) 'Sub EnviarHojaActiva(UserForm1 As UserForm) <---Tampoco va Dim RutaTemporal As String, NombreArchivo As String Application.ScreenUpdating = False Application.DisplayAlerts = False NombreArchivo = ActiveSheet.Name RutaTemporal = VBA.Environ("temp") & "\" NombreArchivo = RutaTemporal & NombreArchivo …
-
0
Reacciones de usuarios
- 2 respuestas
- 592 visitas
- 1 seguidor
-
-
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
- 2.9k visitas
- 2 seguidores
-
-
Hola como andan!, me estoy iniciando en el lenguaje de VB y me surgió una duda al momento de realizar una tarea. El control en cuestión consta en lo siguiente: la hoja de Excel consta del día del 1 al 31 en las columnas de la hoja y en la fila de debajo se coloca un 3 o se deja vacía dependiendo de si ese día se realizo el control pertinente (por ejemplo si en el día 12 hay un 3 es porque ese día se hizo el control, si no hay nada, no se hizo). La cuestión es que el control se debería hacer cada MAXIMO 7 días (es posible que se haga cada menos días). Lo que quiero hacer es un macro que analice los datos de control y si un día que debería haberse hecho control (ósea si pas…
-
0
Reacciones de usuarios
- 3 respuestas
- 652 visitas
- 1 seguidor
-
-
Buenas tardes, hice este código en VBA, consiste en abrir un dialogo para seleccionar un archivo, después copiar la info de la tabla que va de "C6" a "K" la fila K varía a veces más o menos filas ocupadas... después pegar la info en una tabla de otro libro, de igual manera empezando en "C6" o en la última fila que se encuentre texto o información. El problema es que copia y pega todo el rango que puse, "C6:K125" inclusive las filas vacías y después al querer pegar en la ultima fila, aparece el error '1004 en la línea resaltada del código, creo que este ultimo está mal hecho. Alguien sabe como arreglarlo? ______________________________________________…
-
0
Reacciones de usuarios
- 1 respuesta
- 559 visitas
-
-
Buenas tardes, mi consulta es por un problema que tengo con un listbox que uso para mostrar resultados de búsqueda filtrados mediante un textbox, el tema es que cuando no hago búsqueda con el textbox, se muestran todos los datos de las columnas que quiero con su formato correspondiente, pero al realizar una búsqueda, filtra muy bien pero la columna de los precios no se ve con formato de moneda (como si está en la tabla original y en el listbox antes de filtrar) Les dejo el procedimiento (que lo fui adaptando de otros trabajos publicados y también con su ayuda, ya que no tengo conocimiento en el tema) Desde ya muchas gracias Private Sub TEXTO_Change…
-
0
Reacciones de usuarios
- 19 respuestas
- 1.7k visitas
- 1 seguidor
-
-
Buenos días a todos. Necesito convertir una celda donde tengo una fecha en una cadena de caracteres. El problema es no quiero que elimine los 0 a la izquierda. Por ejemplo 01/07/2022 debería convertirse a 20220701, sin embargo solo consigo que se convierta en 202271. Este es el código simpe que he puesto y que luego lo he de adaptar con bucles y demás. La fecha la tengo en la celda B1 y he de convertirla en la celda B2 Sub fecha_inicio() anyo = Year(Sheets("Repsol").Range("B1")) mes = Month(Sheets("Repsol").Range("B1")) dia = Day(Sheets("Repsol").Range("B1")) Sheets("Repsol").Range("B2") = anyo & mes & dia End Sub Gracias.
-
0
Reacciones de usuarios
- 4 respuestas
- 900 visitas
- 1 seguidor
-
-
Buenas tardes colegas. Espero se encuentren bien de salud. En un Proyecto que terminé hace un par de meses me está dando el Error 91 en Tiempo de ejecución... Este Error lo está dando en el FrmRetenciones (cuando se va a Cargar). Dicho Formulario prácticamente lo hizo el profesor Antoni a solicitud de una ayuda de mi parte. Trabajaba perfecto hasta hoy, que traté de hacerle una modificación al Sistema, porque necesito que las cuentas que Agregue al Clasificador General (FrmACuenta) en el Rango de las 460 001 a la 460 007 me las imprima en la HojaBase (E28) y en la Hoja Comprobante1 (A16). Estuve revisando y no me doy cuenta de dónde está el error. Por…
-
0
Reacciones de usuarios
- 5 respuestas
- 2.8k visitas
- 2 seguidores
-
-
Buenas noches a todos, cuento con una macro que funciona muy bien, basicamente lo que hace es rellenar notas de estudiantes a una pagina web, situada en un boton, la cual va tomando sus valores de un textbox3 y combobox1. entonces al escoger el numero de estudiantes en una lista de 1 a 45 situada en el combobox1, la macro comienza su funcionamiento y rellena la nota en la pagina web. ahora la pregunta es: ¿Como hacer para que una vez escogido el numero 1 en el combobox1 y terminada su ejecucion, pase automaticamente al numero 2 de la lista, hasta el numero final establecido en la celda "AO1", de la hoja "Sigep"? la macro es la siguiente On Error Resu…
-
0
Reacciones de usuarios
- 2 respuestas
- 515 visitas
- 1 seguidor
-
-
Hola chicos, llevo dándole vueltas a un asunto un tiempo y no sé cómo resolverlo, a pesar de que tengo el manual de Sergio sobre VBA y me he leído y releído el capítulo sobre el tema muchas veces, y de buscar por internet y no he encontrado nada. Finalmente, voy a recurrir a vosotros, sabios de VBA y de Excel, para que me echéis un cable, y me ayudéis, que seguro que con vuestros conocimientos podréis hacerlo. Gracias de antemano. El tema es el siguiente: Se refiere a un menú contextual integrado en Excel, y concretamente el que surge de la barra de títulos, arriba del todo. Quiero deshabilitarlo en su totalidad, o en su defecto, deshabilitar la primera opció…
-
0
Reacciones de usuarios
- 3 respuestas
- 721 visitas
- 2 seguidores
-
-
Soy nuevo utilizando VBA y buscando en los foros logré crear una Macro para mostrar algunos resultados. Supongo que necesitan saber qué hace pero no sé como explicarlo! ? Tengo dos hojas una de nombre Ticket y otra con nombre Hoja1 En ticket debe mostrar la fecha actual en la celda C3 , la Hora actual en la celda D3 y un numero (serie) que aumenta en 1 según el valor de la celda D2 de la hoja1 esta información se guarda como valores en la fila 2 de la Hoja1. Luego ingresando el número de serie en la celda B9 de la hoja Ticket, lo busca y muestra la Hora (guardada anteriormente) en la celda C9, resta la fecha actual (Now) con la celda C9 y lo muest…
-
0
Reacciones de usuarios
- 1 respuesta
- 711 visitas
- 1 seguidor
-
-
Buenas tardes colegas. Son mis deseos que se encuentren bien de salud. Tengo un problema y me gustaría que me ayudaran dentro de sus posibilidades. Es sobre el Sistema de Ordenes de trabajo que algunos de ustedes me han ayudado a conformar. El Sistema recoge el total de las Ordenes de Trabajo que se ejecutan y se toman una serie de datos. Todo está funcionando bien, pero se me presenta un problema. En una misma Orden pueden haber dos o más Operario y en esos casos habría que hacer tantas veces como operario exista la misma Orden. Voy a explicarme de una mejor manera: Ejemplo: En la orden 75145 se pasan los datos a cada uno de los campos que se solicita, per…
-
0
Reacciones de usuarios
- 5 respuestas
- 594 visitas
- 2 seguidores
-
-
buenas tardes, preciso de vuestra ayuda. adjunto fichero con una lista desplegable de provincias, necesito que al seleccionar Baleares se abra un formulario preguntando si corresponde a Ibiza siendo la respuesta mediante dos botones de opcion Si/NO o tambien me valdria un msg box con las respuestas SI/NO . muchas gracias! userform_msgbox.xlsx
-
0
Reacciones de usuarios
- 5 respuestas
- 689 visitas
- 3 seguidores
-
-
Hola intento aplicar esta fórmula donde el código es una columna que puede variar y wnumero también es otra columna que puede varias, sin importar el orden en que ingresé estas dos variables en la fórmula sumifs, la fórmula aparece no con el rango B15 sino con el rango $b414. O si ingreso A14 aparece la fórmula con $a$415.. .alguien sabe porque ?... Sub fórmula () Dim celda as range Dim pnum as range Application.screenupdating =false With sheets ("reporte") For each celda un .range (.range ("b14"),.range ("b14"). End (xldown) For each celda un .range (.range ("a14"),.range ("a14"). End (xldown) Cel…
-
0
Reacciones de usuarios
- 4 respuestas
- 701 visitas
-
-
Buenos días, En el archivo adjunto tengo un listview que en las columnas respectivas C, F que corresponden a los € necesito que se muestren en el listview los importes con dos decimales. ¿Alguien me podría ayudar a definirlo?. He encontrado varias formas por internet pero ninguna soy capaz d e adaptarla a mi código... Muchas gracias de anteamano. BUSCADOR PRECIOS SUBCONTRATAS.xlsm
-
0
Reacciones de usuarios
- 2 respuestas
- 762 visitas
- 1 seguidor
-
-
Buenas noches colegas. Espero se encuentren bien de salud. Ya retomé el trabajo de Control de Combustible y Mantenimiento que mi jefe me había pedido y que les comenté. Y también comencé con las “MOLESTIAS” a ustedes. Esta vez es para ver si en algún momento tienen un tiempo libre y me pueden ayudar. Varias son las dudas, pero quiero ir poco a poco para que ustedes puedan ayudarme en la medida de lo posible. A ver; el Proyecto aun no está terminado, me faltan algunos elementos de carácter técnicos sobre la manipulación del Transporte y el control de combustible que esta semana debo aclarar porque tengo una cita con mi Jefe y la persona que va a man…
-
0
Reacciones de usuarios
- 15 respuestas
- 791 visitas
- 2 seguidores
-
-
Este código va en un botón el cual inserta datos pero al presionarlo me sale: Se ha producido el error '-2147417848(80010108)' en tiempo de ejecúcion: Error en el método 'Insert' de objeto 'Range' A continuación les dejo el código en cuestión: Private Sub CommandButton1_Click() Range("Alumnos!A2").EntireRow.Insert Range("Alumnos!B2") = TextBox1.Value Range("Alumnos!C2") = TextBox2.Value Range("Alumnos!A2") = TextBox3.Value Range("Alumnos!D2") = ComboBox1.Value Range("Alumnos!E2") = ComboBox2.Value MsgBox "Registro completo" LimpiarCampos End Sub Si alguien me puede ayudar se lo agradecería mucho, saludos.
-
0
Reacciones de usuarios
- 8 respuestas
- 982 visitas
- 3 seguidores
-
-
buenas tardes amigos , agradezco de su ayuda con el siguiente caso , necesito ingresar a la pagina web que se encuentra en el código diligenciar el password (ya logrado) y dar click en el botón para ver el documento (no logrado), lo he intentado pero no logro identificar el id del boton para efectuar el click, he tratado con IE.document.getElementByClassName("button").Click o con IE.document.getElementByTagname("button")(0).Click pero no funciona , quedo atento a su ayuda gracias codigo: Sub CARGAR_DATOS_WEB() Dim IE As Object Application.ScreenUpdating = False 'Creamos objeto internet explorer Set IE = CreateObject("InternetExplorer.Application") 'ab…
-
0
Reacciones de usuarios
- 1 respuesta
- 1.7k visitas
- 1 seguidor
-
-
Buenos días, tengo un archivo Excel en el que interactúan varios usuarios con contraseña y dentro de cada usuario con la información correspondiente que le pertenezca. Ahora bien, me gustaría que dentro del ListView se visualizara también la información filtrada sin tener que filtrarla por el buscador ya que la idea es que cada usuario no pueda visualizar lo de los demás. Insisto en que en el archivo original lo tengo definido con una macro pero en listview no funciona. He probado a poner la función dentro del formulario, dentro del listview en cuestión pero no funciona... En las imágenes, en el archivo base aparece filtrado (N o nada) pero en el listvi…
-
0
Reacciones de usuarios
- 2 respuestas
- 576 visitas
- 1 seguidor
-
-
Buenos dias comunidad, Necesito ayuda con lo siguiente: Tengo un reporte de resumen y el mismo se actualiza segun la empresa que selecciono en una lista desplegable ( 500 empresas), necesito crear una macro que recorra las 500 empresas y genere el reporte de cada una de ellas y luego guardar a pdf ( generando un pdf con 500 reportes). Como puedo hacerlo? Solo pude generar pdf individual
-
0
Reacciones de usuarios
- 1 respuesta
- 482 visitas
- 1 seguidor
-
-
Hola, les comento mi inconveniente, tengo una tabla con 11 columnas, la cual estoy filtrando mediante un textbox con macro, pero cuando quiero filtrar una segunda columna manteniendo el filtro en la primera, este último se borra, osea que no puedo tener las 2 columnas filtradas al mismo tiempo, aclaro que no tengo conocimiento en macros, solo adapté mi hoja a un ejemplo que vi en la web, el codigo que uso en el text box es este: Private Sub TextBox1_Change() Application.ScreenUpdating = False With Range("AH1").CurrentRegion filas = .Rows.Count col = .Columns.Count End With Set CLIENTE = Range("D2").Resize(filas, col) With CLIENTE .Au…
-
0
Reacciones de usuarios
- 5 respuestas
- 1.3k visitas
-
-
Hola básicamente tengo una duda sobre si es posible que la fórmula que ingresé en vba .. algo siempre como sumar .. se actualice o se aplique cada que cambie un dato en la tabla y que no la pueda eliminar .. con la tablas pivot no más le puse . Worksheet ("menú").pivottables ("tabla1")?pivotcache.refresh. Cuando no es una pivot que puedo usar para que igual la celda que tiene ese código de actualice.. Si cambio la columna A con un 5 en la celda que tiene el código lea que hubo cambio y automáticamente cambie el resultado a 5.. sin usar un botón.. ? Gracias
-
0
Reacciones de usuarios
- 1 respuesta
- 368 visitas
-
-
Al tratar de llamar los datos de una ciudad que se encuentra en un combo box, me registra el siguiente error: - Error 1004 la propiedad VLookup de la clase WorksheetFunction. Nota: Cabe aclarar que una vez seleccione la ciudad al dar click en el boton buscar es cuando me aparece el error. Public Info As Worksheet Public Hoja2 As Worksheet Private Sub btnBuscar_Click() If cbProvincia.ListIndex = -1 Then MsgBox ("Seleccione una Provincia"), vbExclamation ElseIf cbMunicipio.ListIndex = -1 Then MsgBox ("Seleccione un Municipio"), vbExclamation Else Valor = Application.WorksheetFunction.VLookup(Me.cbMunicipio.Value, Sheets…
-
0
Reacciones de usuarios
- 1 respuesta
- 750 visitas
-
-
Hola a todos; Tengo una duda que no se como resolver y me gustaría salir de dudas. En un formulario he puesto a modo de prueba 18 labels y un botón que al ejecutarlo le quita el color de fondo a cada label. Lo que no sé es si es posible mediante un ciclo que controle el nombre de cada label y así evitar repetir tantas veces el mismo procedimiento. El procedimiento es el siguiente y lo pongo así porque no deja insertar código: Option Explicit Private Sub CommandButton1_Click() ' ¿Hay alguna manera para mediante una variable o función para no repetir ' "Me.Label_ 1 ---> 18" veces? Me.Label1.BackStyle = fmBackStyleTransparent …
-
0
Reacciones de usuarios
- 2 respuestas
- 507 visitas
- 1 seguidor
-
-
Buenos días, Creo que este es un tema estrella pero no he encontrado ningún tema cerrado que tenga que ver con mi problema. Tengo un archivo excel, al que tienen acceso distintos usuarios. Cada uno entra con un usuario y contraseña. Dentro de cada usuario hay personalizada una vista, con columnas ocultas, bordes marcados, filtros, etc. todo esto está hecho con macro además de tener formatos condicionales y algunas fórmulas. La idea es que se pueda editar por varios usuarios simultáneamente. He probado a compartir archivo en red y todo eso pero me da problemas y no mantiene la personalización... No se si habría alguna solución a este problema o alguna alternati…
-
0
Reacciones de usuarios
- 2 respuestas
- 784 visitas
- 2 seguidores
-
-
Muy buen día a todos los miembros de esta comunidad. Les expongo mi duda: Tengo un libro con Hoja 1 - Hoja 2 - Hoja X El libro tiene un userform con un combobox y un listbox El listbox muestra la base de datos que está en hoja 1 el combobox filtra la información que muestra el listbox el listbox es multiselect mi duda Hay algún método o código standard para capturar las filas seleccionadas del listbox (que están filtradas por el combobox), Copiarla(s) y pegarlas en la hoja 2 (no es importante el orden) y además elimina…
-
0
Reacciones de usuarios
- 1 respuesta
- 455 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.