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
-
Buenos días. Tengo el siguiente Macro. col = 5: uFila = Cells(Rows.Count, col).End(xlUp).Row datos = Cells(1, col).Resize(uFila).Address On Error GoTo 0 Names.Add "sumar", "=if(" & datos & "=""INICIO"",row(" & datos & "))" Names.Add "final", "=if(" & datos & "=""FINAL"",row(" & datos & "))" Application.ScreenUpdating = False For n = 1 To [count(sumar)] fila1 = Evaluate("small(sumar," & n & ")") + 1 fila2 = Evaluate("small(final," & n & ")") - 1 grupo = Cells(fila1, col).Address(0, 0) & ":" & Cells(fila2, col).Address(0, 0) Cells(fila1 - 1, col + 1).Formula = "=sum(" & g…
-
0
Reacciones de usuarios
- 5 respuestas
- 9.6k visitas
-
-
Hola amigos de ayuda excel, de nuevo recurro a ustedes para solicitar su inestimable ayuda con un problema que no hacierto a resolver Tengo un formulario al que le quiero cambiar el color del fondo mediante un boton de comando, solo lo he conseguido si dentro del form introduzco un frame, pero esa solucion no me sirve ¿ Alguna sugerencia ?. le agradezco su ayuda Saludos cordiales
-
0
Reacciones de usuarios
- 5 respuestas
- 9.5k visitas
- 1 seguidor
-
-
Buenas a todos! Soy nuevo por estos lugares y ando con un proyecto que paso a redactar. Estoy creando un analizador de datos los cuales los tengo en archivos CSV. Para ello, necesito importar los datos desde archivos CSV a una de las hojas de Excel. Buscando por internet, he encontrado un tutorial que realiza la importacion de datos desde Access a Excel de la forma que necesito pero no se cuales son las modificaciones que necesito hacerle al codigo para que me importe los CSV. Aqui muestro el codigo: Sub ImportarDatosProduccionAccess() Dim DatosProduccion As New ADODB.Recordset Dim Conexion As New ADODB.Connection Dim CaracteristicasConexion As String Dim Instr…
-
0
Reacciones de usuarios
- 4 respuestas
- 9.5k visitas
-
-
hola a todos, cree una macro para que se ejecute directamente sin abrir el libro que contiene la base de datos de la macro, en mi pc corre perfecto pero cuando la deseo abrir en otro pc me pide primero habilitar la macro para que se ejecute directamente hay alguna manera de que al abrirlo de otra pc pueda ejecutarse automaticamente sin ningun tipo de problema ? desde ya gracias espero sus respuestas! saludos
-
0
Reacciones de usuarios
- 6 respuestas
- 9.5k visitas
- 1 seguidor
-
-
Buen día Señores tengo una duda, actualmente tengo una macro que se ejecuta formularios al abrir un documento de Excel 2003, todos los formularios se ejecutan correctamente, pero acá es donde tengo la duda, ¿hay alguna forma que si al ejecutar el formulario modal este no me afecte el resto de libros abiertos? Me explico, si tengo los formularios configurados en forma modal, procedo a ejecutar la macro (prueba.xlsm) y luego de esto voy a abrir otros documentos (libro1.xlsx, libro2.xlsx... etc.) los abre pero no puedo acceder a ellos, es decir, todos los libros quedan bloqueados, ya probe igual en dejar el formulario en forma "no modal", me deja abrir los archivos e igual …
-
0
Reacciones de usuarios
- 9 respuestas
- 9.4k visitas
-
-
Buenos días para todos... Tengo un libro de excel el cual tiene tres hojas: Solicitud: Primera hoja donde se ingresa los datos para alimentar la hoja "consolidado" Consolidado: Hoja donde se acumulan Todas las Solicitudes de pagos. Montaje: Un resumen de cada proyecto donde va el valor total, fechas de pago, % de pago, fechas etc. es decir, especifica Pagos de cada Proyecto. Mi propósito es que en la hoja de Montaje exista un botón de formulario el cual ejecute una macro que tome y pase los valores de: "Fecha Solicitud" y "Valor Total" de cada proyecto (en la hoja de "Consoidado") y me los pegue dentro del rango de las columnas I:R (Hoja "Montajes"), Pero en dado…
-
0
Reacciones de usuarios
- 7 respuestas
- 9.3k visitas
-
-
Buenas tardes. Necesito ayuda con el archivo adjunto. Tengo un archivo donde realizo un control sobre las cuentas de varios empleados (+ de 50 en total), donde al apretar el botón de "CTROL CTAS. EMPLEADOS", automáticamente se copia el primer numero de cuenta del Excel, se activa otro programa llamado "Emulación 3270", se realizan un par de acciones donde dentro del programa se pasa por diferentes opciones para luego pegar el numero de cuenta, y lo pega en el programa Emulación donde luego imprime la pantalla con "F6", vuelve a la pantalla de inicio del programa y empieza nuevamente con el siguiente numero de cuenta, así sucesivamente hasta que llega a la celda …
-
0
Reacciones de usuarios
- 5 respuestas
- 9.3k visitas
- 1 seguidor
-
-
Buenos días, ante todo y como en otras ocasiones gracias de antemano. Con ayuda de este foro he realizado una macro que copia ciertos datos de excel y los pega en un documento word. Estos datos de dividen en varias tablas que en algunos casos ocupan mas de 2 paginas. Lo que necesito es el código para que desde excel recorra todo el documento de word y en todas las tablas que existan repita las 4 primeras filas como encabezado. Llevo dos días buscando una solución pero no hay manera. Muchas gracias.
-
0
Reacciones de usuarios
- 2 respuestas
- 9.3k visitas
-
-
Hola a tod@s, nuevamente solicitando su tiempo y aporte para ese nuevo tema. El siguiente codigo lo encontre en la Web. #If VBA7 And Win64 Then Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _ Alias "URLDownloadToFileA" ( _ ByVal pCaller As LongPtr, _ ByVal szURL As String, _ ByVal szFileName As String, _ ByVal dwReserved As LongPtr, _ ByVal lpfnCB As LongPtr _ ) As Long #Else Private Declare Function URLDownloadToFile Lib "urlmon" _ Alias "URLDownloadToFileA" ( _ ByVal pCaller As Long, _ ByVal szURL As String, _ ByVal szFileName As String, _ ByVal d…
-
0
Reacciones de usuarios
- 2 respuestas
- 9.3k visitas
-
-
Hola, tengo una formula que recorre las celdas y va hacia la ultima celda no vacía, luego baja una posición y pega en valores lo que copie Sheets(HOJA).Range("J11:J18").Copy Range("L1").Select Do While ActiveCell <> Empty ActiveCell.Offset(1, 0).Select Loop ActiveCell.PasteSpecial xlPasteValues, , SkipBlanks = True Como hago para multiplicar *100 las celdas pegadas? Gracias de antemano.
-
0
Reacciones de usuarios
- 2 respuestas
- 9.3k visitas
-
-
Hola voy a intentar describir en lo que me podeis ayudar, pues llevo algunos meses trabajando en una hoja de excel intentanto hacer la planificación diaria de la producción en una de una empresa, por lo que tengo una pequeña base de datos donde se recogen todas las operaciones, con sus respectivos tiempos de producción, materia prima necesaria y su cantidad. Hay otra hoja donde se recogen la planificación que yo quiero hacer cada día, por lo que yo pongo un artículo y me lo desglosa en las diferentes operaciones, con lo que tarda en fabricarlo, y su materia necesaria, pero esto es un trabajo costoso, ya que cada producto puede tener hasta 12 o 13 operaciones, y cada trab…
-
0
Reacciones de usuarios
- 6 respuestas
- 9.3k visitas
-
-
Estimados amigos del foro he intentado hacer funcionar 3 paginas de un objeto Multipage (Primer Parcial, segundo parcial y Resultado final) en ella se cargan los datos, pero cuando salto de pagina, y luego regreso a la anterior, esta ya no muestra los datos como se espera si no que han cambiado, ejemplo: esto no se muestra al inicio Se que algunas otras cosas no están funcionando bien en el formulario como que se presentan en el listbox fechas antiguas a pesar de no haberlas puesto, los porcentajes en la tercera pagina, etc. , pero lo mas importante es que al cambiar de pagina no se alteren la forma en que se debe mostrar los datos en el listbox. Otra cosa al parecer cu…
-
0
Reacciones de usuarios
- 7 respuestas
- 9.2k visitas
-
-
Hola encontre este codigo que modifica un archivo .txt : Sub prueba() Dim intFich As Integer, lngNúmReg As Long, strCad As String * 1, n As Long intFich = FreeFile(0) Open "C:\Users\ran\Desktop\VALIDACION DOCUMENTACION\FILE_CGP.cgp" For Random As intFich Len = 1 'Sustituir por la ruta completa del fichero For lngNúmReg = 1 To LOF(intFich) Get intFich, lngNúmReg, strCad If strCad = "," Then LSet strCad = "-" Put intFich, lngNúmReg, strCad End If Next lngNúmReg Close intFich End Sub La funcion busca una , y lo reemplaza por ; ...necesito modificarlo para que busque en efecto una , pero lo remplace por 20 espacios en blanco, ya intente colocando en esta parte: …
-
0
Reacciones de usuarios
- 1 respuesta
- 9.2k visitas
-
-
hola sres.. desde ya gracias por la ayuda que puedan prestar... me surge esta pregunta como podria mediante vba cambiar el fondo de todos los formulario que posee un archivo con codigo vba... por que ? esta pregunta es que queria crear la funcion para que el usuario cambie el color de los formulario con el estilo metro o Window Metro.. es posible poder hacer esta idea... Gracias
-
0
Reacciones de usuarios
- 3 respuestas
- 9.2k visitas
-
-
Hola: Disculpad, pero hay muchos temas parecidos y no encuentro la respuesta exacta. Tengo una hoja con una base de datos de productos. Una de las columnas, tiene datos de "VENDIDO", "RESERVADO", etc En otra hoja coloco en A1 "VENDIDO". Quisiera que en esa segunda hoja, copiara todas las filas de la primera hoja en las que pone "VENDIDO". Cuando en la primera hoja, un producto cambie de "VENDIDO" a otro estado, esta fila tiene que desaparecer de la hoja 2. Luego generaré otra hoja con "RESERVADO", ETC. Muchas gracias. copiar.xls
-
0
Reacciones de usuarios
- 5 respuestas
- 9.1k visitas
-
-
Hola intentaré exponer mi problema lo mas claramente posible, dada mi condición de novato en excel Mi hoja de calculo está toda bloqueada para impedirlos cambios no deseados con excepción de las celdas en las que quiero introducir información. Utilizo botones de comando para introducir información en las celdas de un rango C19:M384 por ejemplo. La informacion se introduce celda por celda y necesitaria saber la manera de que el cursor se desplace a la siguiente celda vacia a la derecha y al llegar a la ultima celda desbloqueada en la fila activa vuelva a la primera celda vacia de la siguiente fila. Lo he intentado con: Private Sub CommandButton23_Click()'introducir…
-
0
Reacciones de usuarios
- 2 respuestas
- 9.1k visitas
-
-
Buenas a todos. Estoy realizando un ejercicio en el que se me pide mostrar un msgbox en el que aparezca el texto que hay contenido en una celda. Hasta ahí bien, no hay problema. El problema es que ese texto debe incluir una variable y mostrar en el msgbox el valor de la variable. Es decir, que si en el contenido de la celda está el texto "El resultado de la suma es VARIABLE_SUMA", en el msgbox debe aparecer "El resultado de la suma es 4" Adjunto un archivo de ejemplo para intentar que se vea más claro. Muchas gracias por adelantado. Un saludo. Ejercicio msgbox de celda con variable incluida.xlsm
-
0
Reacciones de usuarios
- 6 respuestas
- 9k visitas
-
-
Buenas noches. La cuestión es la siguiente: en mi trabajo escaneo documentos, cada uno de ellos de dos paginas a doble cara. Para hacer el trabajo más fluido, y teniendo en cuenta, que no puedo instalar programas externos, como el pdf sam, quisiera saber si existe una macro que abra el archivo pdf y cree un archivo pdf cada cuatro páginas . Si no es posible, como podria seleccionar cada cuatro páginas del archivo para imprimir con microsoft print to pdf de excel. Muchas gracias, espero vuestra ayuda.
-
0
Reacciones de usuarios
- 3 respuestas
- 9k visitas
-
-
Saludos cordiales, Necesito ayuda con una macro que estoy programando. La cuestión es la siguiente: Necesito exportar una hoja especifica de mi libro de resultados a la dirección path que el usuario indique, guardándola en formato .txt. Colocándole un nombre especifico con el dia y la hora, por ejemplo: "VaR Parametrico 15042013.txt" Agradecería mucho la pronta respuesta que me puedan ofrecer.
-
0
Reacciones de usuarios
- 2 respuestas
- 8.9k visitas
-
-
Hola buenas, soy un poco novato pero he estado buscando y no encuentro nada en la red. Lo que yo quiero es ajustar un texto a una celda (combinada). Ojo, no ajustar la celda al texto. Esto es porque ele tamaño de la celda combinada varía y quiero que el texto ocupe toda la celda. Os enseño hasta donde he llegado: Dim rango as range Dim variable as byte Sheets("Sheets1").Range("B2").Value = "TEXTO" Set rango = Range(Cells(2, 2), Cells(3, Variable + 3)) rango.Merge rango.HorizontalAlignment = xlCenter rango.VerticalAlignment = xlCenter rango.Interior.ColorIndex = 41 'AQUÍ QUIERO AJUSTAR EL TEXTO PARA QUE ME OCUPE TODO EL rango …
-
0
Reacciones de usuarios
- 1 respuesta
- 8.9k visitas
-
-
Saludos Espero esten bien. Estoy haciendo un excel para regalar a una amiga que consiste en un inventario para dar seguimiento a la compra y venta de ropa para bebés. Solamente quiero agregar algo más que me esta faltando, y es poder ver en las hojas "Liquidacion", "Productos" y "Movimientos", una imagen del producto de acuerdo a su código. Tengo una carpeta con imágenes de estos productos, y quiero hacer que al seleccionar un código o producto de un listado ya introducido, se muestre la imagen de este código en las hojas mencionadas, así se le haria mas facil identificar cada codito. Particularmente en la hoja "Movimientos", tengo un formulario que si…
-
0
Reacciones de usuarios
- 2 respuestas
- 8.9k visitas
-
-
[TABLE=class: tablevacia] [TR] [TD]Hola saludos, como puedo hacer para al desplegar calendario de un combobox, y seleccione una fecha y aparesca la fecha seleccionada en el combobox [/TD] [TD=width: 3%][/TD] [/TR] [/TABLE]
-
0
Reacciones de usuarios
- 12 respuestas
- 8.9k visitas
-
-
Hola a todos. Tengo muchas imágenes "insertadas" en una hoja de excel en tamaño miniatura y necesito generar una macro que haga zoom únicamente en la foto seleccionada y luego vuelva a su tamaño original. Se les ocurre alguna forma ? Gracias Fernando
-
0
Reacciones de usuarios
- 6 respuestas
- 8.8k visitas
-
-
Cómo puedo pasar una consulta realizado a una tabla de acces a una variable o a un array; el utilizar una u otra dependerá del tipo de consulta. Al día de hoy la puedo pegar en una hoja de excel pero no se cómo asignarla directamente la consulta a una variable. eje. Dim flotante as Variant Modifica = "SELECT Clave, Costo_P_A_3 FROM EXIST_06 WHERE Costo_P_A_3<0" rs.Open Modifica, cn ActiveSheet.Cells(17, 6).CopyFromRecordset rs flotante = range("F17:....).value[/CODE] Gracias...
-
0
Reacciones de usuarios
- 12 respuestas
- 8.8k visitas
-
-
Buenas tardes, necesitaría terminar una macro que al guardarla, me añadiese al nombre la fecha del día : en vez de = Factura.xls Seria así = Factura"=HOY()".xls O así = Factura"Fecha actual".xls Un saludo
-
0
Reacciones de usuarios
- 3 respuestas
- 8.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.