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 de nuevo espero me podais ayudar con esta nueva duda. Para colocar una imagen en un boton de comando en un UserForm, voy a picture elijo la ruta de la imagen y la pongo en el botón, hasta ahi todo bien, mi problema empieza cuando quiero quitar la imagen de ese mismo botón de comando, que no se como hacerlo. Gracias por vuestra atención. Un saludo.
-
0
Reacciones de usuarios
- 2 respuestas
- 8k visitas
-
-
Hola, Tengo una macro para quitar la letra "h", por favor me podrian indicar como puedo hacer para quitar cualquier tipo de letra o caracter que encuentre en el rango de la tabla y solo deje los numeros? Gracias Borar Letra H.xlsm
-
0
Reacciones de usuarios
- 7 respuestas
- 3k visitas
-
-
Hola compañeros, Cuál es el método que me permite quitar la ventana de alerta al cerrar un libro (ver imagen adjunta)? Estoy probando con este código, pero no me funciona... guardar = MsgBox(Prompt:="Gracias por usar la aplicación ofimática, " & tbNombre & "." & vbCr & _ "¿Desea guardar los cambios antes de salir?", _ Buttons:=vbYesNo + vbCritical, _ Title:=" SALIR DE LA APLICACION OFIMATICA") If guardar = vbYes Then ActiveWorkbook.Save Else Application.DisplayAlerts = False ' No mostramos la ventana de alerta para guardar manualmente l…
-
0
Reacciones de usuarios
- 9 respuestas
- 2.6k visitas
-
-
Hola compañeros, Me gustaría dejar desactivadas (o quitar, si es posible) las opciones que están marcadas dentro del cuadro rojo de la imagen adjunta, y dejarlas desactivadas tal y como aparecen en el cuadro azul. No he realizado nunca nada así, y toda la información que encuentro por Internet me aconseja realizarlo desde código XML. Pero estoy convencido de que debe de existir una sentencia algo parecido a la siguiente: ... Application.CommandBars.Controls("Eliminar").Enabled = False ... Un saludo, y muchas gracias por vuestro tiempo.
-
0
Reacciones de usuarios
- 9 respuestas
- 3.2k visitas
- 1 seguidor
-
-
Hola y buenos días a todos; A ver si me podéis orientar un poco. Tengo una tabla donde se almacenan los datos de ventas por vendedor y necesito saber si dicho vendedor anualmente ha pasado de los 1000,55€ , si ese fuese el caso entonces sumar las ventas trimestre a trimestre y el resultado anotarlo en la hoja "Resultado". Los parámetros de fecha y tope de ventas serán introducidos desde un Formulario. He confeccionado una macro a modo de ejemplo. Saludos. MVentas.xlsm
-
0
Reacciones de usuarios
- 26 respuestas
- 2.1k visitas
- 1 seguidor
-
-
Estimados amigos, os cuento, como puedo imprimir cerrando el formulario en primer plano. Para entenderlo mejor os dejo el archivo y cuando entreis en admin 123 como se puede imprimir, muchassssss gracias labohoy23.xlsm
-
0
Reacciones de usuarios
- 1 respuesta
- 960 visitas
-
-
SOLUCIONADO Raíz cúbica de un número negativo Al operar de esta manera (-9)^(1/3) en excel se devuelve el resultado de forma correcta, pero en VBA se produce un error. Sub raiz_negativo() Debug.Print (-9) ^ (1 / 3) End Sub[/CODE] Conoceís el motivo y algún forma de evitarlo, sólo se me ocurre: [CODE] Resultado = Abs(Numero) ^ (1 / 3) If Numero < 0 Then Resultado = -1 * Resultado [/CODE] Un saludo
-
0
Reacciones de usuarios
- 10 respuestas
- 4.5k visitas
-
-
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
-
-
Jelow, Vengo con una duda muy tonta, pero que me está dando quebraderos de cabeza en el código (aunque funciona todo bien, para mi sorpresa...) Tengo una tabla, que borro fila por fila, hasta dejarla vacía y dolo dejo, la cabecera y la última fila sin borrar. El caso es, que en el bucle que hago, al darle vueltas al código, veo que esto quizás me puede dar algún error y he lanzado un debug.print para ir testeando detalles. DUDA: Si la tabla tiene CABECERA + FILA CON DATO + FILA FINAL (es decir, 3 filas)... ¿Porque el debug.print de "Tabla".rows.count me da 4? Entiendo que no puede empezar la cuenta en 0 ni en 1, porque …
-
0
Reacciones de usuarios
- 6 respuestas
- 942 visitas
- 1 seguidor
-
-
Hola, no puedo mandar el programilla porque "pesa mucho" pero si alguien puede ayudarme, me pasa una cosa muy rara. Tengo un programa que funciona perfectamente, he hecho una macro para "Borrar" y me pone unas formas al color que yo quiero, me borra el contenido de celdas, al final del código tengo Range("A1").Select y no va ahí va a la celda F22, lo he probado de varias maneras y siempre igual, incluso si voy a cualquier celda de la Hoja (Excel) al dar a la macro "Borrar" me lleva a esta celda en vez de a la de A1, alguien me puede ayudar ? PD esta celda F22 es una celda activa en otras partes del programa, pero si a mi macro le digo A1 debería ser A1 …
-
0
Reacciones de usuarios
- 1 respuesta
- 811 visitas
-
-
Hola buen dia. Es priemra vez queparticipo en algun tipo de foro. Busco ayuda con un formulario, que diseño uno de los botones no hace loque deberia segun yo. Explico: Una vez Abierto el archivo filtro en la celda T con titulo Assigned to El nombre de Nancy Urrieta. Selecciona la celda A7 y doy clic en boton Details Oprimo boton Nex Inv > esto despliega la info de la misma persona de las celdas activas y funciona bien Cuando oprimo el boton Assigned to, no regresa Deseo que cuando oprima Nex Inv haga lo que ya hace pero de donde se quede la celda activa pueda con el boton < Prev Inv regresar y despliege los datos. He utilizado Range(Selection, Select…
-
0
Reacciones de usuarios
- 6 respuestas
- 2.6k visitas
-
-
tengo una hoja en la cual necesito seleccionar un rango aleatoriamente, me explico: columna "A linea 1 a la 10 con datos" capturados manualmente columna "B linea 1 a la 10 con datos" capturados manualmente columna "C linea 1 a la 5 con datos" capturados automaticamente quiero seleccionar de la "C6:C10" y a cada una de las celdas que les falta datos intoducir un dato en forma automatica mi rutina es la siguiente Dim celda As range range("c1").Select 'columna con datos automaticos ActiveCell.End(xlDown).Activate 'para saber hasta donde tengo datos ActiveCell.Offset(1, -1).Select 'para saber que datos me faltan en la columna c r1 = ActiveCell.Addre…
-
0
Reacciones de usuarios
- 1 respuesta
- 1.6k visitas
-
-
Buenas noches, me podéis ayudar con esta macro? es para generar codigo de barras, la cuestion que solo me funciona de la siguiente manera: Code128 20, 20, 20, 1.1, ThisWorkbook.ActiveSheet, "11Q94PTT" Pero me gustaría que se cambiara con un rango de una celda. ¿ seria posible algo asi? pero me da error Code128 20, 20, 20, 1.1, ThisWorkbook.ActiveSheet.Range("=F1C1") y mil gracias code128.rar
-
0
Reacciones de usuarios
- 2 respuestas
- 836 visitas
-
-
Tengo la siguiente macro, y cuando quiero copiar los datos, no sé las filas que habrá.. he estimado 55 filas, pero si son menos, me inserta datos vacíos.. he incluido que me diga el número de filas, para conocer el número exacto. Como puedo poner el rango sin conocer la última fila, y que inserte las filas que tengan datos. Sub BorrarDatos() 'primero borro los datos de la hoja Sheets("macro").Range("A2:B55").ClearContents Sheets("macro").Range("D4:F55").ClearContents Sheets("macro").Range("I4:L55").ClearContents 'copio datos de la hoja datos, es la hoja que he tenido que sale del programa milena, tengo que copiar Sheets("datos").Range("A2:B55"…
-
0
Reacciones de usuarios
- 6 respuestas
- 1.1k visitas
- 2 seguidores
-
-
Hola amigos. Tengo este codigo que llena el ComboBox Private Sub CargaCombus() ' CARGAR COMBOBOX Dim cargo As Variant Dim anchura As Variant With Base cargo = .Range("A2:H2") ' ("A2:B2,E2:H2") aqui el rango End With With cmbCampo .List = WorksheetFunction.Transpose(cargo) '.Text = "" End With End Sub[/CODE] Son 8 columnas desde la A a la H Lo que pretendo es que en el combo solo se vean (se llene) las columnas A, B, E, F, G, H,
-
0
Reacciones de usuarios
- 0 respuestas
- 724 visitas
-
-
Hola amigos. Tengo este codigo que llena el ComboBox Private Sub CargaCombus() ' CARGAR COMBOBOX Dim cargo As Variant Dim anchura As Variant With Base cargo = .Range("A2:H2") ' ("A2:B2,E2:H2") aqui el rango End With With cmbCampo .List = WorksheetFunction.Transpose(cargo) '.Text = "" End With End Sub[/CODE] Son 8 columnas desde la A a la H Lo que pretendo es que en el combo solo se vean (se llene) las columnas A, B, E, F, G, H,
-
0
Reacciones de usuarios
- 4 respuestas
- 1k visitas
-
-
he intentado realizar el rango dinámico para mis tablas (para poder automatizarlas) pero no he logrado dar con la formula, intente dando nombre al rang0, pero me da error cuando quiero cambiar el origen de mis dinamicas. adjunto el excel y en cuestion es la pestaña detalle la que alimenta las tablas. muchas gracias Dropbox - Control Asistencia al 2 septiembre.xlsm
-
0
Reacciones de usuarios
- 0 respuestas
- 780 visitas
-
-
Hola de nuevo; Estoy tratando de fijar conceptos sobre los rangos. En la macro que adjunta he implementado un procedimiento que se me sugirió aquí en el cual la macro me da el primer rango del encabezado de una tabla. Estoy intentado hacer lo mismo con el último pero veo que al ir insertando columnas no devuelve correctamente el rango. A ver si me podéis indicar donde estoy fallando. Adjunto la macro. Saludos a todos. MCR.xlsm
-
0
Reacciones de usuarios
- 4 respuestas
- 562 visitas
-
-
Buenas tardes. Tengo un ListBox creado con un rango actual seleccionado de RowSource = 'Hoja'!'A1:C20 Dicho rango es una base de datos que irá aumentando en filas, como puedo hacer que dicho rango se adapte a la ultima fila con valores?? Por ejemplo si la ultima es la fila es la 25 que el rango sea 'Hoja'!'A1:C25 y así sucesivamente. Si pongo un rango muy grande me aparecen muchas filas vacias en el ListBox y queria evitarlo. Gracias Esta lista
-
0
Reacciones de usuarios
- 6 respuestas
- 2.9k visitas
-
-
Hola, esta es mi primer consulta, necesito crear una macro que aplique formato de celda a un determinado rango, que tendria que ir desde la celda A1, hasta la celda A, y el numero de fila, estara determinado por el valor que el usuario indique en la celda C1. Es decir, si tengo C1=10, entonces la macro debera aplicar formato al rango A1:A10. Si tengo C1=12, entonces la macro debera aplicar formato al rango: A1:A12. Gracias.
-
0
Reacciones de usuarios
- 2 respuestas
- 1.4k visitas
-
-
Saludos. Deseo acceder a una celda concreta en una Tabla a traves de su cabecera como Columna, la cual se ha definido como rango, y no se si se puede hacer. He probado de acceder mediante el siguiente codigo pero obtengo un error. Tabla_Trabajo.Range("Dia-Semana" & i). La objetivo final es poder, en un momento dado intercalar una nueva columna en la tabla, y mediante la deficion del rango de esa columna, acceder a cualquier celda de ella. Con eso evitaria reescribir el codigo existente modificando las letras de las columna que hicieran referencia a las columnas desplazadas a la derecha por la inserción de la nueva columna, en las macros asociadas a esa…
-
0
Reacciones de usuarios
- 8 respuestas
- 494 visitas
- 1 seguidor
-
-
Buenas tardes a todos: No se puede trabajar con rangos protegidos y otros no (editables) en las tablas. (O quizás desconozca la forma de hacerlo). Me han dicho en el foro que con las tablas la única forma de hacerlo es a través de VBA. Y por supuesto recibí con satisfacción la forma de hacerlo. Sin embargo se trataba de una tabla sencilla con apenas 5 columnas. Ahora tengo que hacerlo con una tabla de entre 20 y más columnas y se me complica mucho con el condicional IF y todos los operadores lógicos que hay que escribir. ¿Existe otra forma de hacerlo y que además evite la lentitud que crea tantos operadores lógicos? Muchas gracias Rubén …
-
0
Reacciones de usuarios
- 5 respuestas
- 1.4k visitas
- 1 seguidor
-
-
Buenas tardes, Estoy realizando un macro donde me consolida toda la información o todos lo valores en una hoja , el mismo que me alimenta un grafico, este grafico siempre tiene que mostrarme los 3 ultimos meses. A B C D E 1 MESES TIENDA1 TIENDA2 TIENDA 3 2 OCTUBRE 1000 2000 3000 3 NOVIEMBRE 1800 2500 3200 4 DICIEMBRE 2500 5000 6000 5 ENERO 6 Para ser mas explícito, cada vez que ejecuto mi macro me agrega el nuevo con sus valores respectivos per mi grafico que siempre me debe mostrar la inf. de los 3 ultimos meses lo realizo manualmente, Este caso mi problema es actualizar el rango automaticamente, actualmente esta (b1:e1,b2:e4), cada vez q ejecuto la macro debe …
-
0
Reacciones de usuarios
- 0 respuestas
- 575 visitas
-
-
Estimados, soy nuevo en el foro y necesito su ayuda. Tengo un archivo de ventas por cliente y por mes. Necesito extraer los mejores clientes (Cantidad a definir) y el diferencial que quede en otros clientes. Actualmente lo tengo mezclado ya que extraigo con macro registro único y con formula extraigo las ventas por mes cada cliente, de esta manera tengo las ventas mensuales por cliente. Luego manualmente ordeno de mayor a menor según las ventas totales. Elijo los mejores clientes según este ordenamiento y muestro el ranking de los mejores y la diferencia a otros clientes. Todo esto quiero hacerlo con una macro donde solo ingrese la cantidad de registr…
-
0
Reacciones de usuarios
- 2 respuestas
- 965 visitas
-
-
Hola amigos: quisiera su ayuda con lo siguiente: tengo datos en la columna A pero no de forma consecutiva sino con algunas celdas vacias algo Asi: COLUMNA A Peras Manzanas Duraznos Higos Lo que quiero hacer es reacomodar las celdas para que no queden espacios vacios pero no con eliminar las filas vacias sino acomodando en las celdas vacias las siguientes llenas para que queden celdas llenas corridas sin celdas vacias, en el archivo tengo este código que me encontré en internet y funciona exepto que me elimina la primera fila si esta, está llena y lo que quiero es que queden todas las celdas que contienen información, asi mismo que reacomode también las columas …
-
0
Reacciones de usuarios
- 4 respuestas
- 1.7k 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.