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?
8686 temas en este foro
-
estimados compañeros del foro, si son tan amables de darme sugerencias con una macro,a la cual para mi gusto no le falta nada mas que al copiar a otra carpeta,esta no pierda el ancho de las columnas. esta es mi macro: Sub Salvar() mio = ActiveWorkbook.Name ruta = ActiveWorkbook.Path Workbooks.Add otro = ActiveWorkbook.Name Workbooks(mio).Activate nombre = Range("E4").Value Range("A1:K63").Copy Workbooks(otro).Activate Sheets(3).Select Range("a1").Select ActiveSheet.Paste ActiveWorkbook.SaveAs ruta & "\" & nombre ActiveWorkbook.Close False MsgBox "proceso terminado. El archivo se ha guardado en la carpeta: " & ruta &a…
-
0
Reacciones de usuarios
- 2 respuestas
- 1.3k visitas
-
-
Tengo un botón BUSCAR que me llena los datos de mi formulario, los 3 primeros datos van en textbox y los otros 3 en combobox dependientes. Me llena bien los datos pero cuando quiero modificar los datos de los combobox no me trae del combobox3…<br>Solo cuando hago llenar los datos con el botón BUSCAR y quiero modificar dichos datos lo que no me trae el tercer combobox, sin buscar ningún dato funciona todo bien, como puedo hacer para que me funcione mi combobox dependiente en su totalidad aun cargando los datos con el botón BUSCAR..?<br> adjunto mi archivo. Excel.zip
-
0
Reacciones de usuarios
- 5 respuestas
- 1.3k visitas
-
-
Hola, me gustaría hacer un excel en el que las casillas de verificación se colocaran en una fila y en la fila inferior mostrara el resultado TRUE o FALSE. Arrastrando las casillas no es posible hacerlo y he encontrado buscando un módulo pero es para hacerlo en columna. ¿Se podría hacer lo mismo pero como yo lo quiero? Decir que no tengo mucha idea de VBA. Esto es lo que he encontrado. Sub LinkChecks() 'Update by Extendoffice Dim xCB Dim xCChar i = 2 xCChar = "B" For Each xCB In ActiveSheet.CheckBoxes If xCB.Value = 1 Then Cells(i, xCChar).Value = True Else Cells(i, xCChar).Value = False End If xCB.LinkedCell = Cells(i, xCChar).Address i = i + 1 Next x…
-
0
Reacciones de usuarios
- 3 respuestas
- 1.3k visitas
- 1 seguidor
-
-
Hola, Estoy haciendo una macro en Excel 2007 y me he atascado en lo siguiente. Tengo un bucle que recorre el rango A1:D50 de la hoja1 y va copiando y pegando en base a diferentes condiciones en el rango A1:D50 de la hoja2. La fila C de la hoja1 contiene cadenas de caracteres de la forma "0.000,00 EUR" y otros en la forma "0.000,00" . ¿Cómo puedo extraer sólo la parte numérica (esto es 0.000,00) y pegarlo en la columna C de la hoja 2 convertido a formato número en lugar de texto? Muchas gracias
-
0
Reacciones de usuarios
- 1 respuesta
- 1.3k visitas
-
-
Hola, lo primero agradeceros vuestro tiempo invertido en este tema. Bien os comento: Tengo una excel para controlar las ventas a clientes. La estructura del excel es la siguiente: En una hoja están los clientes (columna A) y el importe de la venta en la fecha actual ( columna y lo que quiero es que me pase en otra hoja la lista de clientes en la columna A, y el valor de la venta en la columna B y en el cabecero de los datos de la columna B, añada la fecha en que se ha producido la venta, y así sucesivamente me vaya actualizando las ventas ya añadiendo a los clientes nuevos y las fechas de las ventas. os pongo el archivo de ejemplo. Muchisimas gracias. ejemplo…
-
0
Reacciones de usuarios
- 4 respuestas
- 1.3k visitas
-
-
Hola. Estoy creando una hoja de cálculo bastante extensa y la cual tiene que trabajar en casi todos sus módulos con un valor (fecha) que se introduce en un TextBox al iniciar el documento. ¿Cómo podría dejar asignado ese valor desde el principio y que todos los procedimientos y módulos lo reconozcan ? Os dejo un ejemplo sencillo de lo que me interesa hacer. El archivo te pide una fecha y luego debería trabajar con ella en diferentes módulos para devolver diferentes valores. Pero claro, al pasar del formulario a los módulos se me inicia en cero. Un saludo a tod@s ! fecha_publica.rar
-
0
Reacciones de usuarios
- 2 respuestas
- 1.3k visitas
-
-
Buenas tardes, recurro a este foro ya que necesito ayuda de los expertos, las acciones que realiza la macro es en el hoja data importa registros de un excel externo eso ya esta funcional, lo que necesito es que en al crear las hojas con la plantilla M_INTERIOR, me cree con el botón copiar de forma que cada vez que ejecute el boton me copie lo que esta en la hoja data y que una vez copiados se borren; a parten me gustaría que no se muestre la plantilla M_INTERIOR que este oculta para que el usuario no modifique la misma, e intentado pero no me ha resultado ya que al ocultarlo y crear las hojas las crea ocultas y eso no es lo que deseo, no se si es posible crear o al copiar…
-
0
Reacciones de usuarios
- 1 respuesta
- 1.3k visitas
-
-
Hola a tod@s. Gracias por su tiempo para con esta breve consulta. Tengo una macro personal que esta protegida. Sin embargo, averiguando por la web hay programas que pueden quitar la contraseña. Hasta el momento ese programa puede hacerlo en versiones de excel 2007-2013. Ya que en la versión 2016 no es factible. Ahora, seguramente se desarrollaran o ya están en la web más programas para desbloquear la contraseña en macro personal. Por lo tanto, obviamente, hay que insertar una clave que contenga mayúsculas, minúsculas, números y símbolos. Entonces, necesito saber si será suficiente, aunque sé que no al 100%, pero me gustaría leer de sus recomendaciones de parte d…
-
0
Reacciones de usuarios
- 3 respuestas
- 1.3k visitas
- 1 seguidor
-
-
El problema es que me está cargando la primera imagen, "las demás IMÁGENES NO LAS ESTÁ CARGANDO" Muy cordialmente solicito me den su colaboración, por favor ! Multipage con Imagenes.rar
-
0
Reacciones de usuarios
- 3 respuestas
- 1.3k visitas
-
-
Hola de nuevo. Tengo un Excel que accede a una Access a través de macros conectando con "CreateObjet ("adodb.Connection") Hasta aquí perfecto, ahora la empresa está cambiando los Office en local por el Office365 (Online). He probado en un ordenador que tiene el 365 con Access y cuando abro un formulario me salta el primer error, "Dispositivo no disponible". El depurador de Visual Basic me da este error que creo que es un problema del drive ya que se para en la instrucción ChDrive ThisWoorkbook.Path. ¿Sabéis si esto tiene solución? Supongo que el problema viene de que el Path del libro es una url, al ser online, y no se si es posible salvar el error y que fu…
-
0
Reacciones de usuarios
- 2 respuestas
- 1.3k visitas
-
-
Qué tal foreros? Sub UseOpenXML() Application.Workbooks.OpenXML _ Filename:="customers.xml", _ LoadOption:=xlXmlLoadImportToList End Sub [/CODE] En este comando, quiero saber como abrir el archivo con un nombre que no cambie jamás. Lo tengo dentro de un loopy el nombre debiese quedar igual independiente del nombre. Luego de abrir, cierro el archivo creado sin guardarlo, pero si necesito que ese archivo se llame siempre "Book1.xls" o algo así.Les agradeceré que me enseñen cómo se hace. Saludos.
-
0
Reacciones de usuarios
- 0 respuestas
- 1.3k visitas
-
-
Hola Tengo que sacar de unos 500 libros cerrados algunos valores de celdas. Encontre un código que se adapta casi al 100%. Mis libros en su (hoja1) sus nombres son diferentes y quisiera encontrar el código adecuado para que lea cada libro cerrado sin importar como se llame la hoja1. Magnifico y práctico código. La parte del código motivo de mi mensaje es: CStr(NombreHoja). Sub RecuperaDatoA2_y_I2_Opcion_1() 'Usando función de Macro de Excel4 (predecesor de VBA) [Macrofucion] Dim ruta_directorio, Archivo As Application, NombreArchivo As String, NombreHoja As String Dim n As Long 'Indicas la Ruta base, estoy suponiendo que los 4000 archivos estan e…
-
0
Reacciones de usuarios
- 0 respuestas
- 1.3k visitas
-
-
Buenas a todos los que pertenecemos a este gran foro. Desde hace unos 4 o 5 días me arroja el error 13, porque hasta la fecha la macro corría bien, por mas que he leído en el foro no doy con la solución. en rojo es la linea que me arroja el error. Private Sub Matricula_AfterUpdate() If WorksheetFunction.CountIf(Hoja12.Range("C:C"), Me.matricula.Value) = 0 Then MsgBox "Matricula Incorrecta" Me.matricula.Value = "" Exit Sub End If With Me nombre = Application.WorksheetFunction.VLookup(CLng(Me.matricula), Sheets("AGENTES").Range("C3:D3000"), 2, 0) End With End Sub
-
0
Reacciones de usuarios
- 2 respuestas
- 1.3k visitas
-
-
Hola buenas días, Mi consulta trata sobre introducir una variable para un rango de celdas. El codigo es el siguiente Sub Macro1() Dim tablaRef As Range Dim UltimaFila As Long Dim UltimaColumna As Long 'Recogemos valores para las variables de UltimaFila y UltimaColumna UltimaFila = Sheets(Hoja1).Range("C3").End(xlDown).Row UltimaColumna = Sheets(Hoja1).Range("C3").End(xlToRight).Column Set tablaRef = Sheets("Hoja1").Range(Cells(2, 1), Cells(UltimaFila, UltimaColumna)) tablaTarifasRef.Select End Sub Los resultados de las variables UltimaFila = 205 y UltimaColumna = 24 El problema viene al intentar dar a la variable tablaR…
-
0
Reacciones de usuarios
- 2 respuestas
- 1.3k visitas
- 1 seguidor
-
-
Buenas tardes a todo el mundo. He estado investigando y se que se pueden copiar/pegar archivos de una ruta a otra mediante macro. No he conseguido encontrar solución para mi problema. En una carpeta llamada Registros, se me generan una o varias carpetas. El nombre de estas carpetas siempre varían y dentro de estas subcarpetas hay archivos con 2 extensiones, .doc y .xls. con nombres que también varían. Como podría coger todos los archivos con extensión .doc y pasarlos a una nueva ruta? O sea, que todos los archivos dentro de las carpetas que hay en la carpeta registros, me los copiase a otra.También me serviría que me copiase los dos tipos de archivos. Gracias por vuestro …
-
0
Reacciones de usuarios
- 0 respuestas
- 1.3k visitas
-
-
La verdad que no sé ni siquiera por dónde empezar. Bueno, en primer lugar pedir perdón si este tema ya se ha tratado en otro post, me ha sido imposible encontrarlo pero puede que ya se haya hecho la misma consulta. Intentaré resumirlo lo máximo posible para no desalentar a los que se aventuren con el problema. El libro Excel consta únicamente de una hoja en la cual hay dos tablas, una la llamo REAL y otra SIMULACIÓN. Ambas tablas están compuestas por los mismos conceptos: HORAS, LITROS, EXCESOS y RECARGOS, aunque los únicos datos que se deben modificar manualmente son los LITROS. La diferencia entre las dos tablas radica en que en la tabla SIMULACIÓN, los datos de la …
-
0
Reacciones de usuarios
- 3 respuestas
- 1.3k visitas
-
-
Hola a todos, tengo un programita de Excel con VBA que insero varias fotos (con margen de tiempo 1 segundo) en la misma celda, pero, al ir borrando e insertando imágenes me hace un destello de luz, la celda en cuestión, se puede solucionar esto con VBA ? Gracias
-
0
Reacciones de usuarios
- 7 respuestas
- 1.3k visitas
-
-
Lo que pretendo es que al darle al boton guardar, me pase los datos de esta hoja a la hoja ACUMULADO respetando las lineas en blanco y asi sucesibamente cada vez que pulse el boton guardar. Tal y como lo tengo me lo pasa, pero cuando le doy otra vez me machaca parte de lo que habia anterior mente. PRUEBA.xls
-
0
Reacciones de usuarios
- 1 respuesta
- 1.3k visitas
-
-
Existe alguna forma de incluir en una celda de forma automatica la ruta de una carpeta determinada? Gracias
-
0
Reacciones de usuarios
- 3 respuestas
- 1.3k visitas
- 1 seguidor
-
-
Gente tengo una pregunta, estoy haciendo una planilla para mi negocio, la misma consiste en comparar los precios de listas nuevas contra las de las viejas, el tema es que tengo muchisimos articulos, entonces hice una macro donde compara todo y me ordena los precios que se modificaron, hasta ahi voy bien ahora mi consulta es la siguiente, despues de este codigo que es el de buscar Cells.Find(What:=Range("d1"), After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False).Activate yo necesito que desde la celda que quedo activada me seleccione 4 celdas para la derecha y todo para abajo y l…
-
Buenas Tardes, tengo una macro que filtra de una columna un dato concreto, en el ejemplo la macro saca todos los datos "Barcelona", los copia en la Hoja2 y los borra del origen. Lo que no consigo es que me seleccione mas de un dato, por ejemplo Barcelona y Valencia, que los copie en la Hoja2 y los borre de la Hoja1 Gracias por la ayuda Sub Filtrar_Datos_Columna() Dim wbLibroActual As Workbook Dim wsHojaActual As Worksheet Dim RangoDatos As Range Dim uFila As Long Set wbLibroActual = Workbooks(ThisWorkbook.Name) Set wsHojaActual = wbLibroActual.ActiveSheet Set RangoDatos = wsHojaActual.UsedRange RangoDatos.AutoFilter Field:=5…
-
0
Reacciones de usuarios
- 7 respuestas
- 1.3k visitas
- 1 seguidor
-
-
Hola a todos buenos dias, estoy tratando de encontrar una forma optima de traerme todos los nombres de una columna y convertirlos a una array, para almacenarlos en una variable... actualmente estoy copiando, pegando y trasponiendo, los datos, luego los concateno y los agrego ahi recien a la variable. esta accion es totalmente manual, hecha con la grabadora de macros, ...existe otra forma de poder hacerlo? lo que me interesa es traerme los nombres de los encabezados de las columnas y traerlos a un variable como arreglo, o array, pero lo que necesito tener en cuenta es que me vienen muchos archivos y no siempre tienen las colunmas el mismo orden, y a veces t…
-
0
Reacciones de usuarios
- 5 respuestas
- 1.3k visitas
- 1 seguidor
-
-
necesito su ayuda *******...tengo un pequeño problema con el siguiente codigo: Private Sub CommandButton1_Click() Dim i As Integer Dim final As Integer For i = 1 To 1000 If Hoja2.Cells(i, 1) = "" Then final = i Exit For End If Next Hoja3.Cells(final + 1, 1).Offset(3, 0) = UserForm4.TextBox1 Hoja3.Cells(final + 1, 3).Offset(3, 0) = UserForm4.TextBox2 Hoja3.Cells(final + 1, 4).Offset(3, 0) = UserForm4.TextBox3 Hoja3.Cells(final + 1, 5).Offset(3, 0) = UserForm4.TextBox4 Hoja3.Cells(final + 1, 6).Offset(3, 0) = UserForm4.TextBox5 UserForm4.TextBox1 = "" UserForm4.TextBox2 = "" UserForm4.TextBox3 = "" UserForm4.TextBox4 = "" UserForm4.TextBox5 = "" UserForm…
-
SentenciaSQL.xls Hola , estoy intentando hacer consulta SQL con este archivo pero no consigo que funcione en OFFICE 365, sin embargo en la version office 2016 si funciona.
-
0
Reacciones de usuarios
- 6 respuestas
- 1.3k visitas
- 1 seguidor
-
-
Buenas Tardes Señores/as, Espero se encuentren muy bien junto a sus familias en relación al Virus que bastante nos ha afectado. Quisiera pedirles una orientación u ayuda por favor. Esta es una empresa de cobranza la cual soy el el que distribuye la deuda a cada cobrador. adjunto archivo el cual ocupo, son 25 cobradores , debo distribuir el total de la deuda a estas 25 personas, el cual tengo que tratar que el MONTO y la CANTIDAD sean lo mas parecido parecidos y parejo posible. Cualquiera orientación y/o ayuda se agradece (busque en todo el foro y no encontré algo similar, y si hay, busque mal) Espero tenga una buena tarde, …
-
0
Reacciones de usuarios
- 7 respuestas
- 1.3k 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 sergio@ayudaexcel.com
Información adicional: Encontrarás más información en la política de privacidad.